[*] Binary protection state of systemd

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


[*] Function system tear down of systemd

    ; assembly                                       | /* r2dec pseudo code output */
                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/systemd @ 0x8217c */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0008217c ()                          | void fcn_0008217c (int16_t arg_90h, uint32_t arg1, uint32_t arg3, uint32_t arg4) {
                                                     |     int16_t var_0h;
                                                     |     int16_t var_1h;
                                                     |     int16_t var_50h;
                                                     |     int16_t var_68h;
                                                     |     int16_t var_74h;
                                                     |     r0 = arg1;
                                                     |     r2 = arg3;
                                                     |     r3 = arg4;
    0x0008217c push.w {r4, r5, r6, r7, r8, lr}       |     
    0x00082180 mov r5, r2                            |     r5 = r2;
    0x00082182 ldr r2, [pc, 0x88]                    |     
    0x00082184 mov r7, r3                            |     r7 = r3;
    0x00082186 sub sp, 0x78                          |     
    0x00082188 mov r4, r0                            |     r4 = r0;
    0x0008218a ldr r3, [pc, 0x84]                    |     r3 = *(0x82212);
    0x0008218c add r2, pc                            |     r2 = 0x10439e;
    0x0008218e ldrb.w r6, [sp, 0x90]                 |     r6 = *(arg_90h);
    0x00082192 ldr r3, [r2, r3]                      |     
    0x00082194 ldr r3, [r3]                          |     r3 = imp.specifier_group_name;
    0x00082196 str r3, [sp, 0x74]                    |     var_74h = r3;
    0x00082198 mov.w r3, 0                           |     r3 = 0;
                                                     |     if (r0 == 0) {
    0x0008219c cbz r0, 0x821b8                       |         void (*0x821b8)() ();
                                                     |     }
    0x0008219e ldr r1, [pc, 0x74]                    |     
    0x000821a0 add.w ip, sp, 0x68                    |     
    0x000821a2 lsrs r0, r5, 0x11                     |     r0 = r5 >> 0x11;
    0x000821a4 add r1, pc                            |     r1 = 0x1043be;
    0x000821a6 ldm r1, {r0, r1, r2}                  |     r0 = *(r1);
                                                     |     r1 = *((r1 + 4));
                                                     |     r2 = *((r1 + 8));
    0x000821a8 stm.w ip, {r0, r1, r2}                |     *(ip) = r0;
                                                     |     *((ip + 4)) = r1;
                                                     |     *((ip + 8)) = r2;
    0x000821ac mov r1, ip                            |     r1 = ip;
    0x000821ae mov r0, r4                            |     r0 = r4;
    0x000821b0 blx 0x18e0c                           |     r0 = base_filesystem_create ()
                                                     |     if (r0 != 0) {
    0x000821b4 cbz r0, 0x821d2                       |         
    0x000821b6 movs r0, 0                            |         r0 = 0;
                                                     |     }
    0x000821d2 mov r8, sp                            |     r8 = sp;
    0x000821d4 mov r0, r4                            |     r0 = r4;
    0x000821d6 mov r1, r8                            |     r1 = r8;
    0x000821d8 blx 0x197ac                           |     r0 = fcn_000197ac ();
    0x000821dc cmp r0, 0                             |     
    0x000821de it lt                                 |     
                                                     |     if (r0 < 0) {
    0x000821e0 movlt r0, 1                           |         r0 = 1;
                                                     |         goto label_0;
                                                     |     }
                                                     |     if (r0 < 0) {
                                                     | label_0:
    0x000821e2 blt 0x821b8                           |         void (*0x821b8)() ();
                                                     |     }
                                                     |     if (r6 != 0) {
    0x000821e4 cbz r6, 0x821f4                       |         
    0x000821e6 mov r0, r8                            |         r0 = r8;
    0x000821e8 blx 0x1a3e0                           |         fcn_0001a3e0 ();
    0x000821ec eor r0, r0, 1                         |         r0 ^= var_1h;
                                                     |     }
    0x000821f4 add r0, sp, 0x50                      |     r0 += var_50h;
    0x000821f6 blx 0x1ae6c                           |     r0 = fcn_0001ae6c ();
    0x000821fa cmp r5, r0                            |     
                                                     | }
    ; assembly                                                       | /* r2dec pseudo code output */
                                                                     | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/lib/systemd/systemd @ 0xaf9ec */
                                                                     | #include <stdint.h>
                                                                     |  
    ; (fcn) fcn.000af9ec ()                                          | void fcn_000af9ec (uint32_t arg1, int16_t arg2) {
                                                                     |     int16_t var_0h;
                                                                     |     int16_t var_4h;
                                                                     |     int16_t var_8h;
                                                                     |     int32_t var_ch;
                                                                     |     int32_t var_ch_2;
                                                                     |     int16_t var_14h;
                                                                     |     int16_t var_18h;
                                                                     |     int16_t var_24h;
                                                                     |     int16_t var_28h;
                                                                     |     int16_t var_2ch;
                                                                     |     int16_t var_30h;
                                                                     |     int16_t var_34h;
                                                                     |     int16_t var_38h;
                                                                     |     int16_t var_3ch;
                                                                     |     int16_t var_40h;
                                                                     |     int32_t var_40h_2;
                                                                     |     int16_t var_48h;
                                                                     |     int16_t var_58h;
                                                                     |     int16_t var_68h;
                                                                     |     int16_t var_6ch;
                                                                     |     int16_t var_b0h;
                                                                     |     int16_t var_bch;
                                                                     |     r0 = arg1;
                                                                     |     r1 = arg2;
    0x000af9ec blmi 0xfee824cc                                       |     __asm ("blmi aav.0x000802b6");
    0x000af9f0 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}           |     
    0x000af9f4 sub sp, 0xc4                                          |     
    0x000af9f6 add r2, pc                                            |     r2 += pc;
    0x000af9f8 ldr r3, [r2, r3]                                      |     r3 = *((r2 + r3));
    0x000af9fa ldr r3, [r3]                                          |     r3 = *(r3);
    0x000af9fc str r3, [sp, 0xbc]                                    |     var_bch = r3;
    0x000af9fe mov.w r3, 0                                           |     r3 = 0;
    0x000afa02 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x000afa04 beq.w 0xafc4c                                         |         goto label_10;
                                                                     |     }
    0x000afa08 mov r4, r1                                            |     r4 = r1;
    0x000afa0a mov r5, r0                                            |     r5 = r0;
    0x000afa0c add r1, sp, 0x30                                      |     r1 += var_30h;
    0x000afa0e mov r0, r4                                            |     r0 = r4;
    0x000afa10 blx 0x1b6ac                                           |     r0 = fcn_0001b6ac ();
    0x000afa14 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x000afa16 blt 0xafb00                                           |         goto label_11;
                                                                     |     }
    0x000afa18 ldr r2, [sp, 0x30]                                    |     r2 = var_30h;
    0x000afa1a movs r3, 1                                            |     r3 = 1;
    0x000afa1c mov r1, r4                                            |     r1 = r4;
    0x000afa1e mov r0, r5                                            |     r0 = r5;
    0x000afa20 bl 0xaecdc                                            |     r0 = fcn_000aecdc (r0, r1, r2, r3);
    0x000afa24 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x000afa26 blt 0xafb00                                           |         goto label_11;
                                                                     |     }
    0x000afa28 add r1, sp, 0x34                                      |     r1 += var_34h;
    0x000afa2a mov r0, r4                                            |     r0 = r4;
    0x000afa2c blx 0x18cb0                                           |     r0 = open_serialization_fd ();
    0x000afa30 cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x000afa32 bge.w 0xafc08                                         |         goto label_12;
                                                                     |     }
    0x000afa36 add r1, sp, 0x40                                      |     r1 += var_40h;
    0x000afa38 mov r0, r4                                            |     r0 = r4;
    0x000afa3a blx 0x1a320                                           |     r0 = fcn_0001a320 ();
    0x000afa3e cmp r0, 0                                             |     
                                                                     |     if (r0 >= 0) {
    0x000afa40 bge.w 0xafb8a                                         |         goto label_6;
                                                                     |     }
                                                                     | label_3:
    0x000afa44 ldr r1, [pc, 0x288]                                   |     
    0x000afa46 add r6, sp, 0x38                                      |     r6 += var_38h;
    0x000afa48 mov r2, r6                                            |     r2 = r6;
    0x000afa4a mov r0, r4                                            |     r0 = r4;
    0x000afa4c add r1, pc                                            |     r1 = 0x15f720;
    0x000afa4e blx 0x18584                                           |     r0 = sd_device_get_property_value ();
    0x000afa52 cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x000afa54 blt 0xafb00                                           |         goto label_11;
                                                                     |     }
    0x000afa56 ldr r3, [pc, 0x27c]                                   |     
    0x000afa58 add.w r8, sp, 0x3c                                    |     r8 += var_3ch;
    0x000afa5c ldr r7, [pc, 0x278]                                   |     
    0x000afa5e mov fp, r5                                            |     
    0x000afa60 ldr.w sb, [pc, 0x278]                                 |     
    0x000afa64 add r3, pc                                            |     r3 = 0x15f73e;
    0x000afa66 str r3, [sp, 0x24]                                    |     var_24h = r3;
    0x000afa68 add r7, pc                                            |     r7 = 0x15f744;
    0x000afa6a ldr r3, [pc, 0x274]                                   |     
    0x000afa6c add sb, pc                                            |     sb = 0x15f74c;
    0x000afa6e add.w sl, r7, 7                                       |     sl = r7 + 7;
    0x000afa72 add.w sb, sb, 7                                       |     sb += 7;
    0x000afa76 add r3, pc                                            |     r3 = 0x15f75c;
    0x000afa78 str r3, [sp, 0x28]                                    |     var_28h = r3;
                                                                     |     do {
    0x000afa7a movs r7, 0                                            |         r7 = 0;
    0x000afa7c movs r3, 0x20                                         |         r3 = 0x20;
    0x000afa7e mov r2, r7                                            |         r2 = r7;
    0x000afa80 mov r1, r8                                            |         r1 = r8;
    0x000afa82 mov r0, r6                                            |         r0 = r6;
    0x000afa84 str r7, [sp, 0x3c]                                    |         var_3ch = r7;
    0x000afa86 blx 0x1abe0                                           |         r0 = fcn_0001abe0 ();
    0x000afa8a cmp r0, 0                                             |         
                                                                     |         if (r0 == 0) {
    0x000afa8c beq 0xafafa                                           |             goto label_8;
                                                                     |         }
    0x000afa8e cmn.w r0, 0xc                                         |         
                                                                     |         if (r0 == 0xc) {
    0x000afa92 beq 0xafae6                                           |             goto label_13;
                                                                     |         }
    0x000afa94 cmp r0, 0                                             |         
                                                                     |         if (r0 < 0) {
    0x000afa96 blt.w 0xafc68                                         |             goto label_14;
                                                                     |         }
    0x000afa9a ldr r5, [sp, 0x3c]                                    |         r5 = var_3ch;
    0x000afa9c cmp r5, 0                                             |         
                                                                     |         if (r5 == 0) {
    0x000afa9e beq.w 0xafc38                                         |             goto label_15;
                                                                     |         }
    0x000afaa2 ldrb r3, [r5]                                         |         r3 = *(r5);
    0x000afaa4 cmp r3, 0x2f                                          |         
                                                                     |         if (r3 == 0x2f) {
    0x000afaa6 beq 0xafb32                                           |             goto label_16;
                                                                     |         }
    0x000afaa8 str r7, [sp, 0x48]                                    |         var_48h = r7;
    0x000afaaa cmp r4, 0                                             |         
                                                                     |         if (r4 == 0) {
    0x000afaac beq.w 0xafc32                                         |             goto label_17;
                                                                     |         }
    0x000afab0 blx 0x18d64                                           |         r0 = af_to_ipv4_ipv6 ();
    0x000afab4 cmp r0, 3                                             |         
                                                                     |         if (r0 > 3) {
    0x000afab6 bgt 0xafb1c                                           |             goto label_18;
                                                                     |         }
                                                                     | label_1:
    0x000afab8 mov r3, r7                                            |         r3 = r7;
                                                                     | label_0:
    0x000afaba strd r3, r7, [sp, 4]                                  |         __asm ("strd r3, r7, [var_8h]");
    0x000afabe movs r1, 0                                            |         r1 = 0;
    0x000afac0 ldr r3, [pc, 0x220]                                   |         
    0x000afac2 mov r2, sb                                            |         r2 = sb;
    0x000afac4 movs r0, 4                                            |         r0 = 4;
    0x000afac6 str r5, [sp, 0x18]                                    |         var_18h = r5;
    0x000afac8 strd r1, r1, [sp, 0xc]                                |         __asm ("strd r1, r1, [var_ch]");
    0x000afacc add r3, pc                                            |         r3 = 0x15f7b4;
    0x000aface str r3, [sp, 0x14]                                    |         var_14h = r3;
    0x000afad0 ldr r3, [pc, 0x214]                                   |         
    0x000afad2 add r3, pc                                            |         r3 = 0x15f7be;
    0x000afad4 str r3, [sp]                                          |         *(sp) = r3;
    0x000afad6 movw r3, 0x28f                                        |         r3 = 0x28f;
    0x000afada blx 0x19c40                                           |         socket_address_matches_fd ();
                                                                     | label_2:
    0x000afade ldr r0, [sp, 0x3c]                                    |         r0 = var_3ch;
    0x000afae0 blx 0x19658                                           |         touch_file ();
    0x000afae4 b 0xafa7a                                             |         
                                                                     |     } while (1);
                                                                     | label_13:
    0x000afae6 ldr r1, [pc, 0x204]                                   |     
    0x000afae8 movw r2, 0x28a                                        |     r2 = 0x28a;
    0x000afaec ldr r3, [pc, 0x200]                                   |     
    0x000afaee movs r0, 3                                            |     r0 = 3;
    0x000afaf0 add r1, pc                                            |     r1 = 0x15f7e2;
    0x000afaf2 add r3, pc                                            |     r3 = 0x15f7e6;
    0x000afaf4 adds r1, 7                                            |     r1 += 7;
    0x000afaf6 blx 0x1b774                                           |     fcn_0001b774 ();
                                                                     | label_8:
    0x000afafa ldr r0, [sp, 0x3c]                                    |     r0 = var_3ch;
    0x000afafc blx 0x19658                                           |     touch_file ();
                                                                     | label_11:
    0x000afb00 ldr r2, [pc, 0x1f0]                                   |     
    0x000afb02 ldr r3, [pc, 0x1c8]                                   |     r3 = *(0xafcce);
    0x000afb04 add r2, pc                                            |     r2 = 0x15f7fc;
    0x000afb06 ldr r3, [r2, r3]                                      |     r3 = imp.specifier_group_name;
    0x000afb08 ldr r2, [r3]                                          |     r2 = imp.specifier_group_name;
    0x000afb0a ldr r3, [sp, 0xbc]                                    |     r3 = var_bch;
    0x000afb0c eors r2, r3                                           |     r2 ^= r3;
    0x000afb0e mov.w r3, 0                                           |     r3 = 0;
                                                                     |     if (r2 != r3) {
    0x000afb12 bne.w 0xafcc2                                         |         goto label_19;
                                                                     |     }
    0x000afb16 add sp, 0xc4                                          |     
    0x000afb18 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}            |     
                                                                     | label_18:
    0x000afb1c add r1, sp, 0x48                                      |     r1 += var_48h;
    0x000afb1e mov r0, r4                                            |     r0 = r4;
    0x000afb20 blx 0x19384                                           |     fcn_00019384 ();
    0x000afb24 ldr r7, [sp, 0x48]                                    |     r7 = var_48h;
    0x000afb26 ldr r3, [pc, 0x1d0]                                   |     
    0x000afb28 ldr r5, [sp, 0x3c]                                    |     r5 = var_3ch;
    0x000afb2a add r3, pc                                            |     r3 = 0x15f828;
    0x000afb2c cmp r7, 0                                             |     
                                                                     |     if (r7 != 0) {
    0x000afb2e bne 0xafaba                                           |         goto label_0;
                                                                     |     }
    0x000afb30 b 0xafab8                                             |     goto label_1;
                                                                     | label_16:
    0x000afb32 mov r0, r5                                            |     r0 = r5;
    0x000afb34 blx 0x197d0                                           |     r0 = fcn_000197d0 ();
    0x000afb38 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x000afb3a bne 0xafc24                                           |         goto label_20;
                                                                     |     }
    0x000afb3c str r0, [sp, 0x48]                                    |     var_48h = r0;
    0x000afb3e str r0, [sp, 0x2c]                                    |     var_2ch = r0;
    0x000afb40 cmp r4, 0                                             |     
                                                                     |     if (r4 == 0) {
    0x000afb42 beq.w 0xafc62                                         |         goto label_21;
                                                                     |     }
    0x000afb46 blx 0x18d64                                           |     r0 = af_to_ipv4_ipv6 ();
    0x000afb4a cmp r0, 3                                             |     
    0x000afb4c ldr r3, [sp, 0x2c]                                    |     r3 = var_2ch;
    0x000afb4e bgt 0xafb54                                           |     
                                                                     |     while (r3 == 0) {
    0x000afb50 mov r1, r3                                            |         r1 = r3;
    0x000afb52 b 0xafb68                                             |         goto label_7;
    0x000afb54 add r1, sp, 0x48                                      |         r1 += var_48h;
    0x000afb56 mov r0, r4                                            |         r0 = r4;
    0x000afb58 blx 0x19384                                           |         fcn_00019384 ();
    0x000afb5c ldr r3, [sp, 0x48]                                    |         r3 = var_48h;
    0x000afb5e ldr r1, [pc, 0x19c]                                   |         
    0x000afb60 ldr r5, [sp, 0x3c]                                    |         r5 = var_3ch;
    0x000afb62 add r1, pc                                            |         r1 = 0x15f864;
    0x000afb64 cmp r3, 0                                             |         
    0x000afb66 beq 0xafb50                                           |         
                                                                     |     }
                                                                     | label_7:
    0x000afb68 strd r1, r3, [sp, 4]                                  |     __asm ("strd r1, r3, [var_8h]");
    0x000afb6c movs r1, 0                                            |     r1 = 0;
    0x000afb6e ldr r3, [sp, 0x24]                                    |     r3 = var_24h;
    0x000afb70 mov r2, sl                                            |     r2 = sl;
    0x000afb72 str r5, [sp, 0x18]                                    |     var_18h = r5;
    0x000afb74 movs r0, 4                                            |     r0 = 4;
    0x000afb76 strd r1, r1, [sp, 0xc]                                |     __asm ("strd r1, r1, [var_ch]");
    0x000afb7a str r3, [sp, 0x14]                                    |     var_14h = r3;
    0x000afb7c ldr r3, [sp, 0x28]                                    |     r3 = var_28h;
    0x000afb7e str r3, [sp]                                          |     *(sp) = r3;
    0x000afb80 movw r3, 0x291                                        |     r3 = 0x291;
    0x000afb84 blx 0x19c40                                           |     socket_address_matches_fd ();
    0x000afb88 b 0xafade                                             |     goto label_2;
                                                                     | label_6:
    0x000afb8a mov r0, r4                                            |     r0 = r4;
    0x000afb8c blx 0x19734                                           |     r0 = fcn_00019734 ();
    0x000afb90 mov r8, r0                                            |     r8 = r0;
    0x000afb92 cmp r0, 0                                             |     
                                                                     |     if (r0 == 0) {
    0x000afb94 beq.w 0xafa44                                         |         goto label_3;
                                                                     |     }
    0x000afb98 ldr r7, [pc, 0x164]                                   |     
    0x000afb9a add r6, sp, 0xb0                                      |     r6 += var_b0h;
    0x000afb9c add.w sb, sp, 0x48                                    |     sb += var_48h;
    0x000afba0 mov sl, r5                                            |     sl = r5;
    0x000afba2 add r7, pc                                            |     r7 = 0x15f8a6;
    0x000afba4 b 0xafbb0                                             |     
                                                                     |     while (r0 != 0) {
                                                                     | label_4:
    0x000afba6 mov r0, r4                                            |         r0 = r4;
    0x000afba8 blx 0x1b810                                           |         r0 = fcn_0001b810 ();
    0x000afbac mov r8, r0                                            |         r8 = r0;
                                                                     |         if (r0 == 0) {
    0x000afbae cbz r0, 0xafc04                                       |             goto label_22;
                                                                     |         }
                                                                     | label_5:
    0x000afbb0 ldm.w r7, {r0, r1, r2}                                |         r0 = *(r7);
                                                                     |         r1 = *((r7 + 4));
                                                                     |         r2 = *((r7 + 8));
    0x000afbb4 stm.w r6, {r0, r1, r2}                                |         *(r6) = r0;
                                                                     |         *((r6 + 4)) = r1;
                                                                     |         *((r6 + 8)) = r2;
    0x000afbb8 mov r1, r6                                            |         r1 = r6;
    0x000afbba mov r0, r8                                            |         r0 = r8;
    0x000afbbc blx 0x18e0c                                           |         r0 = base_filesystem_create ()
    0x000afbc0 cmp r0, 0                                             |         
    0x000afbc2 bne 0xafba6                                           |         
                                                                     |     }
    0x000afbc4 mov r1, sb                                            |     r1 = sb;
    0x000afbc6 mov r0, r8                                            |     r0 = r8;
    0x000afbc8 blx 0x197ac                                           |     r0 = fcn_000197ac ();
    0x000afbcc cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x000afbce blt 0xafbec                                           |         goto label_23;
                                                                     |     }
    0x000afbd0 ldr r3, [sp, 0x58]                                    |     r3 = var_58h;
    0x000afbd2 and r3, r3, 0xb000                                    |     r3 &= 0xb000;
    0x000afbd6 cmp.w r3, 0x2000                                      |     
                                                                     |     if (r3 != 0x2000) {
    0x000afbda bne 0xafba6                                           |         goto label_4;
                                                                     |     }
    0x000afbdc ldr r1, [sp, 0x6c]                                    |     r1 = var_6ch;
    0x000afbde ldrd r5, r3, [sp, 0x40]                               |     __asm ("ldrd r5, r3, [var_40h]");
    0x000afbe2 ldr r2, [sp, 0x68]                                    |     r2 = var_68h;
    0x000afbe4 cmp r1, r3                                            |     
    0x000afbe6 it eq                                                 |     
                                                                     |     if (r1 != r3) {
    0x000afbe8 cmpeq r2, r5                                          |         __asm ("cmpeq r2, r5");
                                                                     |         goto label_24;
                                                                     |     }
                                                                     |     if (r1 != r3) {
                                                                     | label_24:
    0x000afbea bne 0xafba6                                           |         goto label_4;
                                                                     |     }
                                                                     | label_23:
    0x000afbec mov r2, r8                                            |     r2 = r8;
    0x000afbee movs r3, 0                                            |     r3 = 0;
    0x000afbf0 mov r1, r4                                            |     r1 = r4;
    0x000afbf2 mov r0, sl                                            |     r0 = sl;
    0x000afbf4 bl 0xaecdc                                            |     fcn_000aecdc (r0, r1, r2, r3);
    0x000afbf8 mov r0, r4                                            |     r0 = r4;
    0x000afbfa blx 0x1b810                                           |     r0 = fcn_0001b810 ();
    0x000afbfe mov r8, r0                                            |     r8 = r0;
    0x000afc00 cmp r0, 0                                             |     
                                                                     |     if (r0 != 0) {
    0x000afc02 bne 0xafbb0                                           |         goto label_5;
                                                                     |     }
                                                                     | label_22:
    0x000afc04 mov r5, sl                                            |     r5 = sl;
    0x000afc06 b 0xafa44                                             |     goto label_3;
                                                                     | label_12:
    0x000afc08 ldr r2, [sp, 0x34]                                    |     r2 = var_34h;
    0x000afc0a movs r3, 0                                            |     r3 = 0;
    0x000afc0c mov r1, r4                                            |     r1 = r4;
    0x000afc0e mov r0, r5                                            |     r0 = r5;
    0x000afc10 bl 0xaecdc                                            |     fcn_000aecdc (r0, r1, r2, r3);
    0x000afc14 add r1, sp, 0x40                                      |     r1 += var_40h;
    0x000afc16 mov r0, r4                                            |     r0 = r4;
    0x000afc18 blx 0x1a320                                           |     r0 = fcn_0001a320 ();
    0x000afc1c cmp r0, 0                                             |     
                                                                     |     if (r0 < 0) {
    0x000afc1e blt.w 0xafa44                                         |         goto label_3;
                                                                     |     }
    0x000afc22 b 0xafb8a                                             |     goto label_6;
                                                                     | label_20:
    0x000afc24 mov r3, r7                                            |     r3 = r7;
    0x000afc26 mov r2, r5                                            |     r2 = r5;
    0x000afc28 mov r1, r4                                            |     r1 = r4;
    0x000afc2a mov r0, fp                                            |     r0 = fp;
    0x000afc2c bl 0xaecdc                                            |     fcn_000aecdc (r0, r1, r2, r3);
    0x000afc30 b 0xafade                                             |     goto label_2;
                                                                     | label_17:
    0x000afc32 mov r7, r4                                            |     r7 = r4;
    0x000afc34 mov r3, r4                                            |     r3 = r4;
    0x000afc36 b 0xafaba                                             |     goto label_0;
                                                                     | label_15:
    0x000afc38 ldr r1, [pc, 0xc8]                                    |     
    0x000afc3a movs r2, 0x33                                         |     r2 = 0x33;
    0x000afc3c ldr r3, [pc, 0xc8]                                    |     
    0x000afc3e ldr r0, [pc, 0xcc]                                    |     
    0x000afc40 add r1, pc                                            |     r1 = 0x15f948;
    0x000afc42 add r3, pc                                            |     r3 = 0x15f94e;
    0x000afc44 adds r1, 7                                            |     r1 += 7;
    0x000afc46 add r0, pc                                            |     r0 = 0x15f958;
    0x000afc48 blx 0x19e60                                           |     fcn_00019e60 ();
                                                                     | label_10:
    0x000afc4c ldr r1, [pc, 0xc0]                                    |     
    0x000afc4e mov.w r2, 0x258                                       |     r2 = 0x258;
    0x000afc52 ldr r3, [pc, 0xc0]                                    |     
    0x000afc54 ldr r0, [pc, 0xc0]                                    |     
    0x000afc56 add r1, pc                                            |     r1 = 0x15f96a;
    0x000afc58 add r3, pc                                            |     r3 = 0x15f972;
    0x000afc5a adds r1, 7                                            |     r1 += 7;
    0x000afc5c add r0, pc                                            |     r0 = 0x15f978;
    0x000afc5e blx 0x19e60                                           |     fcn_00019e60 ();
                                                                     | label_21:
    0x000afc62 mov r3, r4                                            |     r3 = r4;
    0x000afc64 mov r1, r4                                            |     r1 = r4;
    0x000afc66 b 0xafb68                                             |     goto label_7;
                                                                     | label_14:
    0x000afc68 mov r3, r0                                            |     r3 = r0;
    0x000afc6a str r7, [sp, 0x48]                                    |     var_48h = r7;
                                                                     |     if (r4 != 0) {
    0x000afc6c cbz r4, 0xafc7e                                       |         
    0x000afc6e str r0, [sp, 0x24]                                    |         var_24h = r0;
    0x000afc70 blx 0x18d64                                           |         r0 = af_to_ipv4_ipv6 ();
    0x000afc74 cmp r0, 3                                             |         
    0x000afc76 ldr r3, [sp, 0x24]                                    |         r3 = var_24h;
    0x000afc78 it le                                                 |         
                                                                     |         if (r0 > 3) {
    0x000afc7a movle r4, r7                                          |             r4 = r7;
                                                                     |         }
                                                                     |         if (r0 > 3) {
    0x000afc7c bgt 0xafcaa                                           |             goto label_25;
                                                                     |         }
                                                                     |     }
    0x000afc7e mov r0, r4                                            |     r0 = r4;
                                                                     |     do {
                                                                     | label_9:
    0x000afc80 str r0, [sp, 8]                                       |         var_8h = r0;
    0x000afc82 mov r1, r3                                            |         r1 = r3;
    0x000afc84 ldr r2, [pc, 0x94]                                    |         
    0x000afc86 movs r3, 0                                            |         r3 = 0;
    0x000afc88 ldr r5, [pc, 0x94]                                    |         
    0x000afc8a ldr r0, [pc, 0x98]                                    |         
    0x000afc8c add r2, pc                                            |         r2 = 0x15f9ac;
    0x000afc8e strd r3, r3, [sp, 0xc]                                |         __asm ("strd r3, r3, [var_ch]");
    0x000afc92 add r5, pc                                            |         r5 = 0x15f9b6;
    0x000afc94 adds r2, 7                                            |         r2 += 7;
    0x000afc96 add r0, pc                                            |         r0 = 0x15f9c0;
    0x000afc98 mov.w r3, 0x28c                                       |         r3 = 0x28c;
    0x000afc9c str r0, [sp]                                          |         *(sp) = r0;
    0x000afc9e movs r0, 4                                            |         r0 = 4;
    0x000afca0 str r4, [sp, 4]                                       |         var_4h = r4;
    0x000afca2 str r5, [sp, 0x14]                                    |         var_14h = r5;
    0x000afca4 blx 0x19c40                                           |         socket_address_matches_fd ();
    0x000afca8 b 0xafafa                                             |         goto label_8;
                                                                     | label_25:
    0x000afcaa mov r0, r4                                            |         r0 = r4;
    0x000afcac add r1, sp, 0x48                                      |         r1 += var_48h;
    0x000afcae blx 0x19384                                           |         fcn_00019384 ();
    0x000afcb2 ldr r0, [sp, 0x48]                                    |         r0 = var_48h;
    0x000afcb4 ldr r3, [sp, 0x24]                                    |         r3 = var_24h;
    0x000afcb6 mov r4, r0                                            |         r4 = r0;
    0x000afcb8 cmp r0, 0                                             |         
    0x000afcba beq 0xafc80                                           |         
                                                                     |     } while (r0 == 0);
    0x000afcbc ldr r4, [pc, 0x68]                                    |     
    0x000afcbe add r4, pc                                            |     r4 = 0x15f9ea;
    0x000afcc0 b 0xafc80                                             |     goto label_9;
                                                                     | label_19:
    0x000afcc2 blx 0x1a700                                           |     fcn_0001a700 ();
    0x000afcc6 nop                                                   |     
    0x000afcc8 lsls r6, r6, 0xa                                      |     r6 <<= 0xa;
    0x000afcca movs r0, r1                                           |     r0 = r1;
    0x000afccc asrs r0, r6, 9                                        |     r0 = r6 >> 9;
    0x000afcce movs r0, r0                                           |     
    0x000afcd0 ldrh r4, [r3, r4]                                     |     r4 = *((r3 + r4));
    0x000afcd2 movs r4, r0                                           |     r4 = r0;
    0x000afcd4 ldrh r0, [r0, r6]                                     |     r0 = *((r0 + r6));
    0x000afcd6 movs r4, r0                                           |     r4 = r0;
    0x000afcd8 strb r4, [r2, r6]                                     |     *((r2 + r6)) = r4;
    0x000afcda movs r4, r0                                           |     r4 = r0;
    0x000afcdc strb r0, [r2, r6]                                     |     *((r2 + r6)) = r0;
    0x000afcde movs r4, r0                                           |     r4 = r0;
    0x000afce0 str r6, [r3, 0x18]                                    |     *((r3 + 0x18)) = r6;
    0x000afce2 movs r4, r0                                           |     r4 = r0;
    0x000afce4 ldrh r4, [r4, r3]                                     |     r4 = *((r4 + r3));
    0x000afce6 movs r4, r0                                           |     r4 = r0;
    0x000afce8 str r2, [r0, 0x14]                                    |     *((r0 + 0x14)) = r2;
    0x000afcea movs r4, r0                                           |     r4 = r0;
    0x000afcec strb r4, [r1, r4]                                     |     *((r1 + r4)) = r4;
    0x000afcee movs r4, r0                                           |     r4 = r0;
    0x000afcf0 str r2, [r4, 0x10]                                    |     *((r4 + 0x10)) = r2;
    0x000afcf2 movs r4, r0                                           |     r4 = r0;
    0x000afcf4 lsls r0, r5, 6                                        |     r0 = r5 << 6;
    0x000afcf6 movs r0, r1                                           |     r0 = r1;
    0x000afcf8 ldrsb r2, [r7, r0]                                    |     r2 = *((r7 + r0));
    0x000afcfa movs r4, r0                                           |     r4 = r0;
    0x000afcfc ldrsb r2, [r0, r0]                                    |     r2 = *((r0 + r0));
    0x000afcfe movs r4, r0                                           |     r4 = r0;
    0x000afd00 asrs r6, r4, 0x1c                                     |     r6 = r4 >> 0x1c;
    0x000afd02 movs r0, r1                                           |     r0 = r1;
    0x000afd04 movs r1, 0xdc                                         |     r1 = 0xdc;
    0x000afd06 movs r1, r0                                           |     r1 = r0;
    0x000afd08 ldrsh r6, [r2, r0]                                    |     r6 = *((r2 + r0));
    0x000afd0a movs r4, r0                                           |     r4 = r0;
    0x000afd0c strb r6, [r1, r3]                                     |     *((r1 + r3)) = r6;
    0x000afd0e movs r1, r0                                           |     r1 = r0;
    0x000afd10 strh r6, [r4, r6]                                     |     *((r4 + r6)) = r6;
    0x000afd12 movs r4, r0                                           |     r4 = r0;
    0x000afd14 ldrsh r4, [r2, r0]                                    |     r4 = *((r2 + r0));
    0x000afd16 movs r4, r0                                           |     r4 = r0;
    0x000afd18 pop {r4, r5, pc}                                      |     
                                                                     | }

[*] Function system used 6 times systemd