[*] Binary protection state of libpaho-mqttpp3.so.1.2.0

  
  	Partial RELRO  No Canary found   NX disabled  DSO          No RPATH     No RUNPATH   No Symbols


[*] Function system tear down of libpaho-mqttpp3.so.1.2.0

    ; assembly                                                                                                                                               | /* r2dec pseudo code output */
                                                                                                                                                             | /* /logs/firmware/unblob_extracted/firmware_extract/56048-12514271.gzip_extract/gzip.uncompressed_extract/5243916-15068666.gzip_extract/gzip.uncompressed_extract/usr/lib/libpaho-mqttpp3.so.1.2.0 @ 0x21498 */
                                                                                                                                                             | #include <stdint.h>
                                                                                                                                                             |  
    ; (fcn) method.bool_mqtt::token::wait_for_long_long__std.ratio_1ll__1000ll____std::chrono::duration_long_long__std::ratio_1ll__1000ll____const_ ()       | void method_bool_mqtt::token::wait_for_long_long_std_ratio_1ll_1000ll_std::chrono::duration_long_long_std::ratio_1ll_1000ll_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                             |     int32_t var_0h;
                                                                                                                                                             |     int32_t var_0h_2;
                                                                                                                                                             |     int32_t var_8h;
                                                                                                                                                             |     int32_t var_8h_2;
                                                                                                                                                             |     int32_t var_10h;
                                                                                                                                                             |     int32_t var_18h;
                                                                                                                                                             |     int32_t var_1ch;
                                                                                                                                                             |     int32_t var_24h;
                                                                                                                                                             |     r0 = arg1;
                                                                                                                                                             |     r1 = arg2;
                                                                                                                                                             |     /* bool mqtt::token::wait_for<long long, std::ratio<1ll, 1000ll> >(std::chrono::duration<long long, std::ratio<1ll, 1000ll> > const&) */
    0x00021498 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                                                                                                     |     
    0x0002149c sub sp, sp, 0x24                                                                                                                              |     
    0x000214a0 add r5, sp, 0x10                                                                                                                              |     r5 += var_10h;
    0x000214a4 mov r6, r1                                                                                                                                    |     r6 = r1;
    0x000214a8 mov r4, r0                                                                                                                                    |     r4 = r0;
    0x000214ac add r1, r0, 4                                                                                                                                 |     r1 = r0 + 4;
    0x000214b0 mov r0, r5                                                                                                                                    |     r0 = r5;
    0x000214b4 bl 0x1b1c0                                                                                                                                    |     fcn_0001b1c0 ();
    0x000214b8 ldr r3, [pc, 0xd8]                                                                                                                            |     r3 = imp._ZTINSt6thread6_StateE;
    0x000214bc ldr r1, [r6]                                                                                                                                  |     r1 = *(r6);
    0x000214c0 ldr r2, [r6, 4]                                                                                                                               |     r2 = *((r6 + 4));
    0x000214c4 umull r6, r7, r1, r3                                                                                                                          |     r6:r7 = r1 * r3;
    0x000214c8 add r8, sp, 8                                                                                                                                 |     r8 += var_8h;
    0x000214cc mov r0, r8                                                                                                                                    |     r0 = r8;
    0x000214d0 mla r7, r3, r2, r7                                                                                                                            |     __asm ("mla r7, r3, r2, r7");
    0x000214d4 bl 0x1ac44                                                                                                                                    |     sym ();
    0x000214d8 ldrd r2, r3, [sp, 8]                                                                                                                          |     __asm ("ldrd r2, r3, [var_8h]");
    0x000214dc add fp, r4, 0x20                                                                                                                              |     
    0x000214e0 adds r0, r6, r2                                                                                                                               |     r0 = r6 + r2;
    0x000214e4 adc r1, r7, r3                                                                                                                                |     __asm ("adc r1, r7, r3");
    0x000214e8 add r3, pc, 0xa0                                                                                                                              |     r3 = pc + 0xa0;
    0x000214ec ldrd r2, r3, [r3]                                                                                                                             |     __asm ("ldrd r2, r3, [r3]");
    0x000214f0 strd r0, r1, [sp]                                                                                                                             |     __asm ("strd r0, r1, [sp]");
    0x000214f4 bl 0x1b514                                                                                                                                    |     aeabi_ldivmod ();
    0x000214f8 add r3, pc, 0x90                                                                                                                              |     r3 = pc + 0x90;
    0x000214fc ldrd r2, r3, [r3]                                                                                                                             |     __asm ("ldrd r2, r3, [r3]");
    0x00021500 mov sb, r0                                                                                                                                    |     sb = r0;
    0x00021504 ldrd r0, r1, [sp]                                                                                                                             |     __asm ("ldrd r0, r1, [sp]");
    0x00021508 bl 0x1b514                                                                                                                                    |     aeabi_ldivmod ();
    0x0002150c add r3, sp, 0x18                                                                                                                              |     r3 += var_18h;
    0x00021510 mov r6, r3                                                                                                                                    |     r6 = r3;
    0x00021514 mov sl, r2                                                                                                                                    |     sl = r2;
                                                                                                                                                             |     do {
    0x00021518 ldrb r3, [r4, 0x90]                                                                                                                           |         r3 = *((r4 + 0x90));
    0x0002151c cmp r3, 0                                                                                                                                     |         
                                                                                                                                                             |         if (r3 != 0) {
    0x00021520 bne 0x21564                                                                                                                                   |             goto label_0;
                                                                                                                                                             |         }
    0x00021524 mov r2, r6                                                                                                                                    |         r2 = r6;
    0x00021528 ldr r1, [sp, 0x10]                                                                                                                            |         r1 = var_10h;
    0x0002152c mov r0, fp                                                                                                                                    |         r0 = fp;
    0x00021530 str sb, [sp, 0x18]                                                                                                                            |         var_18h = sb;
    0x00021534 str sl, [sp, 0x1c]                                                                                                                            |         var_1ch = sl;
    0x00021538 bl 0x1b814                                                                                                                                    |         pthread_cond_timedwait ();
    0x0002153c mov r0, r8                                                                                                                                    |         r0 = r8;
    0x00021540 bl 0x1ac44                                                                                                                                    |         sym ();
    0x00021544 ldrd r2, r3, [sp, 8]                                                                                                                          |         __asm ("ldrd r2, r3, [var_8h]");
    0x00021548 ldrd r0, r1, [sp]                                                                                                                             |         __asm ("ldrd r0, r1, [sp]");
    0x0002154c cmp r2, r0                                                                                                                                    |         
    0x00021550 sbcs r3, r3, r1                                                                                                                               |         __asm ("sbcs r3, r3, r1");
    0x00021554 blt 0x21518                                                                                                                                   |         
                                                                                                                                                             |     } while (r2 < r0);
    0x00021558 ldrb r6, [r4, 0x90]                                                                                                                           |     r6 = *((r4 + 0x90));
    0x0002155c cmp r6, 0                                                                                                                                     |     
                                                                                                                                                             |     if (r6 != 0) {
    0x00021560 beq 0x21570                                                                                                                                   |         
                                                                                                                                                             | label_0:
    0x00021564 mov r0, r4                                                                                                                                    |         r0 = r4;
    0x00021568 bl 0x1b364                                                                                                                                    |         fcn_0001b364 ();
    0x0002156c mov r6, 1                                                                                                                                     |         r6 = 1;
                                                                                                                                                             |     }
    0x00021570 mov r0, r5                                                                                                                                    |     r0 = r5;
    0x00021574 bl 0x1af38                                                                                                                                    |     fcn_0001af38 ();
    0x00021578 mov r0, r6                                                                                                                                    |     r0 = r6;
    0x0002157c add sp, sp, 0x24                                                                                                                              |     
    0x00021580 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                                                                                                      |     
                                                                                                                                                             | }

[*] Function system used 1 times libpaho-mqttpp3.so.1.2.0