[*] Binary protection state of api-discovery

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


[*] Function system tear down of api-discovery

    ; assembly                                                   | /* r2dec pseudo code output */
                                                                 | /* /logs/firmware/patool_extraction/rootfs.img_unblob_extracted/rootfs.img_extract/0-50593792.squashfs_v4_le_extract/usr/sbin/api-discovery @ 0x1c5c */
                                                                 | #include <stdint.h>
                                                                 |  
                                                                 | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                 |  
    ; (fcn) fcn.00001c5c ()                                      | void fcn_00001c5c (int16_t arg1) {
                                                                 |     int16_t var_ch;
                                                                 |     int16_t var_10h;
                                                                 |     int16_t var_14h;
                                                                 |     int16_t var_0h;
                                                                 |     int32_t var_0h_2;
                                                                 |     int16_t var_8h;
                                                                 |     int16_t var_ch_2;
                                                                 |     int16_t var_10h_2;
                                                                 |     int16_t var_14h_2;
                                                                 |     int16_t var_18h;
                                                                 |     int16_t var_1ch;
                                                                 |     int16_t var_24h;
                                                                 |     int16_t var_28h;
                                                                 |     int16_t var_48h;
                                                                 |     int16_t var_68h;
                                                                 |     int16_t var_6ch;
                                                                 |     int16_t var_70h;
                                                                 |     int16_t var_74h;
                                                                 |     int16_t var_78h;
                                                                 |     int32_t var_0h_3;
                                                                 |     int16_t var_80h;
                                                                 |     int32_t var_ch_3;
                                                                 |     int16_t var_8ch;
                                                                 |     r0 = arg1;
    0x00001c5c ldr r2, [pc, 0x294]                               |     
    0x00001c5e ldr r3, [pc, 0x298]                               |     r3 = *(0x1efa);
    0x00001c60 push.w {r4, r5, r6, r7, r8, sb, sl, fp, lr}       |     
    0x00001c64 sub sp, 0x94                                      |     
    0x00001c66 ldr.w r8, [pc, 0x294]                             |     r8 = *(0x00001efc);
    0x00001c6a add r2, pc                                        |     r2 = 0x3b62;
    0x00001c6c str r0, [sp, 0x18]                                |     var_18h = r0;
    0x00001c6e ldr r3, [r2, r3]                                  |     
    0x00001c70 add r8, pc                                        |     r8 += pc;
    0x00001c72 mov r0, r8                                        |     r0 = r8;
    0x00001c74 ldr r3, [r3]                                      |     r3 = *(0x3b62);
    0x00001c76 str r3, [sp, 0x8c]                                |     var_8ch = r3;
    0x00001c78 mov.w r3, 0                                       |     r3 = 0;
    0x00001c7c blx 0x1264                                        |     r0 = g_hash_table_new_full ();
    0x00001c80 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00001c82 blt.w 0x1e4c                                      |         goto label_2;
                                                                 |     }
    0x00001c86 ldr r3, [pc, 0x278]                               |     
    0x00001c88 movs r6, 0                                        |     r6 = 0;
    0x00001c8a ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x00001c8e mov r1, r6                                        |     r1 = r6;
    0x00001c90 ldr r2, [pc, 0x270]                               |     
    0x00001c92 add r3, pc                                        |     r3 = 0x3b98;
    0x00001c94 strd r3, r6, [sp]                                 |     __asm ("strd r3, r6, [sp]");
    0x00001c98 ldr r3, [pc, 0x26c]                               |     
    0x00001c9a add r2, pc                                        |     r2 = 0x3ba2;
    0x00001c9c add r3, pc                                        |     r3 = 0x3ba8;
    0x00001c9e blx 0x13f8                                        |     r0 = fcn_000013f8 ();
    0x00001ca2 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00001ca4 blt.w 0x1e78                                      |         goto label_3;
                                                                 |     }
    0x00001ca8 ldr r4, [pc, 0x260]                               |     
    0x00001caa add r3, sp, 0x48                                  |     r3 += var_48h;
    0x00001cac mov r5, r3                                        |     r5 = r3;
    0x00001cae str r3, [sp, 0x1c]                                |     var_1ch = r3;
    0x00001cb0 add r7, sp, 0x28                                  |     r7 += var_28h;
    0x00001cb2 str r6, [sp, 0x24]                                |     var_24h = r6;
    0x00001cb4 add r4, pc                                        |     r4 = 0x3bc4;
    0x00001cb6 ldm r4!, {r0, r1, r2, r3}                         |     r0 = *(r4!);
                                                                 |     r1 = *((r4! + 4));
                                                                 |     r2 = *((r4! + 8));
                                                                 |     r3 = *((r4! + 12));
    0x00001cb8 stm r7!, {r0, r1, r2, r3}                         |     *(r7!) = r0;
                                                                 |     *((r7! + 4)) = r1;
                                                                 |     *((r7! + 8)) = r2;
                                                                 |     *((r7! + 12)) = r3;
    0x00001cba ldm.w r4, {r0, r1, r2, r3}                        |     r0 = *(r4);
                                                                 |     r1 = *((r4 + 4));
                                                                 |     r2 = *((r4 + 8));
                                                                 |     r3 = *((r4 + 12));
    0x00001cbe stm.w r7, {r0, r1, r2, r3}                        |     *(r7) = r0;
                                                                 |     *((r7 + 4)) = r1;
                                                                 |     *((r7 + 8)) = r2;
                                                                 |     *((r7 + 12)) = r3;
    0x00001cc2 movs r2, 0x20                                     |     r2 = 0x20;
    0x00001cc4 mov r1, r6                                        |     r1 = r6;
    0x00001cc6 mov r0, r5                                        |     r0 = r5;
    0x00001cc8 blx 0x12d0                                        |     g_hash_table_insert ();
    0x00001ccc add r0, sp, 0x24                                  |     r0 += var_24h;
    0x00001cce bl 0x276c                                         |     r0 = fcn_0000276c (r0, r1, r2);
    0x00001cd2 mov r4, r0                                        |     r4 = r0;
    0x00001cd4 adds r0, 2                                        |     r0 += 2;
    0x00001cd6 adds r4, 1                                        |     r4++;
    0x00001cd8 lsls r0, r0, 5                                    |     r0 <<= 5;
    0x00001cda lsls r4, r4, 2                                    |     r4 <<= 2;
    0x00001cdc blx 0x13a4                                        |     r0 = fcn_000013a4 ();
    0x00001ce0 mov r5, r0                                        |     r5 = r0;
    0x00001ce2 str r0, [sp, 0xc]                                 |     var_ch_2 = r0;
    0x00001ce4 mov r0, r4                                        |     r0 = r4;
    0x00001ce6 blx 0x13a4                                        |     fcn_000013a4 ();
    0x00001cea str.w r0, [r8, 8]                                 |     __asm ("str.w r0, [r8, 8]");
    0x00001cee mov r0, r4                                        |     r0 = r4;
    0x00001cf0 blx 0x13a4                                        |     fcn_000013a4 ();
    0x00001cf4 add.w lr, sp, 0x28                                |     lr += var_28h;
    0x00001cf8 mov r4, r0                                        |     r4 = r0;
    0x00001cfa str.w r0, [r8, 0xc]                               |     __asm ("str.w r0, [r8, 0xc]");
    0x00001cfe mov ip, r5                                        |     
    0x00001d00 ldm.w lr!, {r0, r1, r2, r3}                       |     r0 = *(lr!);
                                                                 |     r1 = *((lr! + 4));
                                                                 |     r2 = *((lr! + 8));
                                                                 |     r3 = *((lr! + 12));
    0x00001d04 ldr r5, [sp, 0x24]                                |     r5 = var_24h;
    0x00001d06 stm.w ip!, {r0, r1, r2, r3}                       |     *(ip!) = r0;
                                                                 |     *((ip! + 4)) = r1;
                                                                 |     *((ip! + 8)) = r2;
                                                                 |     *((ip! + 12)) = r3;
    0x00001d0a ldm.w r7, {r0, r1, r2, r3}                        |     r0 = *(r7);
                                                                 |     r1 = *((r7 + 4));
                                                                 |     r2 = *((r7 + 8));
                                                                 |     r3 = *((r7 + 12));
    0x00001d0e stm.w ip, {r0, r1, r2, r3}                        |     *(ip) = r0;
                                                                 |     *((ip + 4)) = r1;
                                                                 |     *((ip + 8)) = r2;
                                                                 |     *((ip + 12)) = r3;
    0x00001d12 cmp r5, 0                                         |     
                                                                 |     if (r5 == 0) {
    0x00001d14 beq.w 0x1e72                                      |         goto label_4;
                                                                 |     }
    0x00001d16 strh r5, [r5, 4]                                  |     *((r5 + 4)) = r5;
    0x00001d18 ldr.w fp, [pc, 0x1f4]                             |     
    0x00001d1c mov r4, r6                                        |     r4 = r6;
    0x00001d1e add.w sb, sp, 0x78                                |     sb += var_78h;
    0x00001d22 ldr r3, [pc, 0x1f0]                               |     
    0x00001d24 add fp, pc                                        |     fp = 0x3c38;
    0x00001d26 add r3, pc                                        |     r3 = 0x3c40;
    0x00001d28 str r3, [sp, 0x10]                                |     var_10h_2 = r3;
    0x00001d2a add r3, sp, 0x68                                  |     r3 += var_68h;
    0x00001d2c str r3, [sp, 0x14]                                |     var_14h_2 = r3;
                                                                 |     do {
    0x00001d2e ldr r6, [r5]                                      |         r6 = *(r5);
    0x00001d30 lsl.w sl, r4, 2                                   |         sl = r4 << 2;
    0x00001d34 ldr r0, [r6]                                      |         r0 = *(r6);
    0x00001d36 blx 0x13bc                                        |         fcn_000013bc ();
    0x00001d3a ldr.w r3, [r8, 8]                                 |         r3 = *((r8 + 8));
    0x00001d3e movs r2, 0x5f                                     |         r2 = 0x5f;
    0x00001d40 mov r1, fp                                        |         r1 = fp;
    0x00001d42 mov r7, r0                                        |         r7 = r0;
    0x00001d44 str r3, [sp, 8]                                   |         var_8h = r3;
    0x00001d46 blx 0x1434                                        |         fcn_00001434 ();
    0x00001d4a ldr r3, [sp, 8]                                   |         r3 = var_8h;
    0x00001d4c str.w r0, [r3, r4, lsl 2]                         |         __asm ("str.w r0, [r3, r4, lsl 2]");
    0x00001d50 ldr r0, [r6, 4]                                   |         r0 = *((r6 + 4));
    0x00001d52 ldr.w r6, [r8, 0xc]                               |         r6 = *((r8 + 0xc));
    0x00001d56 blx 0x13bc                                        |         fcn_000013bc ();
    0x00001d5a ldr r3, [sp, 0x10]                                |         r3 = var_10h_2;
    0x00001d5c movs r2, 0x50                                     |         r2 = 0x50;
    0x00001d5e strb.w r2, [sp, 0x68]                             |         var_68h = r2;
    0x00001d62 str.w r0, [r6, r4, lsl 2]                         |         __asm ("str.w r0, [r6, r4, lsl 2]");
    0x00001d66 adds r4, 1                                        |         r4++;
    0x00001d68 str r3, [sp, 0x74]                                |         var_74h = r3;
    0x00001d6a movs r3, 0                                        |         r3 = 0;
    0x00001d6c strb.w r3, [sp, 0x6c]                             |         var_6ch = r3;
    0x00001d70 ldr r2, [sp, 0x6c]                                |         r2 = var_6ch;
    0x00001d72 str.w r3, [sb, 0xc]                               |         __asm ("str.w r3, [var_ch_3]");
    0x00001d76 str.w sl, [sp, 0x80]                              |         __asm ("str.w sl, [var_80h]");
    0x00001d7a bfi r2, r3, 8, 0x18                               |         value_0 = BIT_MASK (8, 0x18);
                                                                 |         value_1 = r3 & value_0;
                                                                 |         value_0 = ~value_0;
                                                                 |         r2 &= value_0;
                                                                 |         r2 |= value_1;
    0x00001d7e strd r3, r3, [sb]                                 |         __asm ("strd r3, r3, [sb]");
    0x00001d82 ldrb.w r3, [sp, 0x68]                             |         r3 = var_68h;
    0x00001d86 ldr.w ip, [sp, 0x14]                              |         ip = var_14h_2;
    0x00001d8a str r7, [sp, 0x70]                                |         var_70h = r7;
    0x00001d8c lsls r7, r4, 5                                    |         r7 = r4 << 5;
    0x00001d8e orr r3, r3, 0x1000                                |         r3 |= 0x1000;
    0x00001d92 str r2, [sp, 0x6c]                                |         var_6ch = r2;
    0x00001d94 str r3, [sp, 0x68]                                |         var_68h = r3;
    0x00001d96 ldr r3, [sp, 0xc]                                 |         r3 = var_ch_2;
    0x00001d98 ldr r5, [r5, 4]                                   |         r5 = *((r5 + 4));
    0x00001d9a adds r6, r3, r7                                   |         r6 = r3 + r7;
    0x00001d9c ldm.w ip!, {r0, r1, r2, r3}                       |         r0 = *(ip!);
                                                                 |         r1 = *((ip! + 4));
                                                                 |         r2 = *((ip! + 8));
                                                                 |         r3 = *((ip! + 12));
    0x00001da0 stm r6!, {r0, r1, r2, r3}                         |         *(r6!) = r0;
                                                                 |         *((r6! + 4)) = r1;
                                                                 |         *((r6! + 8)) = r2;
                                                                 |         *((r6! + 12)) = r3;
    0x00001da2 ldm.w ip, {r0, r1, r2, r3}                        |         r0 = *(ip);
                                                                 |         r1 = *((ip + 4));
                                                                 |         r2 = *((ip + 8));
                                                                 |         r3 = *((ip + 12));
    0x00001da6 stm.w r6, {r0, r1, r2, r3}                        |         *(r6) = r0;
                                                                 |         *((r6 + 4)) = r1;
                                                                 |         *((r6 + 8)) = r2;
                                                                 |         *((r6 + 12)) = r3;
    0x00001daa cmp r5, 0                                         |         
    0x00001dac bne 0x1d2e                                        |         
                                                                 |     } while (r5 != 0);
    0x00001dae ldr r0, [sp, 0x24]                                |     r0 = var_24h;
    0x00001db0 mov r6, sl                                        |     r6 = sl;
    0x00001db2 adds r5, r6, 4                                    |     r5 = r6 + 4;
    0x00001db4 adds r7, 0x20                                     |     r7 += 0x20;
    0x00001db6 blx 0x1374                                        |     fcn_00001374 ();
    0x00001dba ldr.w r4, [r8, 0xc]                               |     r4 = *((r8 + 0xc));
    0x00001dbe adds r3, r4, r5                                   |     r3 = r4 + r5;
                                                                 | label_0:
    0x00001dc0 ldr.w r8, [pc, 0x154]                             |     r8 = *(0x00001f18);
    0x00001dc4 movs r2, 0x3e                                     |     r2 = 0x3e;
    0x00001dc6 ldr.w ip, [sp, 0x1c]                              |     ip = var_1ch;
    0x00001dca movs r6, 0                                        |     r6 = 0;
    0x00001dcc ldr r1, [sp, 0xc]                                 |     r1 = var_ch_2;
    0x00001dce add r8, pc                                        |     r8 += pc;
    0x00001dd0 strb.w r2, [sp, 0x48]                             |     var_48h = r2;
    0x00001dd4 ldr.w r2, [r8, 8]                                 |     r2 = *((r8 + 8));
    0x00001dd8 add r7, r1                                        |     r7 += r1;
    0x00001dda str r6, [r2, r5]                                  |     *((r2 + r5)) = r6;
    0x00001ddc str r6, [r3]                                      |     *(r3) = r6;
    0x00001dde strd r1, r4, [sp]                                 |     __asm ("strd r1, r4, [sp]");
    0x00001de2 ldm.w ip!, {r0, r1, r2, r3}                       |     r0 = *(ip!);
                                                                 |     r1 = *((ip! + 4));
                                                                 |     r2 = *((ip! + 8));
                                                                 |     r3 = *((ip! + 12));
    0x00001de6 ldr.w r4, [r8]                                    |     r4 = *(r8);
    0x00001dea stm r7!, {r0, r1, r2, r3}                         |     *(r7!) = r0;
                                                                 |     *((r7! + 4)) = r1;
                                                                 |     *((r7! + 8)) = r2;
                                                                 |     *((r7! + 12)) = r3;
    0x00001dec ldm.w ip, {r0, r1, r2, r3}                        |     r0 = *(ip);
                                                                 |     r1 = *((ip + 4));
                                                                 |     r2 = *((ip + 8));
                                                                 |     r3 = *((ip + 12));
    0x00001df0 stm.w r7, {r0, r1, r2, r3}                        |     *(r7) = r0;
                                                                 |     *((r7 + 4)) = r1;
                                                                 |     *((r7 + 8)) = r2;
                                                                 |     *((r7 + 12)) = r3;
    0x00001df4 mov r0, r4                                        |     r0 = r4;
    0x00001df6 ldr r3, [pc, 0x124]                               |     
    0x00001df8 mov r1, r6                                        |     r1 = r6;
    0x00001dfa ldr r2, [pc, 0x124]                               |     
    0x00001dfc add r3, pc                                        |     r3 = 0x3d1e;
    0x00001dfe add r2, pc                                        |     r2 = 0x3d24;
    0x00001e00 blx 0x13f8                                        |     r0 = fcn_000013f8 ();
    0x00001e04 subs r5, r0, 0                                    |     r5 = r0 - 0;
                                                                 |     if (r5 < r0) {
    0x00001e06 blt 0x1e96                                        |         goto label_5;
                                                                 |     }
    0x00001e08 ldr r1, [pc, 0x118]                               |     
    0x00001e0a movs r2, 0                                        |     r2 = 0;
    0x00001e0c ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x00001e10 movs r3, 0                                        |     r3 = 0;
    0x00001e12 add r1, pc                                        |     r1 = 0x3d3a;
    0x00001e14 blx 0x11f0                                        |     fcn_000011f0 ();
    0x00001e16 strd r1, lr, [ip, 0x14]!                          |     __asm ("strd r1, lr, [ip, 0x14]!");
                                                                 |     if (r3 < 0) {
    0x00001e1a blt 0x1eb4                                        |         goto label_6;
                                                                 |     }
    0x00001e1c ldr.w r0, [r8]                                    |     r0 = *(r8);
    0x00001e20 mov r2, r6                                        |     r2 = r6;
    0x00001e22 ldr r1, [sp, 0x18]                                |     r1 = var_18h;
    0x00001e24 blx 0x12a0                                        |     r0 = errno_location ();
    0x00001e28 subs r5, r0, 0                                    |     r5 = r0 - 0;
    0x00001e2a it ge                                             |     
                                                                 |     if (r5 < r0) {
    0x00001e2c movge r5, r6                                      |         r5 = r6;
                                                                 |     }
                                                                 |     if (r5 < r0) {
    0x00001e2e blt 0x1ed2                                        |         goto label_7;
                                                                 |     }
                                                                 |     do {
    0x00001e30 ldr r2, [pc, 0xf4]                                |         
    0x00001e32 ldr r3, [pc, 0xc4]                                |         r3 = *(0x1efa);
    0x00001e34 add r2, pc                                        |         r2 = 0x3d60;
    0x00001e36 ldr r3, [r2, r3]                                  |         r3 = *(0x3d60);
    0x00001e38 ldr r2, [r3]                                      |         r2 = *(0x3d60);
    0x00001e3a ldr r3, [sp, 0x8c]                                |         r3 = var_8ch;
    0x00001e3c eors r2, r3                                       |         r2 ^= r3;
    0x00001e3e mov.w r3, 0                                       |         r3 = 0;
                                                                 |         if (r2 != r3) {
    0x00001e42 bne 0x1ef0                                        |             goto label_8;
                                                                 |         }
    0x00001e44 mov r0, r5                                        |         r0 = r5;
    0x00001e46 add sp, 0x94                                      |         
    0x00001e48 pop.w {r4, r5, r6, r7, r8, sb, sl, fp, pc}        |         
                                                                 | label_2:
    0x00001e4c rsbs r0, r5, 0                                    |         r0 = r5 - ;
    0x00001e4e blx 0x1258                                        |         sd_bus_open_system ()
    0x00001e52 ldr r3, [pc, 0xd8]                                |         
    0x00001e54 mov.w r1, 0x100                                   |         r1 = 0x100;
    0x00001e58 ldr r2, [pc, 0xd4]                                |         
    0x00001e5a str r0, [sp]                                      |         *(sp) = r0;
    0x00001e5c movs r0, 0                                        |         r0 = 0;
    0x00001e5e add r3, pc                                        |         r3 = 0x3d90;
    0x00001e60 add r2, pc                                        |         r2 = 0x3d94;
    0x00001e62 blx 0x1314                                        |         fcn_00001314 ();
                                                                 | label_1:
    0x00001e66 ldr r3, [pc, 0xcc]                                |         
    0x00001e68 add r3, pc                                        |         r3 = 0x3da2;
    0x00001e6a ldr r0, [r3]                                      |         r0 = *(0x3da2);
    0x00001e6c blx 0x1398                                        |         fcn_00001398 ();
    0x00001e70 b 0x1e30                                          |         
                                                                 |     } while (1);
                                                                 | label_4:
    0x00001e72 mov r3, r4                                        |     r3 = r4;
    0x00001e74 movs r7, 0x20                                     |     r7 = 0x20;
    0x00001e76 b 0x1dc0                                          |     goto label_0;
                                                                 | label_3:
    0x00001e78 rsbs r0, r5, 0                                    |     r0 = r5 - ;
    0x00001e7a blx 0x1258                                        |     sd_bus_open_system ()
    0x00001e7e ldr r3, [pc, 0xb8]                                |     
    0x00001e80 mov r1, r0                                        |     r1 = r0;
    0x00001e82 ldr r2, [pc, 0xb8]                                |     
    0x00001e84 mov r0, r6                                        |     r0 = r6;
    0x00001e86 str r1, [sp]                                      |     *(sp) = r1;
    0x00001e88 mov.w r1, 0x100                                   |     r1 = 0x100;
    0x00001e8c add r3, pc                                        |     r3 = 0x3dca;
    0x00001e8e add r2, pc                                        |     r2 = 0x3dd0;
    0x00001e90 blx 0x1314                                        |     fcn_00001314 ();
    0x00001e94 b 0x1e66                                          |     goto label_1;
                                                                 | label_5:
    0x00001e96 rsbs r0, r5, 0                                    |     r0 = r5 - ;
    0x00001e98 blx 0x1258                                        |     sd_bus_open_system ()
    0x00001e9c ldr r3, [pc, 0xa0]                                |     
    0x00001e9e mov r1, r0                                        |     r1 = r0;
    0x00001ea0 ldr r2, [pc, 0xa0]                                |     
    0x00001ea2 mov r0, r6                                        |     r0 = r6;
    0x00001ea4 str r1, [sp]                                      |     *(sp) = r1;
    0x00001ea6 mov.w r1, 0x100                                   |     r1 = 0x100;
    0x00001eaa add r3, pc                                        |     r3 = 0x3dee;
    0x00001eac add r2, pc                                        |     r2 = 0x3df4;
    0x00001eae blx 0x1314                                        |     fcn_00001314 ();
    0x00001eb2 b 0x1e66                                          |     goto label_1;
                                                                 | label_6:
    0x00001eb4 rsbs r0, r5, 0                                    |     r0 = r5 - ;
    0x00001eb6 blx 0x1258                                        |     sd_bus_open_system ()
    0x00001eba ldr r3, [pc, 0x8c]                                |     
    0x00001ebc mov r1, r0                                        |     r1 = r0;
    0x00001ebe ldr r2, [pc, 0x8c]                                |     
    0x00001ec0 mov r0, r6                                        |     r0 = r6;
    0x00001ec2 str r1, [sp]                                      |     *(sp) = r1;
    0x00001ec4 mov.w r1, 0x100                                   |     r1 = 0x100;
    0x00001ec8 add r3, pc                                        |     r3 = 0x3e16;
    0x00001eca add r2, pc                                        |     r2 = 0x3e1c;
    0x00001ecc blx 0x1314                                        |     fcn_00001314 ();
    0x00001ed0 b 0x1e66                                          |     goto label_1;
                                                                 | label_7:
    0x00001ed2 rsbs r0, r5, 0                                    |     r0 = r5 - ;
    0x00001ed4 blx 0x1258                                        |     sd_bus_open_system ()
    0x00001ed8 ldr r3, [pc, 0x74]                                |     
    0x00001eda mov r1, r0                                        |     r1 = r0;
    0x00001edc ldr r2, [pc, 0x74]                                |     
    0x00001ede mov r0, r6                                        |     r0 = r6;
    0x00001ee0 str r1, [sp]                                      |     *(sp) = r1;
    0x00001ee2 mov.w r1, 0x100                                   |     r1 = 0x100;
    0x00001ee6 add r3, pc                                        |     r3 = 0x3e3a;
    0x00001ee8 add r2, pc                                        |     r2 = 0x3e40;
    0x00001eea blx 0x1314                                        |     fcn_00001314 ();
    0x00001eee b 0x1e66                                          |     goto label_1;
                                                                 | label_8:
    0x00001ef0 blx 0x11b4                                        |     fcn_000011b4 ();
    0x00001ef4 movs r2, 0x42                                     |     r2 = 0x42;
    0x00001ef6 movs r1, r0                                       |     r1 = r0;
    0x00001ef8 lsls r4, r7, 4                                    |     r4 = r7 << 4;
    0x00001efa movs r0, r0                                       |     
    0x00001efc movs r3, 0xc8                                     |     r3 = 0xc8;
    0x00001efe movs r1, r0                                       |     r1 = r0;
    0x00001f00 movs r0, 0xa2                                     |     r0 = 0xa2;
    0x00001f02 movs r1, r0                                       |     r1 = r0;
    0x00001f04 asrs r6, r3, 0x20                                 |     r6 = r3 >> 0x20;
    0x00001f06 movs r0, r0                                       |     
    0x00001f08 asrs r4, r0, 0x20                                 |     r4 = r0 >> 0x20;
    0x00001f0a movs r0, r0                                       |     
    0x00001f0c movs r3, 0x50                                     |     r3 = 0x50;
    0x00001f0e movs r1, r0                                       |     r1 = r0;
    0x00001f10 lsrs r0, r2, 0x1f                                 |     r0 = r2 >> 0x1f;
    0x00001f12 movs r0, r0                                       |     
    0x00001f14 lsrs r6, r3, 0x12                                 |     r6 = r3 >> 0x12;
    0x00001f16 movs r0, r0                                       |     
    0x00001f18 movs r2, 0x6a                                     |     r2 = 0x6a;
    0x00001f1a movs r1, r0                                       |     r1 = r0;
    0x00001f1c lsrs r4, r7, 0x1b                                 |     r4 = r7 >> 0x1b;
    0x00001f1e movs r0, r0                                       |     
    0x00001f20 lsrs r2, r7, 0x1a                                 |     r2 = r7 >> 0x1a;
    0x00001f22 movs r0, r0                                       |     
    0x00001f24 lsrs r6, r1, 0x1a                                 |     r6 = r1 >> 0x1a;
    0x00001f26 movs r0, r0                                       |     
    0x00001f28 movs r0, 0x78                                     |     r0 = 0x78;
    0x00001f2a movs r1, r0                                       |     r1 = r0;
    0x00001f2c asrs r2, r7, 0xa                                  |     r2 = r7 >> 0xa;
    0x00001f2e movs r0, r0                                       |     
    0x00001f30 lsrs r4, r2, 0x18                                 |     r4 = r2 >> 0x18;
    0x00001f32 movs r0, r0                                       |     
    0x00001f34 movs r1, 0xd0                                     |     r1 = 0xd0;
    0x00001f36 movs r1, r0                                       |     r1 = r0;
    0x00001f38 asrs r4, r1, 0xa                                  |     r4 = r1 >> 0xa;
    0x00001f3a movs r0, r0                                       |     
    0x00001f3c lsrs r2, r0, 0x19                                 |     r2 = r0 >> 0x19;
    0x00001f3e movs r0, r0                                       |     
    0x00001f40 asrs r6, r5, 9                                    |     r6 = r5 >> 9;
    0x00001f42 movs r0, r0                                       |     
    0x00001f44 lsrs r4, r4, 0x18                                 |     r4 >>= 0x18;
    0x00001f46 movs r0, r0                                       |     
    0x00001f48 asrs r0, r2, 9                                    |     r0 = r2 >> 9;
    0x00001f4a movs r0, r0                                       |     
    0x00001f4c lsrs r2, r2, 0x19                                 |     r2 >>= 0x19;
    0x00001f4e movs r0, r0                                       |     
    0x00001f50 asrs r2, r6, 8                                    |     r2 = r6 >> 8;
    0x00001f52 movs r0, r0                                       |     
    0x00001f54 lsrs r4, r3, 0x19                                 |     r4 = r3 >> 0x19;
    0x00001f56 movs r0, r0                                       |     
                                                                 | }

[*] Function system used 6 times api-discovery