[*] Binary protection state of libsystemd.so.0.32.0

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


[*] Function sprintf tear down of libsystemd.so.0.32.0

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/libsystemd.so.0.32.0 @ 0x41f4c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) fcn.00041f4c ()                                      | uint32_t fcn_00041f4c (int16_t arg_50h, int16_t arg_54h, int16_t arg_60h, int16_t arg1, int16_t arg2, int16_t arg3) {
                                                                 |     int16_t var_0h;
                                                                 |     int16_t var_4h;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_20h;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_2ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
                                                                 |     r2 = arg3;
                                                                 | label_3:
    0x00041d18 subseq pc, ip, pc, rrx                            |     __asm ("subseq pc, ip, pc, rrx");
    0x00041d1c bx lr                                             |     return;
                                                                 | label_4:
    0x00041d20 mvn r0, 0x5c                                      |     r0 = ~0x5c;
    0x00041d24 bx lr                                             |     return r0;
    0x00041d28 ldr r1, [pc, 0x1cc]                               |     
    0x00041d2a push.w {r4, r5, r6, r7, r8, sb, sl, lr}           |     
    0x00041d2e mov r5, r2                                        |     r5 = r2;
    0x00041d30 ldr r2, [pc, 0x1c8]                               |     r2 = *(0x41efc);
    0x00041d32 sub sp, 0x30                                      |     
    0x00041d34 add r1, pc                                        |     r1 = 0x83c30;
    0x00041d36 ldr r7, [sp, 0x50]                                |     r7 = *(arg_50h);
    0x00041d38 ldr r2, [r1, r2]                                  |     
    0x00041d3a ldrd sb, r8, [sp, 0x54]                           |     __asm ("ldrd sb, r8, [arg_54h]");
    0x00041d3e ldr r2, [r2]                                      |     r2 = *(0x83c30);
    0x00041d40 str r2, [sp, 0x2c]                                |     var_2ch = r2;
    0x00041d42 mov.w r2, 0                                       |     r2 = 0;
    0x00041d46 cmp r0, 0                                         |     
                                                                 |     if (r0 == 0) {
    0x00041d48 beq.w 0x41e52                                     |         goto label_9;
                                                                 |     }
    0x00041d4c orrs r3, r5                                       |     r3 |= r5;
                                                                 |     if (r3 == r5) {
    0x00041d4e beq.w 0x41e68                                     |         goto label_10;
                                                                 |     }
    0x00041d52 cmp r7, 0                                         |     
                                                                 |     if (r7 == 0) {
    0x00041d54 beq.w 0x41e7e                                     |         goto label_11;
                                                                 |     }
    0x00041d58 cmp.w sb, 0                                       |     
                                                                 |     if (sb == 0) {
    0x00041d5c beq.w 0x41e94                                     |         goto label_12;
                                                                 |     }
    0x00041d60 mov r1, r5                                        |     r1 = r5;
    0x00041d62 mov r6, r0                                        |     r6 = r0;
    0x00041d64 blx 0xd828                                        |     r0 = fcn_0000d828 ();
    0x00041d68 adds r2, r0, 2                                    |     r2 = r0 + 2;
    0x00041d6a mov r4, r0                                        |     r4 = r0;
    0x00041d6c adc r3, r1, 0                                     |     __asm ("adc r3, r1, 0");
    0x00041d70 cmp r2, 2                                         |     
    0x00041d72 sbcs r3, r3, 0                                    |     __asm ("sbcs r3, r3, 0");
    0x00041d76 mov sl, r1                                        |     sl = r1;
                                                                 |     if (r2 <= 2) {
    0x00041d78 blo.w 0x41eee                                     |         goto label_13;
                                                                 |     }
    0x00041d7c cmp.w r8, 0                                       |     
                                                                 |     if (r8 != 0) {
    0x00041d80 bne 0x41e16                                       |         goto label_14;
                                                                 |     }
    0x00041d82 mov.w r3, -1                                      |     r3 = -1;
    0x00041d86 cmp r3, r0                                        |     
    0x00041d88 sbcs.w r8, r8, r1                                 |     __asm ("sbcs.w r8, r8, r1");
                                                                 |     if (r3 <= r0) {
    0x00041d8c blo.w 0x41ee8                                     |         goto label_15;
                                                                 |     }
                                                                 |     do {
    0x00041d90 blx 0xdc28                                        |         asprintf_chk ()
    0x00041d94 movs r3, 0                                        |         r3 = 0;
    0x00041d96 cmp r0, r4                                        |         
    0x00041d98 sbcs.w r3, r3, sl                                 |         __asm ("sbcs.w r3, r3, sl");
    0x00041d9c mov r1, r0                                        |         r1 = r0;
    0x00041d9e mov.w r2, 1                                       |         r2 = 1;
    0x00041da2 it lo                                             |         
                                                                 |         if (r0 >= r4) {
    0x00041da4 movlo r1, r4                                      |             r1 = r4;
                                                                 |         }
    0x00041da6 mov r0, r7                                        |         r0 = r7;
    0x00041da8 bl 0x5bb74                                        |         r0 = fcn_0005bb74 (r0, r1, r2);
    0x00041dac cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00041dae beq 0x41e26                                       |             goto label_16;
                                                                 |         }
    0x00041db0 blx 0xdeb0                                        |         r0 = fcn_0000deb0 ();
    0x00041db4 mov r8, r0                                        |         r8 = r0;
    0x00041db6 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x00041db8 beq 0x41e26                                       |             goto label_16;
                                                                 |         }
    0x00041dba ldr r0, [r7]                                      |         r0 = *(r7);
    0x00041dbc strd r6, r5, [sp, 0x14]                           |         __asm ("strd r6, r5, [sp, 0x14]");
    0x00041dc0 movs r5, 0                                        |         r5 = 0;
    0x00041dc2 str r5, [sp, 0x28]                                |         var_28h = r5;
    0x00041dc4 str r0, [sp, 0x20]                                |         var_20h = r0;
    0x00041dc6 str r5, [sp, 0x1c]                                |         var_1ch = r5;
    0x00041dc8 str r5, [sp, 0x24]                                |         var_24h = r5;
    0x00041dca blx 0xdff8                                        |         fcn_0000dff8 ();
    0x00041dce add r2, sp, 0x14                                  |         r2 += var_14h;
    0x00041dd0 str r0, [sp, 0x24]                                |         var_24h = r0;
    0x00041dd2 add r1, sp, 0x20                                  |         r1 += var_20h;
    0x00041dd4 mov r0, r8                                        |         r0 = r8;
    0x00041dd6 blx 0xe2d8                                        |         r0 = fcn_0000e2d8 ();
    0x00041dda mov r6, r0                                        |         r6 = r0;
    0x00041ddc blx 0xd624                                        |         r0 = fcn_0000d624 ();
                                                                 |         if (r0 != 0) {
    0x00041de0 cbnz r0, 0x41e2c                                  |             goto label_17;
                                                                 |         }
    0x00041de2 ldr r3, [sp, 0x28]                                |         r3 = var_28h;
    0x00041de4 cmp r3, r4                                        |         
    0x00041de6 sbcs.w sl, r0, sl                                 |         __asm ("sbcs.w sl, r0, sl");
    0x00041dea itt hs                                            |         
                                                                 |         if (r3 < r4) {
    0x00041dec movhs r5, r0                                      |             r5 = r0;
                                                                 |         }
                                                                 |         if (r3 < r4) {
    0x00041dee strhs r4, [sb]                                    |             *(sb) = r4;
                                                                 |         }
                                                                 |         if (r3 <= r4) {
    0x00041df2 blo 0x41ed2                                       |             goto label_18;
                                                                 |         }
                                                                 | label_1:
    0x00041df4 mov r0, r8                                        |         r0 = r8;
    0x00041df6 blx 0xd84c                                        |         fcn_0000d84c ();
                                                                 | label_0:
    0x00041dfa ldr r2, [pc, 0x104]                               |         
    0x00041dfc ldr r3, [pc, 0xfc]                                |         r3 = *(0x41efc);
    0x00041dfe add r2, pc                                        |         r2 = 0x83d04;
    0x00041e00 ldr r3, [r2, r3]                                  |         r3 = *(0x83d04);
    0x00041e02 ldr r2, [r3]                                      |         r2 = *(0x83d04);
    0x00041e04 ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x00041e06 eors r2, r3                                       |         r2 ^= r3;
    0x00041e08 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00041e0c bne 0x41ef4                                       |             goto label_19;
                                                                 |         }
    0x00041e0e mov r0, r5                                        |         r0 = r5;
    0x00041e10 add sp, 0x30                                      |         
    0x00041e12 pop.w {r4, r5, r6, r7, r8, sb, sl, pc}            |         
                                                                 | label_14:
    0x00041e16 movs r3, 0                                        |         r3 = 0;
    0x00041e18 cmp r8, r0                                        |         
    0x00041e1a sbcs.w r2, r3, r1                                 |         __asm ("sbcs.w r2, r3, r1");
    0x00041e1e itt lo                                            |         
                                                                 |         if (r8 >= r0) {
    0x00041e20 movlo r4, r8                                      |             r4 = r8;
                                                                 |         }
                                                                 |         if (r8 >= r0) {
    0x00041e22 movlo sl, r3                                      |             sl = r3;
                                                                 |         }
    0x00041e24 b 0x41d90                                         |         
                                                                 |     } while (1);
                                                                 | label_16:
    0x00041e26 mvn r5, 0xb                                       |     r5 = ~0xb;
    0x00041e2a b 0x41dfa                                         |     goto label_0;
                                                                 | label_17:
    0x00041e2c bl 0x65c6c                                        |     r0 = fcn_00065c6c ();
    0x00041e30 cmp r0, 6                                         |     
                                                                 |     if (r0 > 6) {
    0x00041e32 bgt 0x41eaa                                       |         goto label_20;
                                                                 |     }
                                                                 | label_2:
    0x00041e34 mov r0, r6                                        |     r0 = r6;
    0x00041e36 blx 0xe748                                        |     r0 = fcn_0000e748 ();
    0x00041e3a cmp r0, 0x40                                      |     
    0x00041e3c it eq                                             |     
                                                                 |     if (r0 == 0x40) {
    0x00041e3e mvneq r5, 0xb                                     |         r5 = ~0xb;
                                                                 |         goto label_21;
                                                                 |     }
                                                                 |     if (r0 == 0x40) {
                                                                 | label_21:
    0x00041e42 beq 0x41df4                                       |         goto label_1;
                                                                 |     }
    0x00041e44 cmp r0, 0x46                                      |     
    0x00041e46 ite ne                                            |     
                                                                 |     if (r0 == 0x46) {
    0x00041e48 mvnne r5, 0x49                                    |         r5 = ~0x49;
                                                                 |     }
                                                                 |     if (r0 == 0x46) {
    0x00041e4c mvn r5, 0x68                                      |         r5 = ~0x68;
                                                                 |     }
    0x00041e50 b 0x41df4                                         |     goto label_1;
                                                                 | label_9:
    0x00041e52 ldr r1, [pc, 0xb0]                                |     
    0x00041e54 mov.w r2, 0x10e                                   |     r2 = 0x10e;
    0x00041e58 ldr r3, [pc, 0xac]                                |     
    0x00041e5a ldr r0, [pc, 0xb0]                                |     
    0x00041e5c add r1, pc                                        |     r1 = 0x83d66;
    0x00041e5e add r3, pc                                        |     r3 = 0x83d6a;
    0x00041e60 adds r1, 7                                        |     r1 += 7;
    0x00041e62 add r0, pc                                        |     r0 = 0x83d74;
    0x00041e64 bl 0x66580                                        |     fcn_00066580 (r0, r1, r2, r3, r4);
                                                                 | label_10:
    0x00041e68 ldr r1, [pc, 0xa4]                                |     
    0x00041e6a movw r2, 0x10f                                    |     r2 = 0x10f;
    0x00041e6e ldr r3, [pc, 0xa4]                                |     
    0x00041e70 ldr r0, [pc, 0xa4]                                |     
    0x00041e72 add r1, pc                                        |     r1 = 0x83d86;
    0x00041e74 add r3, pc                                        |     r3 = 0x83d8e;
    0x00041e76 adds r1, 7                                        |     r1 += 7;
    0x00041e78 add r0, pc                                        |     r0 = "sd_id128_get_machine";
    0x00041e7a bl 0x66580                                        |     fcn_00066580 (r0, r1, r2, r3, r4);
                                                                 | label_11:
    0x00041e7e ldr r1, [pc, 0x9c]                                |     
    0x00041e80 mov.w r2, 0x110                                   |     r2 = 0x110;
    0x00041e84 ldr r3, [pc, 0x98]                                |     
    0x00041e86 ldr r0, [pc, 0x9c]                                |     
    0x00041e88 add r1, pc                                        |     r1 = 0x83daa;
    0x00041e8a add r3, pc                                        |     r3 = 0x83dae;
    0x00041e8c adds r1, 7                                        |     r1 += 7;
    0x00041e8e add r0, pc                                        |     r0 = 0x83db8;
    0x00041e90 bl 0x66580                                        |     fcn_00066580 (r0, r1, r2, r3, r4);
                                                                 | label_12:
    0x00041e94 ldr r1, [pc, 0x90]                                |     
    0x00041e96 movw r2, 0x111                                    |     r2 = 0x111;
    0x00041e9a ldr r3, [pc, 0x90]                                |     
    0x00041e9c ldr r0, [pc, 0x90]                                |     
    0x00041e9e add r1, pc                                        |     r1 = 0x83dca;
    0x00041ea0 add r3, pc                                        |     r3 = 0x83dd2;
    0x00041ea2 adds r1, 7                                        |     r1 += 7;
    0x00041ea4 add r0, pc                                        |     r0 = 0x83dd8;
    0x00041ea6 bl 0x66580                                        |     fcn_00066580 (r0, r1, r2, r3, r4);
                                                                 | label_20:
    0x00041eaa mov r0, r6                                        |     r0 = r6;
    0x00041eac blx 0xdda8                                        |     ctype_b_loc ();
    0x00041eb0 ldr r3, [pc, 0x80]                                |     
    0x00041eb2 mov r1, r5                                        |     r1 = r5;
    0x00041eb4 ldr r2, [pc, 0x80]                                |     
    0x00041eb6 str r0, [sp, 8]                                   |     var_8h = r0;
    0x00041eb8 movs r0, 7                                        |     r0 = 7;
    0x00041eba add r3, pc                                        |     r3 = 0x83df2;
    0x00041ebc str r3, [sp, 4]                                   |     var_4h = r3;
    0x00041ebe add r2, pc                                        |     r2 = 0x83dfa;
    0x00041ec0 ldr r3, [pc, 0x78]                                |     
    0x00041ec2 adds r2, 7                                        |     r2 += 7;
    0x00041ec4 add r3, pc                                        |     r3 = 0x83e04;
    0x00041ec6 str r3, [sp]                                      |     *(sp) = r3;
    0x00041ec8 mov.w r3, 0x12e                                   |     r3 = 0x12e;
    0x00041ecc bl 0x664b0                                        |     fcn_000664b0 (r0, r1, r2, r3, r4, r5, r6);
    0x00041ed0 b 0x41e34                                         |     goto label_2;
                                                                 | label_18:
    0x00041ed2 ldr r1, [pc, 0x6c]                                |     
    0x00041ed4 movw r2, 0x131                                    |     r2 = 0x131;
    0x00041ed8 ldr r3, [pc, 0x68]                                |     
    0x00041eda ldr r0, [pc, 0x6c]                                |     
    0x00041edc add r1, pc                                        |     r1 = 0x83e22;
    0x00041ede add r3, pc                                        |     r3 = 0x83e26;
    0x00041ee0 adds r1, 7                                        |     r1 += 7;
    0x00041ee2 add r0, pc                                        |     r0 = "unsetenv(\"LISTEN_FDS\") == 0";
    0x00041ee4 bl 0x66580                                        |     fcn_00066580 (r0, r1, r2, r3, r4);
                                                                 | label_15:
    0x00041ee8 mvn r5, 6                                         |     r5 = ~6;
    0x00041eec b 0x41dfa                                         |     goto label_0;
                                                                 | label_13:
    0x00041eee mvn r5, 0x49                                      |     r5 = ~0x49;
    0x00041ef2 b 0x41dfa                                         |     goto label_0;
                                                                 | label_19:
    0x00041ef4 blx 0xd8a4                                        |     fcn_0000d8a4 ();
                                                                 |     if (r1 >= 7) {
    0x00041ef8 blt 0x41f64                                       |         
    0x00041efa movs r5, r0                                       |         r5 = r0;
    0x00041efc lsls r0, r1, 0x1c                                 |         r0 = r1 << 0x1c;
    0x00041efe movs r0, r0                                       |         
                                                                 |         if (r0 >= r0) {
    0x00041f00 bge 0x41fd8                                       |             goto label_22;
                                                                 |         }
    0x00041f02 movs r5, r0                                       |         r5 = r0;
    0x00041f04 cdp p0, 5, c0, c0, c3, 0                          |         __asm ("cdp p0, 5, c0, c0, c3, 0");
    0x00041f08 vhadd.s32 d0, d14, d3                             |         __asm ("vhadd.s32 d0, d14, d3");
    0x00041f0c cmp r2, r8                                        |         
    0x00041f0e movs r3, r0                                       |         r3 = r0;
    0x00041f10 cdp p0, 3, c0, c10, c3, 0                         |         __asm ("cdp p0, 3, c0, c10, c3, 0");
    0x00041f14 vhadd.s16 d0, d8, d3                              |         __asm ("vhadd.s16 d0, d8, d3");
    0x00041f18 cdp p0, 6, c0, c0, c3, 0                          |         __asm ("cdp p0, 6, c0, c0, c3, 0");
    0x00041f1c cdp p0, 2, c0, c4, c3, 0                          |         __asm ("cdp p0, 2, c0, c4, c3, 0");
    0x00041f20 vhadd.s8 d0, d2, d3                               |         __asm ("vhadd.s8 d0, d2, d3");
    0x00041f24 cdp p0, 5, c0, c10, c3, 0                         |         __asm ("cdp p0, 5, c0, c10, c3, 0");
    0x00041f28 cdp p0, 0, c0, c14, c3, 0                         |         __asm ("cdp p0, 0, c0, c14, c3, 0");
    0x00041f2c cdp p0, 0xe, c0, c12, c3, 0                       |         __asm ("cdp p0, 0xe, c0, c12, c3, 0");
    0x00041f30 cdp p0, 5, c0, c12, c3, 0                         |         __asm ("cdp p0, 5, c0, c12, c3, 0");
    0x00041f34 cdp p0, 5, c0, c2, c3, 0                          |         __asm ("cdp p0, 5, c0, c2, c3, 0");
    0x00041f38 stcl p0, c0, [lr, 0xc]!                           |         __asm ("stcl p0, c0, [lr, 0xc]!");
    0x00041f3c cdp p0, 0xf, c0, c12, c3, 0                       |         __asm ("cdp p0, 0xf, c0, c12, c3, 0");
    0x00041f40 ldcl p0, c0, [r0, 0xc]                            |         __asm ("ldcl p0, c0, [r0, 0xc]");
    0x00041f44 cdp p0, 0xa, c0, c14, c3, 0                       |         __asm ("cdp p0, 0xa, c0, c14, c3, 0");
    0x00041f48 cdp p0, 4, c0, c2, c3, 0                          |         __asm ("cdp p0, 4, c0, c2, c3, 0");
    0x00041f4c mov ip, r0                                        |         
    0x00041f4e mov r0, r1                                        |         r0 = r1;
    0x00041f50 cmp.w ip, 1                                       |         
                                                                 |         if (ip == 1) {
    0x00041f54 beq 0x41f66                                       |             goto label_23;
                                                                 |         }
    0x00041f56 cmp.w ip, 2                                       |         
                                                                 |         if (ip == 2) {
    0x00041f5a beq 0x41f6a                                       |             goto label_24;
                                                                 |         }
    0x00041f5c cmp.w ip, 4                                       |         
                                                                 |         if (ip != 4) {
    0x00041f60 bne 0x41f6e                                       |             goto label_25;
                                                                 |         }
    0x00041f62 invalid                                           |         
                                                                 |     }
    0x00041f64 bkpt 0xe1                                         |     __asm ("bkpt 0xe1");
                                                                 | label_23:
    0x00041f66 b.w 0x41d18                                       |     goto label_3;
                                                                 | label_24:
    0x00041f6a b.w 0x41d20                                       |     goto label_4;
                                                                 | label_25:
    0x00041f6e mvn r0, 0x5c                                      |     r0 = ~0x5c;
    0x00041f72 bx lr                                             |     return r0;
                                                                 | label_22:
    0x00041fd8 add.w sb, r3, 1                                   |     sb = r3 + 1;
    0x00041fdc cmp r0, sb                                        |     
    0x00041fde sbcs r1, r1, 0                                    |     __asm ("sbcs r1, r1, 0");
    0x00041fe2 bhs 0x42002                                       |     
                                                                 |     while (1) {
                                                                 | label_5:
    0x00041fe4 ldr r2, [pc, 0x170]                               |         
    0x00041fe6 ldr r3, [pc, 0x16c]                               |         r3 = *(0x42156);
    0x00041fe8 add r2, pc                                        |         r2 = 0x84144;
    0x00041fea ldr r3, [r2, r3]                                  |         r3 = *(0x84144);
    0x00041fec ldr r2, [r3]                                      |         r2 = *(0x84144);
    0x00041fee ldr r3, [sp, 0x2c]                                |         r3 = var_2ch;
    0x00041ff0 eors r2, r3                                       |         r2 ^= r3;
    0x00041ff2 mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00041ff6 bne.w 0x4214a                                     |             goto label_26;
                                                                 |         }
    0x00041ffa mov r0, sl                                        |         r0 = sl;
    0x00041ffc add sp, 0x34                                      |         
    0x00041ffe pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
    0x00042002 blx 0xdeb0                                        |         r0 = fcn_0000deb0 ();
    0x00042006 mov fp, r0                                        |         
    0x00042008 cmp r0, 0                                         |         
                                                                 |         if (r0 == 0) {
    0x0004200a beq 0x420b0                                       |             goto label_27;
                                                                 |         }
    0x0004200c blx 0xdc28                                        |         r0 = asprintf_chk ()
    0x00042010 cmp r0, sb                                        |         
    0x00042012 mov r1, r0                                        |         r1 = r0;
    0x00042014 mov.w r2, 1                                       |         r2 = 1;
    0x00042018 it lo                                             |         
                                                                 |         if (r0 >= sb) {
    0x0004201a movlo r1, sb                                      |             r1 = sb;
                                                                 |         }
    0x0004201c mov r0, r6                                        |         r0 = r6;
    0x0004201e bl 0x5bb74                                        |         r0 = fcn_0005bb74 (r0, r1, r2);
                                                                 |         if (r0 != 0) {
    0x00042022 cbz r0, 0x4208e                                   |             
    0x00042024 ldr r0, [r6]                                      |             r0 = *(r6);
    0x00042026 strd r5, r4, [sp, 0x14]                           |             __asm ("strd r5, r4, [sp, 0x14]");
    0x0004202a str.w sl, [sp, 0x28]                              |             __asm ("str.w sl, [var_28h]");
    0x0004202e str.w sl, [sp, 0x1c]                              |             __asm ("str.w sl, [var_1ch]");
    0x00042032 str.w sl, [sp, 0x24]                              |             __asm ("str.w sl, [var_24h]");
    0x00042036 str r0, [sp, 0x20]                                |             var_20h = r0;
    0x00042038 blx 0xdff8                                        |             fcn_0000dff8 ();
    0x0004203c add r2, sp, 0x14                                  |             r2 += var_14h;
    0x0004203e str r0, [sp, 0x24]                                |             var_24h = r0;
    0x00042040 add r1, sp, 0x20                                  |             r1 += var_20h;
    0x00042042 mov r0, fp                                        |             r0 = fp;
    0x00042044 blx 0xe2d8                                        |             r0 = fcn_0000e2d8 ();
    0x00042048 mov r4, r0                                        |             r4 = r0;
    0x0004204a blx 0xd624                                        |             r0 = fcn_0000d624 ();
                                                                 |             if (r0 == 0) {
    0x0004204e cbnz r0, 0x4207c                                  |                 
    0x00042050 ldr r3, [sp, 0x28]                                |                 r3 = var_28h;
    0x00042052 cmp sb, r3                                        |                 
                                                                 |                 if (sb > r3) {
    0x00042054 bhi 0x4212e                                       |                     goto label_28;
                                                                 |                 }
    0x00042056 ldr r4, [r6]                                      |                 r4 = *(r6);
    0x00042058 mov r1, r7                                        |                 r1 = r7;
    0x0004205a ldr r2, [sp, 0x60]                                |                 r2 = *(arg_60h);
                                                                 | label_8:
    0x0004205c mov.w sl, 0                                       |                 sl = 0;
    0x00042060 mov r0, r4                                        |                 r0 = r4;
    0x00042062 blx 0xd804                                        |                 r0 = fcn_0000d804 ();
                                                                 |                 if (r0 != 0) {
    0x00042066 cbnz r0, 0x42092                                  |                     goto label_6;
                                                                 |                 }
    0x00042068 ldr r3, [sp, 0x60]                                |                 r3 = *(arg_60h);
    0x0004206a ldrb.w sl, [r4, r3]                               |                 sl = *((r4 + r3));
    0x0004206c adr r0, 0xc                                       |                 r0 = 0xc;
    0x0004206e sub.w sl, sl, r8                                  |                 sl -= r8;
    0x00042072 clz sl, sl                                        |                 sl &= sl;
    0x00042076 lsr.w sl, sl, 5                                   |                 sl >>= 5;
    0x0004207a b 0x42092                                         |                 goto label_6;
                                                                 |             }
    0x0004207c bl 0x65c6c                                        |             r0 = fcn_00065c6c ();
    0x00042080 cmp r0, 6                                         |             
                                                                 |             if (r0 > 6) {
    0x00042082 bgt 0x42106                                       |                 goto label_29;
                                                                 |             }
                                                                 | label_7:
    0x00042084 mov r0, r4                                        |             r0 = r4;
    0x00042086 blx 0xe748                                        |             r0 = fcn_0000e748 ();
    0x0004208a cmp r0, 0x40                                      |             
                                                                 |             if (r0 != 0x40) {
    0x0004208c bne 0x420f8                                       |                 goto label_30;
                                                                 |             }
                                                                 |         }
    0x0004208e mvn sl, 0xb                                       |         sl = ~0xb;
                                                                 | label_6:
    0x00042092 mov r0, fp                                        |         r0 = fp;
    0x00042094 blx 0xd84c                                        |         fcn_0000d84c ();
    0x00042098 b 0x41fe4                                         |         
                                                                 |     }
                                                                 | label_27:
    0x000420b0 mvn sl, 0xb                                       |     sl = ~0xb;
    0x000420b4 b 0x41fe4                                         |     goto label_5;
                                                                 | label_30:
    0x000420f8 cmp r0, 0x46                                      |     
    0x000420fa ite ne                                            |     
                                                                 |     if (r0 == 0x46) {
    0x000420fc mvnne sl, 0x49                                    |         sl = ~0x49;
                                                                 |     }
    0x00042100 mvn sl, 0x68                                      |     sl = ~0x68;
                                                                 |     while (r1 > 7) {
    0x00042104 b 0x42092                                         |         goto label_6;
                                                                 | label_29:
    0x00042106 mov r0, r4                                        |         r0 = r4;
    0x00042108 blx 0xdda8                                        |         ctype_b_loc ();
    0x0004210c ldr r2, [pc, 0x7c]                                |         
    0x0004210e ldr r3, [pc, 0x80]                                |         
    0x00042110 ldr r1, [pc, 0x80]                                |         
    0x00042112 add r2, pc                                        |         r2 = 0x842a2;
    0x00042114 str r0, [sp, 8]                                   |         var_8h = r0;
    0x00042116 add r3, pc                                        |         r3 = 0x842ac;
    0x00042118 adds r2, 7                                        |         r2 += 7;
    0x0004211a add r1, pc                                        |         r1 = 0x842b2;
    0x0004211c str r3, [sp, 4]                                   |         var_4h = r3;
    0x0004211e str r1, [sp]                                      |         *(sp) = r1;
    0x00042120 movw r3, 0x1fd                                    |         r3 = 0x1fd;
    0x00042124 mov r1, sl                                        |         r1 = sl;
    0x00042126 movs r0, 7                                        |         r0 = 7;
    0x00042128 bl 0x664b0                                        |         fcn_000664b0 (r0, r1, r2, r3, r4, r5, r6);
    0x0004212c b 0x42084                                         |         goto label_7;
                                                                 | label_28:
    0x0004212e ldr r1, [pc, 0x68]                                |         
    0x00042130 mov.w r2, 0x200                                   |         r2 = 0x200;
    0x00042134 ldr r3, [pc, 0x64]                                |         
    0x00042136 ldr r0, [pc, 0x68]                                |         
    0x00042138 add r1, pc                                        |         r1 = 0x842d6;
    0x0004213a add r3, pc                                        |         r3 = 0x842da;
    0x0004213c adds r1, 7                                        |         r1 += 7;
    0x0004213e add r0, pc                                        |         r0 = 0x842e4;
    0x00042140 bl 0x66580                                        |         fcn_00066580 (r0, r1, r2, r3, r4);
    0x00042144 mvn sl, 0x49                                      |         sl = ~0x49;
    0x00042148 b 0x41fe4                                         |         goto label_5;
                                                                 | label_26:
    0x0004214a blx 0xd8a4                                        |         fcn_0000d8a4 ();
    0x0004214e nop                                               |         
    0x00042150 bhi 0x42104                                       |         
                                                                 |     }
    0x00042152 movs r5, r0                                       |     r5 = r0;
    0x00042154 lsls r0, r1, 0x1c                                 |     r0 = r1 << 0x1c;
    0x00042156 movs r0, r0                                       |     
                                                                 |     if (r0 > r0) {
    0x00042158 bhi 0x4205c                                       |         goto label_8;
                                                                 |     }
    0x0004215a movs r5, r0                                       |     r5 = r0;
    0x0004215c invalid                                           |     
                                                                 | }

[*] Function sprintf used 3 times libsystemd.so.0.32.0