[*] 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 printf 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 @ 0x1c4d0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0001c4d0 ()                          | void fcn_0001c4d0 (int32_t arg1, int32_t arg2) {
                                                     |     int32_t var_4h_2;
                                                     |     int32_t var_8h;
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0001c4d0 push {r0, r1, r4, r5, r6, lr}         |     
    0x0001c4d4 add r3, r0, 8                         |     r3 = r0 + 8;
    0x0001c4d8 subs r5, r1, 0                        |     r5 = r1 - 0;
    0x0001c4dc str r3, [r0]                          |     *(r0) = r3;
                                                     |     if (r5 != r1) {
    0x0001c4e0 beq 0x1c54c                           |         
    0x0001c4e4 mov r4, r0                            |         r4 = r0;
    0x0001c4e8 mov r0, r5                            |         r0 = r5;
    0x0001c4ec bl 0x1acb0                            |         r0 = strlen (r0);
    0x0001c4f0 cmp r0, 0xf                           |         
    0x0001c4f4 add r6, r5, r0                        |         r6 = r5 + r0;
    0x0001c4f8 str r0, [sp, 4]                       |         var_4h_2 = r0;
                                                     |         if (r0 >= 0xf) {
    0x0001c4fc bls 0x1c51c                           |             
    0x0001c500 mov r2, 0                             |             r2 = 0;
    0x0001c504 add r1, sp, 4                         |             r1 += var_4h_2;
    0x0001c508 mov r0, r4                            |             r0 = r4;
    0x0001c50c bl 0x1b9f4                            |             sym ();
    0x0001c510 ldr r3, [sp, 4]                       |             r3 = var_4h_2;
    0x0001c514 str r3, [r4, 8]                       |             *((r4 + 8)) = r3;
    0x0001c518 str r0, [r4]                          |             *(r4) = r0;
                                                     |         }
    0x0001c51c mov r2, r6                            |         r2 = r6;
    0x0001c520 mov r1, r5                            |         r1 = r5;
    0x0001c524 ldr r0, [r4]                          |         r0 = *(r4);
    0x0001c528 bl 0x1b484                            |         sym ();
    0x0001c52c ldr r3, [sp, 4]                       |         r3 = var_4h_2;
    0x0001c530 ldr r2, [r4]                          |         r2 = *(r4);
    0x0001c534 mov r1, 0                             |         r1 = 0;
    0x0001c538 mov r0, r4                            |         r0 = r4;
    0x0001c53c str r3, [r4, 4]                       |         *((r4 + 4)) = r3;
    0x0001c540 strb r1, [r2, r3]                     |         *((r2 + r3)) = r1;
    0x0001c544 add sp, sp, 8                         |         
    0x0001c548 pop {r4, r5, r6, pc}                  |         
                                                     |     }
    0x0001c54c ldr r0, [pc, 4]                       |     r0 = *(0x1c554);
    0x0001c550 add r0, pc, r0                        |     r0 = pc + r0;
    0x0001c554 bl 0x1b1a8                            |     sym ();
                                                     |     /* Beware that this jump is a conditional jump.
                                                     |      * r2dec transformed it as a return, due being the
                                                     |      * last instruction. Please, check 'pdda' output
                                                     |      * for more hints. */
    0x0001c558 andeq r1, r1, r7, lsr 22              |     return r1 &= (r7 >> 22);
                                                     | }
    ; 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 @ 0x22814 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00022814 ()                      | void fcn_00022814 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00022814 push {r0, r1, r4, r5, r6, lr}     |     
    0x00022818 add r3, r0, 8                     |     r3 = r0 + 8;
    0x0002281c subs r5, r1, 0                    |     r5 = r1 - 0;
    0x00022820 str r3, [r0]                      |     *(r0) = r3;
                                                 |     if (r5 != r1) {
    0x00022824 beq 0x22890                       |         
    0x00022828 mov r4, r0                        |         r4 = r0;
    0x0002282c mov r0, r5                        |         r0 = r5;
    0x00022830 bl 0x1acb0                        |         r0 = strlen (r0);
    0x00022834 cmp r0, 0xf                       |         
    0x00022838 add r6, r5, r0                    |         r6 = r5 + r0;
    0x0002283c str r0, [sp, 4]                   |         var_4h = r0;
                                                 |         if (r0 >= 0xf) {
    0x00022840 bls 0x22860                       |             
    0x00022844 mov r2, 0                         |             r2 = 0;
    0x00022848 add r1, sp, 4                     |             r1 += var_4h;
    0x0002284c mov r0, r4                        |             r0 = r4;
    0x00022850 bl 0x1b9f4                        |             sym ();
    0x00022854 ldr r3, [sp, 4]                   |             r3 = var_4h;
    0x00022858 str r3, [r4, 8]                   |             *((r4 + 8)) = r3;
    0x0002285c str r0, [r4]                      |             *(r4) = r0;
                                                 |         }
    0x00022860 mov r2, r6                        |         r2 = r6;
    0x00022864 mov r1, r5                        |         r1 = r5;
    0x00022868 ldr r0, [r4]                      |         r0 = *(r4);
    0x0002286c bl 0x1b484                        |         sym ();
    0x00022870 ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x00022874 ldr r2, [r4]                      |         r2 = *(r4);
    0x00022878 mov r1, 0                         |         r1 = 0;
    0x0002287c mov r0, r4                        |         r0 = r4;
    0x00022880 str r3, [r4, 4]                   |         *((r4 + 4)) = r3;
    0x00022884 strb r1, [r2, r3]                 |         *((r2 + r3)) = r1;
    0x00022888 add sp, sp, 8                     |         
    0x0002288c pop {r4, r5, r6, pc}              |         
                                                 |     }
    0x00022890 ldr r0, [pc, 4]                   |     r0 = *(0x22898);
    0x00022894 add r0, pc, r0                    |     r0 = pc + r0;
    0x00022898 bl 0x1b1a8                        |     r0 = sym ();
                                                 |     /* Beware that this jump is a conditional jump.
                                                 |      * r2dec transformed it as a return, due being the
                                                 |      * last instruction. Please, check 'pdda' output
                                                 |      * for more hints. */
    0x0002289c andeq fp, r0, r3, ror 15          |     return void (*0x2289d)() ();
                                                 | }
    ; 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 @ 0x27218 */
                                                 | #include <stdint.h>
                                                 |  
    ; (fcn) fcn.00027218 ()                      | void fcn_00027218 (int32_t arg1, int32_t arg2) {
                                                 |     int32_t var_4h;
                                                 |     int32_t var_8h;
                                                 |     r0 = arg1;
                                                 |     r1 = arg2;
    0x00027218 push {r0, r1, r4, r5, r6, lr}     |     
    0x0002721c add r3, r0, 8                     |     r3 = r0 + 8;
    0x00027220 subs r5, r1, 0                    |     r5 = r1 - 0;
    0x00027224 str r3, [r0]                      |     *(r0) = r3;
                                                 |     if (r5 != r1) {
    0x00027228 beq 0x27294                       |         
    0x0002722c mov r4, r0                        |         r4 = r0;
    0x00027230 mov r0, r5                        |         r0 = r5;
    0x00027234 bl 0x1acb0                        |         r0 = strlen (r0);
    0x00027238 cmp r0, 0xf                       |         
    0x0002723c add r6, r5, r0                    |         r6 = r5 + r0;
    0x00027240 str r0, [sp, 4]                   |         var_4h = r0;
                                                 |         if (r0 >= 0xf) {
    0x00027244 bls 0x27264                       |             
    0x00027248 mov r2, 0                         |             r2 = 0;
    0x0002724c add r1, sp, 4                     |             r1 += var_4h;
    0x00027250 mov r0, r4                        |             r0 = r4;
    0x00027254 bl 0x1b9f4                        |             sym ();
    0x00027258 ldr r3, [sp, 4]                   |             r3 = var_4h;
    0x0002725c str r3, [r4, 8]                   |             *((r4 + 8)) = r3;
    0x00027260 str r0, [r4]                      |             *(r4) = r0;
                                                 |         }
    0x00027264 mov r2, r6                        |         r2 = r6;
    0x00027268 mov r1, r5                        |         r1 = r5;
    0x0002726c ldr r0, [r4]                      |         r0 = *(r4);
    0x00027270 bl 0x1b484                        |         sym ();
    0x00027274 ldr r3, [sp, 4]                   |         r3 = var_4h;
    0x00027278 ldr r2, [r4]                      |         r2 = *(r4);
    0x0002727c mov r1, 0                         |         r1 = 0;
    0x00027280 mov r0, r4                        |         r0 = r4;
    0x00027284 str r3, [r4, 4]                   |         *((r4 + 4)) = r3;
    0x00027288 strb r1, [r2, r3]                 |         *((r2 + r3)) = r1;
    0x0002728c add sp, sp, 8                     |         
    0x00027290 pop {r4, r5, r6, pc}              |         
                                                 |     }
    0x00027294 ldr r0, [pc, 4]                   |     r0 = *(0x2729c);
    0x00027298 add r0, pc, r0                    |     r0 = pc + r0;
    0x0002729c bl 0x1b1a8                        |     r0 = sym ();
    0x000272a0 ldrdeq r6, r7, [r0], -pc          |     __asm ("ldrdeq r6, r7, [r0], -pc");
                                                 | }
    ; 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 @ 0x29fc0 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.00029fc0 ()                          | void fcn_00029fc0 (int32_t arg1, int32_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x00029fc0 push {r4, r5, r6, r7, r8, lr}         |     
    0x00029fc4 sub r4, r2, r1                        |     r4 = r2 - r1;
    0x00029fc8 mov r8, r2                            |     r8 = r2;
    0x00029fcc ldr r2, [pc, 0x74]                    |     r2 = *(0x2a044);
    0x00029fd0 asr r3, r4, 3                         |     r3 = r4 >> 3;
    0x00029fd4 mov r7, r0                            |     r7 = r0;
    0x00029fd8 mul r0, r3, r2                        |     r0 = r3 * r2;
    0x00029fdc mov r5, r1                            |     r5 = r1;
    0x00029fe0 bl 0x29cd0                            |     r0 = fcn_00029cd0 (r0);
    0x00029fe4 add r4, r0, r4                        |     r4 = r0 + r4;
    0x00029fe8 str r4, [r7, 8]                       |     *((r7 + 8)) = r4;
    0x00029fec mov r6, r0                            |     r6 = r0;
    0x00029ff0 mov r4, r0                            |     r4 = r0;
    0x00029ff4 str r0, [r7]                          |     *(r7) = r0;
                                                     |     do {
    0x00029ff8 cmp r8, r5                            |         
                                                     |         if (r8 == r5) {
    0x00029ffc beq 0x2a024                           |             goto label_1;
                                                     |         }
    0x0002a000 cmp r4, 0                             |         
                                                     |         if (r4 != 0) {
    0x0002a004 bne 0x2a014                           |             goto label_2;
                                                     |         }
                                                     | label_0:
    0x0002a008 add r5, r5, 0x18                      |         r5 += 0x18;
    0x0002a00c add r4, r4, 0x18                      |         r4 += 0x18;
    0x0002a010 b 0x29ff8                             |         
                                                     |     } while (1);
                                                     | label_2:
    0x0002a014 mov r1, r5                            |     r1 = r5;
    0x0002a018 mov r0, r4                            |     r0 = r4;
    0x0002a01c bl 0x1af08                            |     sym ();
    0x0002a020 b 0x2a008                             |     goto label_0;
                                                     | label_1:
    0x0002a024 str r4, [r7, 4]                       |     *((r7 + 4)) = r4;
    0x0002a028 pop {r4, r5, r6, r7, r8, pc}          |     
                                                     | }
    ; 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 @ 0x2ce98 */
                                                     | #include <stdint.h>
                                                     |  
    ; (fcn) fcn.0002ce98 ()                          | void fcn_0002ce98 (int32_t arg1, int32_t arg2) {
                                                     |     r0 = arg1;
                                                     |     r1 = arg2;
    0x0002ce98 push {r4, r5, r6, r7, r8, lr}         |     
    0x0002ce9c ldr r6, [pc, 0x28]                    |     r6 = *(0x2cec8);
    0x0002cea0 mov r5, r0                            |     r5 = r0;
    0x0002cea4 mov r7, r1                            |     r7 = r1;
                                                     |     do {
    0x0002cea8 ldr r4, [r5]                          |         r4 = *(r5);
    0x0002ceac mov r2, r5                            |         r2 = r5;
    0x0002ceb0 add r1, r4, r7                        |         r1 = r4 + r7;
    0x0002ceb4 mov r0, r4                            |         r0 = r4;
    0x0002ceb8 blx r6                                |         r0 = uint32_t (*r6)(uint32_t, uint32_t, uint32_t) (r2, r1, r0);
    0x0002cebc cmp r0, 0                             |         
    0x0002cec0 bne 0x2cea8                           |         
                                                     |     } while (r0 != 0);
    0x0002cec4 mov r0, r4                            |     r0 = r4;
    0x0002cec8 pop {r4, r5, r6, r7, r8, pc}          |     
                                                     | }
    ; 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 @ 0x20940 */
                                                                                                                                                             | #include <stdint.h>
                                                                                                                                                             |  
    ; (fcn) method.mqtt::exception.printable_error_int__int__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const_ ()       | void method_mqtt::exception_printable_error_int_int_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                             |     int32_t var_0h;
                                                                                                                                                             |     int32_t var_ch;
                                                                                                                                                             |     int32_t var_10h;
                                                                                                                                                             |     int32_t var_14h;
                                                                                                                                                             |     int32_t var_18h;
                                                                                                                                                             |     int32_t var_28h;
                                                                                                                                                             |     int32_t var_2ch;
                                                                                                                                                             |     int32_t var_30h;
                                                                                                                                                             |     int32_t var_40h;
                                                                                                                                                             |     int32_t var_58h;
                                                                                                                                                             |     r0 = arg1;
                                                                                                                                                             |     r1 = arg2;
                                                                                                                                                             |     /* mqtt::exception::printable_error(int, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) */
    0x00020940 push {r4, r5, r6, r7, r8, lr}                                                                                                                 |     
    0x00020944 mov r7, r3                                                                                                                                    |     r7 = r3;
    0x00020948 ldr r3, [pc, 0x21c]                                                                                                                           |     
    0x0002094c mov r8, r2                                                                                                                                    |     r8 = r2;
    0x00020950 ldr r2, [pc, 0x218]                                                                                                                           |     r2 = *(0x20b6c);
    0x00020954 add r3, pc, r3                                                                                                                                |     r3 = pc + r3;
    0x00020958 ldr r3, [r3, r2]                                                                                                                              |     r3 = *(0x20b68);
    0x0002095c sub sp, sp, 0x58                                                                                                                              |     
    0x00020960 str r3, [sp, 0xc]                                                                                                                             |     var_ch = r3;
    0x00020964 ldr r3, [pc, 0x208]                                                                                                                           |     r3 = *(0x20b70);
    0x00020968 add r4, sp, 0x28                                                                                                                              |     r4 += var_28h;
    0x0002096c str r1, [sp]                                                                                                                                  |     *(sp) = r1;
    0x00020970 mov r2, 0x10                                                                                                                                  |     r2 = 0x10;
    0x00020974 ldr r1, [sp, 0xc]                                                                                                                             |     r1 = var_ch;
    0x00020978 mov r6, r0                                                                                                                                    |     r6 = r0;
    0x0002097c add r3, pc, r3                                                                                                                                |     r3 = pc + r3;
    0x00020980 mov r0, r4                                                                                                                                    |     r0 = r4;
    0x00020984 bl 0x1ba54                                                                                                                                    |     fcn_0001ba54 ();
    0x00020988 ldr r2, [pc, 0x1e8]                                                                                                                           |     r2 = "EEEPSB_SH_EEEEvEE";
    0x0002098c mov r1, 0                                                                                                                                     |     r1 = 0;
    0x00020990 add r2, pc, r2                                                                                                                                |     r2 = pc + r2;
    0x00020994 mov r0, r4                                                                                                                                    |     r0 = r4;
    0x00020998 bl 0x1b1fc                                                                                                                                    |     sym ();
    0x0002099c add r5, sp, 0x40                                                                                                                              |     r5 += var_40h;
    0x000209a0 mov r1, r0                                                                                                                                    |     r1 = r0;
    0x000209a4 mov r0, r5                                                                                                                                    |     r0 = r5;
    0x000209a8 bl 0x1b0ac                                                                                                                                    |     sym ();
    0x000209ac ldr r1, [pc, 0x1c8]                                                                                                                           |     r1 = *(0x20b78);
    0x000209b0 mov r0, r5                                                                                                                                    |     r0 = r5;
    0x000209b4 add r1, pc, r1                                                                                                                                |     r1 = pc + r1;
    0x000209b8 bl 0x1bbec                                                                                                                                    |     r0 = sym ();
    0x000209bc mov r1, r0                                                                                                                                    |     r1 = r0;
    0x000209c0 mov r0, r6                                                                                                                                    |     r0 = r6;
    0x000209c4 bl 0x1b0ac                                                                                                                                    |     sym ();
    0x000209c8 mov r0, r5                                                                                                                                    |     r0 = r5;
    0x000209cc bl 0x1b610                                                                                                                                    |     sym ();
    0x000209d0 mov r0, r4                                                                                                                                    |     r0 = r4;
    0x000209d4 bl 0x1b610                                                                                                                                    |     sym ();
    0x000209d8 ldr r3, [r7, 4]                                                                                                                               |     r3 = *((r7 + 4));
    0x000209dc cmp r3, 0                                                                                                                                     |     
                                                                                                                                                             |     if (r3 != 0) {
    0x000209e0 beq 0x20a28                                                                                                                                   |         
    0x000209e4 ldr r1, [pc, 0x194]                                                                                                                           |         r1 = "_12basic_stringIcSt11char_traitsIcESaIcEEEEPSB_SH_EEEEvEE";
    0x000209e8 mov r0, r4                                                                                                                                    |         r0 = r4;
    0x000209ec add r1, pc, r1                                                                                                                                |         r1 = pc + r1;
    0x000209f0 bl 0x1c4d0                                                                                                                                    |         fcn_0001c4d0 (r0, r1);
    0x000209f4 mov r1, r7                                                                                                                                    |         r1 = r7;
    0x000209f8 mov r0, r4                                                                                                                                    |         r0 = r4;
    0x000209fc bl 0x1bc58                                                                                                                                    |         r0 = sym ();
    0x00020a00 mov r1, r0                                                                                                                                    |         r1 = r0;
    0x00020a04 mov r0, r5                                                                                                                                    |         r0 = r5;
    0x00020a08 bl 0x1b0ac                                                                                                                                    |         sym ();
    0x00020a0c mov r1, r5                                                                                                                                    |         r1 = r5;
    0x00020a10 mov r0, r6                                                                                                                                    |         r0 = r6;
    0x00020a14 bl 0x1b658                                                                                                                                    |         sym ();
    0x00020a18 mov r0, r5                                                                                                                                    |         r0 = r5;
    0x00020a1c bl 0x1b610                                                                                                                                    |         sym ();
    0x00020a20 mov r0, r4                                                                                                                                    |         r0 = r4;
    0x00020a24 bl 0x1b610                                                                                                                                    |         sym ();
                                                                                                                                                             |     }
    0x00020a28 cmp r8, 0xff                                                                                                                                  |     
    0x00020a2c cmpne r8, 0                                                                                                                                   |     __asm ("cmpne r8, 0");
                                                                                                                                                             |     if (r8 != 0xff) {
    0x00020a30 beq 0x20b08                                                                                                                                   |         
    0x00020a34 ldr r1, [pc, 0x148]                                                                                                                           |         r1 = "okerISt5tupleIJMN4mqtt8callbackEFvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEPSB_SH_EEEEvEE";
    0x00020a38 add r7, sp, 0x10                                                                                                                              |         r7 += var_10h;
    0x00020a3c add r1, pc, r1                                                                                                                                |         r1 = pc + r1;
    0x00020a40 mov r0, r7                                                                                                                                    |         r0 = r7;
    0x00020a44 bl 0x1c4d0                                                                                                                                    |         fcn_0001c4d0 (r0, r1);
    0x00020a48 mov r0, r8                                                                                                                                    |         r0 = r8;
    0x00020a4c bl 0x1b2b0                                                                                                                                    |         r0 = MQTTReasonCode_toString ();
    0x00020a50 subs r1, r0, 0                                                                                                                                |         r1 = r0 - 0;
                                                                                                                                                             |         if (r1 != r0) {
    0x00020a54 beq 0x20a64                                                                                                                                   |             
    0x00020a58 mov r0, r4                                                                                                                                    |             r0 = r4;
    0x00020a5c bl 0x1c4d0                                                                                                                                    |             fcn_0001c4d0 (r0, r1);
    0x00020a60 b 0x20a74                                                                                                                                     |             
                                                                                                                                                             |         } else {
    0x00020a64 add r3, sp, 0x30                                                                                                                              |             r3 += var_30h;
    0x00020a68 str r3, [sp, 0x28]                                                                                                                            |             var_28h = r3;
    0x00020a6c str r1, [sp, 0x2c]                                                                                                                            |             var_2ch = r1;
    0x00020a70 strb r1, [sp, 0x30]                                                                                                                           |             var_30h = r1;
                                                                                                                                                             |         }
    0x00020a74 ldr r2, [sp, 0x2c]                                                                                                                            |         r2 = var_2ch;
    0x00020a78 ldr r3, [sp, 0x14]                                                                                                                            |         r3 = var_14h;
    0x00020a7c ldr r1, [sp, 0x10]                                                                                                                            |         r1 = var_10h;
    0x00020a80 add r3, r3, r2                                                                                                                                |         r3 += r2;
    0x00020a84 add r2, sp, 0x18                                                                                                                              |         r2 += var_18h;
    0x00020a88 cmp r1, r2                                                                                                                                    |         
                                                                                                                                                             |         if (r1 == r2) {
    0x00020a8c ldrne r2, [sp, 0x18]                                                                                                                          |             r2 = var_18h;
                                                                                                                                                             |         }
                                                                                                                                                             |         if (r1 != r2) {
    0x00020a90 moveq r2, 0xf                                                                                                                                 |             r2 = 0xf;
                                                                                                                                                             |         }
    0x00020a94 cmp r3, r2                                                                                                                                    |         
                                                                                                                                                             |         if (r3 >= r2) {
    0x00020a98 bls 0x20acc                                                                                                                                   |             
    0x00020a9c ldr r1, [sp, 0x28]                                                                                                                            |             r1 = var_28h;
    0x00020aa0 add r2, sp, 0x30                                                                                                                              |             r2 += var_30h;
    0x00020aa4 cmp r1, r2                                                                                                                                    |             
                                                                                                                                                             |             if (r1 == r2) {
    0x00020aa8 ldrne r2, [sp, 0x30]                                                                                                                          |                 r2 = var_30h;
                                                                                                                                                             |             }
                                                                                                                                                             |             if (r1 != r2) {
    0x00020aac moveq r2, 0xf                                                                                                                                 |                 r2 = 0xf;
                                                                                                                                                             |             }
    0x00020ab0 cmp r3, r2                                                                                                                                    |             
                                                                                                                                                             |             if (r3 <= r2) {
    0x00020ab4 bhi 0x20acc                                                                                                                                   |                 
    0x00020ab8 mov r2, r7                                                                                                                                    |                 r2 = r7;
    0x00020abc mov r1, 0                                                                                                                                     |                 r1 = 0;
    0x00020ac0 mov r0, r4                                                                                                                                    |                 r0 = r4;
    0x00020ac4 bl 0x1ac68                                                                                                                                    |                 sym ();
    0x00020ac8 b 0x20ad8                                                                                                                                     |                 
                                                                                                                                                             |             }
                                                                                                                                                             |         } else {
    0x00020acc mov r1, r4                                                                                                                                    |             r1 = r4;
    0x00020ad0 mov r0, r7                                                                                                                                    |             r0 = r7;
    0x00020ad4 bl 0x1bc58                                                                                                                                    |             r0 = sym ();
                                                                                                                                                             |         }
    0x00020ad8 mov r1, r0                                                                                                                                    |         r1 = r0;
    0x00020adc mov r0, r5                                                                                                                                    |         r0 = r5;
    0x00020ae0 bl 0x1b0ac                                                                                                                                    |         sym ();
    0x00020ae4 mov r1, r5                                                                                                                                    |         r1 = r5;
    0x00020ae8 mov r0, r6                                                                                                                                    |         r0 = r6;
    0x00020aec bl 0x1b658                                                                                                                                    |         sym ();
    0x00020af0 mov r0, r5                                                                                                                                    |         r0 = r5;
    0x00020af4 bl 0x1b610                                                                                                                                    |         sym ();
    0x00020af8 mov r0, r4                                                                                                                                    |         r0 = r4;
    0x00020afc bl 0x1b610                                                                                                                                    |         sym ();
    0x00020b00 mov r0, r7                                                                                                                                    |         r0 = r7;
    0x00020b04 bl 0x1b610                                                                                                                                    |         sym ();
                                                                                                                                                             |     }
    0x00020b08 mov r0, r6                                                                                                                                    |     r0 = r6;
    0x00020b0c add sp, sp, 0x58                                                                                                                              |     
    0x00020b10 pop {r4, r5, r6, r7, r8, pc}                                                                                                                  |     
                                                                                                                                                             | }
    ; 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 @ 0x274d8 */
                                                                                         | #include <stdint.h>
                                                                                         |  
    ; (fcn) method.mqtt::iclient_persistence.persistence_keys_void__char__int_ ()        | uint32_t method_mqtt::iclient_persistence_persistence_keys_void_char_int_ (uint32_t arg1, uint32_t arg2) {
                                                                                         |     char * src;
                                                                                         |     int32_t var_1ch;
                                                                                         |     r0 = arg1;
                                                                                         |     r1 = arg2;
                                                                                         |     /* mqtt::iclient_persistence::persistence_keys(void*, char***, int*) */
    0x000274d8 adds r3, r2, 0                                                            |     r3 = r2 + 0;
                                                                                         |     if (r3 == r2) {
    0x000274dc movne r3, 1                                                               |         r3 = 1;
                                                                                         |     }
    0x000274e0 cmp r1, 0                                                                 |     
                                                                                         |     if (r1 != 0) {
    0x000274e4 moveq r3, 0                                                               |         r3 = 0;
                                                                                         |     }
    0x000274e8 cmp r0, 0                                                                 |     
                                                                                         |     if (r0 != 0) {
    0x000274ec moveq r3, 0                                                               |         r3 = 0;
                                                                                         |     }
    0x000274f0 cmp r3, 0                                                                 |     
                                                                                         |     if (r3 == 0) {
    0x000274f4 beq 0x275b8                                                               |         goto label_0;
                                                                                         |     }
    0x000274f8 ldr r3, [r0]                                                              |     r3 = *(r0);
    0x000274fc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                                 |     
    0x00027500 ldr r3, [r3, 0x18]                                                        |     r3 = *((r3 + 0x18));
    0x00027504 sub sp, sp, 0x1c                                                          |     
    0x00027508 mov r7, sp                                                                |     r7 = sp;
    0x0002750c mov r6, r1                                                                |     r6 = r1;
    0x00027510 mov r1, r0                                                                |     r1 = r0;
    0x00027514 mov r0, r7                                                                |     r0 = r7;
    0x00027518 mov r5, r2                                                                |     r5 = r2;
    0x0002751c blx r3                                                                    |     uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00027520 ldm sp, {r3, r4}                                                          |     r3 = *(sp);
                                                                                         |     r4 = *((sp + 4));
    0x00027524 sub r4, r4, r3                                                            |     r4 -= r3;
    0x00027528 ldr r3, [pc, 0xb4]                                                        |     r3 = *(0x275e0);
    0x0002752c asr r4, r4, 3                                                             |     r4 >>= 3;
    0x00027530 mul r2, r3, r4                                                            |     r2 = r3 * r4;
    0x00027534 cmp r2, 0                                                                 |     
    0x00027538 str r2, [r5]                                                              |     *(r5) = r2;
    0x0002753c mov r4, r2                                                                |     r4 = r2;
                                                                                         |     if (r2 != 0) {
    0x00027540 streq r2, [r6]                                                            |         *(r6) = r2;
                                                                                         |     }
                                                                                         |     if (r2 == 0) {
    0x00027544 beq 0x275a4                                                               |         goto label_1;
                                                                                         |     }
    0x00027548 lsl r0, r2, 2                                                             |     r0 = r2 << 2;
    0x0002754c bl 0x1ae6c                                                                |     MQTTAsync_malloc ();
    0x00027550 mov r5, 0                                                                 |     r5 = 0;
    0x00027554 mov fp, 0x18                                                              |     
    0x00027558 str r0, [r6]                                                              |     *(r6) = r0;
                                                                                         |     do {
    0x0002755c mul sb, fp, r5                                                            |         sb = fp * r5;
    0x00027560 ldr r3, [sp]                                                              |         r3 = *(sp);
    0x00027564 add r3, r3, sb                                                            |         r3 += sb;
    0x00027568 ldr r8, [r3, 4]                                                           |         r8 = *((r3 + 4));
    0x0002756c add sl, r8, 1                                                             |         sl = r8 + 1;
    0x00027570 mov r0, sl                                                                |         r0 = sl;
    0x00027574 bl 0x1ae6c                                                                |         MQTTAsync_malloc ();
    0x00027578 ldr r1, [sp]                                                              |         r1 = *(sp);
    0x0002757c mov r2, sl                                                                |         r2 = sl;
    0x00027580 ldr r1, [r1, sb]                                                          |         r1 = *((r1 + sb));
    0x00027584 bl 0x1ac8c                                                                |         strncpy (r0, r1, r2);
    0x00027588 mov r2, 0                                                                 |         r2 = 0;
    0x0002758c strb r2, [r0, r8]                                                         |         *((r0 + r8)) = r2;
    0x00027590 ldr r2, [r6]                                                              |         r2 = *(r6);
    0x00027594 str r0, [r2, r5, lsl 2]                                                   |         offset_0 = r5 << 2;
                                                                                         |         *((r2 + offset_0)) = r0;
    0x00027598 add r5, r5, 1                                                             |         r5++;
    0x0002759c cmp r5, r4                                                                |         
    0x000275a0 bne 0x2755c                                                               |         
                                                                                         |     } while (r5 != r4);
                                                                                         | label_1:
    0x000275a4 mov r0, r7                                                                |     r0 = r7;
    0x000275a8 bl 0x1b148                                                                |     fcn_0001b148 ();
    0x000275ac mov r0, 0                                                                 |     r0 = 0;
    0x000275b0 add sp, sp, 0x1c                                                          |     
    0x000275b4 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                                  |     
                                                                                         | label_0:
    0x000275b8 mvn r0, 1                                                                 |     r0 = ~1;
    0x000275bc bx lr                                                                     |     return r0;
                                                                                         | }
    ; 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 @ 0x28c6c */
                                                                                         | #include <stdint.h>
                                                                                         |  
    ; (fcn) method.mqtt::ssl_options.on_error_char_const__unsigned_int__void_ ()         | uint32_t method_mqtt::ssl_options_on_error_char_const_unsigned_int_void_ (uint32_t arg1, int32_t arg2) {
                                                                                         |     int32_t var_0h;
                                                                                         |     int32_t var_8h;
                                                                                         |     int32_t var_1ch;
                                                                                         |     r0 = arg1;
                                                                                         |     r1 = arg2;
                                                                                         |     /* mqtt::ssl_options::on_error(char const*, unsigned int, void*) */
    0x00028c6c adds r3, r1, 0                                                            |     r3 = r1 + 0;
                                                                                         |     if (r3 == r1) {
    0x00028c70 movne r3, 1                                                               |         r3 = 1;
                                                                                         |     }
    0x00028c74 cmp r0, 0                                                                 |     
                                                                                         |     if (r0 != 0) {
    0x00028c78 moveq r3, 0                                                               |         r3 = 0;
                                                                                         |     }
    0x00028c7c cmp r2, 0                                                                 |     
                                                                                         |     if (r2 != 0) {
    0x00028c80 moveq r3, 0                                                               |         r3 = 0;
                                                                                         |     }
    0x00028c84 cmp r3, 0                                                                 |     
                                                                                         |     if (r3 == 0) {
    0x00028c88 beq 0x28cec                                                               |         goto label_0;
                                                                                         |     }
    0x00028c8c push {r4, r5, lr}                                                         |     
    0x00028c90 sub sp, sp, 0x1c                                                          |     
    0x00028c94 mov r4, r2                                                                |     r4 = r2;
    0x00028c98 mov r5, sp                                                                |     r5 = sp;
    0x00028c9c mov r2, r1                                                                |     r2 = r1;
    0x00028ca0 add r3, sp, 8                                                             |     r3 += var_8h;
    0x00028ca4 mov r1, r0                                                                |     r1 = r0;
    0x00028ca8 add r2, r0, r2                                                            |     r2 = r0 + r2;
    0x00028cac mov r0, r5                                                                |     r0 = r5;
    0x00028cb0 str r3, [sp]                                                              |     *(sp) = r3;
    0x00028cb4 bl 0x28be4                                                                |     fcn_00028be4 (r0, r1);
    0x00028cb8 ldr r3, [r4, 0xe0]                                                        |     r3 = *((r4 + 0xe0));
    0x00028cbc cmp r3, 0                                                                 |     
    0x00028cc0 bne 0x28cd8                                                               |     
                                                                                         |     while (1) {
    0x00028cc4 mov r0, r5                                                                |         r0 = r5;
    0x00028cc8 bl 0x1b610                                                                |         sym ();
    0x00028ccc mov r0, 0                                                                 |         r0 = 0;
    0x00028cd0 add sp, sp, 0x1c                                                          |         
    0x00028cd4 pop {r4, r5, pc}                                                          |         
    0x00028cd8 ldr r3, [r4, 0xe4]                                                        |         r3 = *((r4 + 0xe4));
    0x00028cdc mov r1, r5                                                                |         r1 = r5;
    0x00028ce0 add r0, r4, 0xd8                                                          |         r0 = r4 + 0xd8;
    0x00028ce4 blx r3                                                                    |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x00028ce8 b 0x28cc4                                                                 |         
                                                                                         |     }
                                                                                         | label_0:
    0x00028cec mvn r0, 0                                                                 |     r0 = ~0;
    0x00028cf0 bx lr                                                                     |     return r0;
                                                                                         | }
    ; 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 @ 0x28d18 */
                                                                                                                         | #include <stdint.h>
                                                                                                                         |  
    ; (fcn) method.mqtt::ssl_options.on_psk_char_const__char__unsigned_int__unsigned_char__unsigned_int__void_ ()        | void method_mqtt::ssl_options_on_psk_char_const_char_unsigned_int_unsigned_char_unsigned_int_void_ (int32_t arg_50h, int32_t arg_54h, uint32_t arg1, int32_t arg2) {
                                                                                                                         |     int32_t var_0h;
                                                                                                                         |     int32_t var_4h;
                                                                                                                         |     int32_t var_8h;
                                                                                                                         |     int32_t var_ch;
                                                                                                                         |     int32_t var_10h;
                                                                                                                         |     int32_t var_14h;
                                                                                                                         |     int32_t var_18h;
                                                                                                                         |     int32_t var_1ch;
                                                                                                                         |     int32_t var_20h;
                                                                                                                         |     int32_t var_34h;
                                                                                                                         |     r0 = arg1;
                                                                                                                         |     r1 = arg2;
                                                                                                                         |     /* mqtt::ssl_options::on_psk(char const*, char*, unsigned int, unsigned char*, unsigned int, void*) */
    0x00028d18 push {r4, r5, r6, r7, r8, sb, lr}                                                                         |     
    0x00028d1c sub sp, sp, 0x34                                                                                          |     
    0x00028d20 ldr r4, [sp, 0x54]                                                                                        |     r4 = *(arg_54h);
    0x00028d24 cmp r4, 0                                                                                                 |     
                                                                                                                         |     if (r4 == 0) {
    0x00028d28 beq 0x28dc4                                                                                               |         goto label_0;
                                                                                                                         |     }
    0x00028d2c mov r7, r3                                                                                                |     r7 = r3;
    0x00028d30 cmp r0, 0                                                                                                 |     
    0x00028d34 add r3, sp, 0x20                                                                                          |     r3 += var_20h;
    0x00028d38 mov r5, r0                                                                                                |     r5 = r0;
    0x00028d3c mov r8, r2                                                                                                |     r8 = r2;
    0x00028d40 mov sb, r1                                                                                                |     sb = r1;
    0x00028d44 add r6, sp, 0x18                                                                                          |     r6 += var_18h;
    0x00028d48 str r3, [sp, 0x18]                                                                                        |     var_18h = r3;
                                                                                                                         |     if (arg_50h != ) {
    0x00028d4c beq 0x28d68                                                                                               |         
    0x00028d50 bl 0x1acb0                                                                                                |         strlen (r0);
    0x00028d54 mov r1, r5                                                                                                |         r1 = r5;
    0x00028d58 add r2, r5, r0                                                                                            |         r2 = r5 + r0;
    0x00028d5c mov r0, r6                                                                                                |         r0 = r6;
    0x00028d60 bl 0x28be4                                                                                                |         fcn_00028be4 (r0, r1);
    0x00028d64 b 0x28d70                                                                                                 |         
                                                                                                                         |     } else {
    0x00028d68 str r0, [sp, 0x1c]                                                                                        |         var_1ch = r0;
    0x00028d6c strb r0, [sp, 0x20]                                                                                       |         var_20h = r0;
                                                                                                                         |     }
    0x00028d70 ldr r3, [r4, 0xf0]                                                                                        |     r3 = *((r4 + 0xf0));
    0x00028d74 cmp r3, 0                                                                                                 |     
                                                                                                                         |     if (r3 == 0) {
    0x00028d78 beq 0x28dd0                                                                                               |         goto label_1;
                                                                                                                         |     }
    0x00028d7c ldr r3, [sp, 0x50]                                                                                        |     r3 = *(arg_50h);
    0x00028d80 str sb, [sp, 8]                                                                                           |     var_8h = sb;
    0x00028d84 str r3, [sp, 0x14]                                                                                        |     var_14h = r3;
    0x00028d88 add r3, sp, 0x14                                                                                          |     r3 += var_14h;
    0x00028d8c str r3, [sp, 4]                                                                                           |     var_4h = r3;
    0x00028d90 add r3, sp, 0x10                                                                                          |     r3 += var_10h;
    0x00028d94 str r3, [sp]                                                                                              |     *(sp) = r3;
    0x00028d98 str r8, [sp, 0xc]                                                                                         |     var_ch = r8;
    0x00028d9c str r7, [sp, 0x10]                                                                                        |     var_10h = r7;
    0x00028da0 ldr r5, [r4, 0xf4]                                                                                        |     r5 = *((r4 + 0xf4));
    0x00028da4 add r3, sp, 0xc                                                                                           |     r3 += var_ch;
    0x00028da8 add r2, sp, 8                                                                                             |     r2 += var_8h;
    0x00028dac mov r1, r6                                                                                                |     r1 = r6;
    0x00028db0 add r0, r4, 0xe8                                                                                          |     r0 = r4 + 0xe8;
    0x00028db4 blx r5                                                                                                    |     r0 = uint32_t (*r5)(uint32_t, uint32_t, uint32_t, uint32_t) (r0, r1, r2, r3);
    0x00028db8 mov r4, r0                                                                                                |     r4 = r0;
                                                                                                                         |     do {
    0x00028dbc mov r0, r6                                                                                                |         r0 = r6;
    0x00028dc0 bl 0x1b610                                                                                                |         sym ();
                                                                                                                         | label_0:
    0x00028dc4 mov r0, r4                                                                                                |         r0 = r4;
    0x00028dc8 add sp, sp, 0x34                                                                                          |         
    0x00028dcc pop {r4, r5, r6, r7, r8, sb, pc}                                                                          |         
                                                                                                                         | label_1:
    0x00028dd0 mov r4, r3                                                                                                |         r4 = r3;
    0x00028dd4 b 0x28dbc                                                                                                 |         
                                                                                                                         |     } while (1);
                                                                                                                         | }
    ; 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 @ 0x2a20c */
                                                                                                             | #include <stdint.h>
                                                                                                             |  
    ; (fcn) method.mqtt::string_collection.string_collection_std::initializer_list_char_const__ ()           | void method_mqtt::string_collection_string_collection_std::initializer_list_char_const_ (int32_t arg1, int32_t arg2) {
                                                                                                             |     int32_t var_4h;
                                                                                                             |     int32_t var_8h;
                                                                                                             |     int32_t var_ch;
                                                                                                             |     int32_t var_14h;
                                                                                                             |     int32_t var_18h;
                                                                                                             |     int32_t var_1ch;
                                                                                                             |     int32_t var_20h;
                                                                                                             |     int32_t var_34h;
                                                                                                             |     r0 = arg1;
                                                                                                             |     r1 = arg2;
                                                                                                             |     /* mqtt::string_collection::string_collection(std::initializer_list<char const*>) */
    0x0002a20c push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                                                     |     
    0x0002a210 ldr fp, [pc, 0x1b8]                                                                           |     fp = *(0x2a3cc);
    0x0002a214 sub sp, sp, 0x34                                                                              |     
    0x0002a218 add r3, sp, 8                                                                                 |     r3 += var_8h;
    0x0002a21c stm r3, {r1, r2}                                                                              |     *(r3) = r1;
                                                                                                             |     *((r3 + 4)) = r2;
    0x0002a220 ldr sb, [sp, 0xc]                                                                             |     sb = var_ch;
    0x0002a224 mov r3, 0                                                                                     |     r3 = 0;
    0x0002a228 mov r4, r0                                                                                    |     r4 = r0;
    0x0002a22c mov r5, r1                                                                                    |     r5 = r1;
    0x0002a230 add sb, r1, sb, lsl 2                                                                         |     sb = r1 + (sb << 2);
    0x0002a234 add r8, sp, 0x18                                                                              |     r8 += var_18h;
    0x0002a238 add fp, pc, fp                                                                                |     
    0x0002a23c str r3, [r0]                                                                                  |     *(r0) = r3;
    0x0002a240 str r3, [r0, 4]                                                                               |     *((r0 + 4)) = r3;
    0x0002a244 str r3, [r0, 8]                                                                               |     *((r0 + 8)) = r3;
    0x0002a248 str r3, [r0, 0xc]                                                                             |     *((r0 + 0xc)) = r3;
    0x0002a24c str r3, [r0, 0x10]                                                                            |     *((r0 + 0x10)) = r3;
    0x0002a250 str r3, [r0, 0x14]                                                                            |     *((r0 + 0x14)) = r3;
                                                                                                             |     do {
    0x0002a254 cmp sb, r5                                                                                    |         
                                                                                                             |         if (sb == r5) {
    0x0002a258 beq 0x2a39c                                                                                   |             goto label_1;
                                                                                                             |         }
    0x0002a25c ldr r6, [r5], 4                                                                               |         r6 = *(r5);
                                                                                                             |         r5 += 4;
    0x0002a260 add r3, sp, 0x20                                                                              |         r3 += var_20h;
    0x0002a264 cmp r6, 0                                                                                     |         
    0x0002a268 str r3, [sp, 0x18]                                                                            |         var_18h = r3;
                                                                                                             |         if (r6 != 0) {
    0x0002a26c beq 0x2a29c                                                                                   |             
    0x0002a270 mov r0, r6                                                                                    |             r0 = r6;
    0x0002a274 bl 0x1acb0                                                                                    |             r0 = strlen (r0);
    0x0002a278 cmp r0, 0xf                                                                                   |             
    0x0002a27c add r7, r6, r0                                                                                |             r7 = r6 + r0;
    0x0002a280 str r0, [sp, 0x14]                                                                            |             var_14h = r0;
                                                                                                             |             if (r0 < 0xf) {
    0x0002a284 bls 0x2a2b8                                                                                   |                 goto label_2;
                                                                                                             |             }
    0x0002a288 mov r2, 0                                                                                     |             r2 = 0;
    0x0002a28c add r1, sp, 0x14                                                                              |             r1 += var_14h;
    0x0002a290 mov r0, r8                                                                                    |             r0 = r8;
    0x0002a294 bl 0x1b9f4                                                                                    |             sym ();
    0x0002a298 b 0x2a2ac                                                                                     |             
                                                                                                             |         } else {
    0x0002a29c ldr r0, [pc, 0x130]                                                                           |             r0 = *(0x2a3d0);
    0x0002a2a0 add r0, pc, r0                                                                                |             r0 = pc + r0;
    0x0002a2a4 bl 0x1b1a8                                                                                    |             sym ();
    0x0002a2a8 b 0x2a3b0                                                                                     |             goto label_3;
                                                                                                             |         }
    0x0002a2ac ldr r3, [sp, 0x14]                                                                            |         r3 = var_14h;
    0x0002a2b0 str r0, [sp, 0x18]                                                                            |         var_18h = r0;
    0x0002a2b4 str r3, [sp, 0x20]                                                                            |         var_20h = r3;
                                                                                                             | label_2:
    0x0002a2b8 mov r1, r6                                                                                    |         r1 = r6;
    0x0002a2bc mov r2, r7                                                                                    |         r2 = r7;
    0x0002a2c0 ldr r0, [sp, 0x18]                                                                            |         r0 = var_18h;
    0x0002a2c4 bl 0x1b484                                                                                    |         sym ();
    0x0002a2c8 ldr r3, [sp, 0x14]                                                                            |         r3 = var_14h;
    0x0002a2cc ldr r2, [sp, 0x18]                                                                            |         r2 = var_18h;
    0x0002a2d0 mov r1, 0                                                                                     |         r1 = 0;
    0x0002a2d4 str r3, [sp, 0x1c]                                                                            |         var_1ch = r3;
    0x0002a2d8 strb r1, [r2, r3]                                                                             |         *((r2 + r3)) = r1;
    0x0002a2dc ldr r6, [r4, 4]                                                                               |         r6 = *((r4 + 4));
    0x0002a2e0 ldr r3, [r4, 8]                                                                               |         r3 = *((r4 + 8));
    0x0002a2e4 cmp r6, r3                                                                                    |         
                                                                                                             |         if (r6 == r3) {
    0x0002a2e8 beq 0x2a318                                                                                   |             goto label_4;
                                                                                                             |         }
    0x0002a2ec cmp r6, r1                                                                                    |         
                                                                                                             |         if (r6 != r1) {
    0x0002a2f0 beq 0x2a300                                                                                   |             
    0x0002a2f4 mov r1, r8                                                                                    |             r1 = r8;
    0x0002a2f8 mov r0, r6                                                                                    |             r0 = r6;
    0x0002a2fc bl 0x1b0ac                                                                                    |             sym ();
                                                                                                             |         }
    0x0002a300 ldr r3, [r4, 4]                                                                               |         r3 = *((r4 + 4));
    0x0002a304 add r3, r3, 0x18                                                                              |         r3 += 0x18;
    0x0002a308 str r3, [r4, 4]                                                                               |         *((r4 + 4)) = r3;
                                                                                                             | label_0:
    0x0002a30c mov r0, r8                                                                                    |         r0 = r8;
    0x0002a310 bl 0x1b610                                                                                    |         sym ();
    0x0002a314 b 0x2a254                                                                                     |         
                                                                                                             |     } while (1);
                                                                                                             | label_4:
    0x0002a318 mov r2, fp                                                                                    |     r2 = fp;
    0x0002a31c mov r1, 1                                                                                     |     r1 = 1;
    0x0002a320 mov r0, r4                                                                                    |     r0 = r4;
    0x0002a324 bl 0x1b238                                                                                    |     fcn_0001b238 ();
    0x0002a328 ldr r7, [r4]                                                                                  |     r7 = *(r4);
    0x0002a32c str r0, [sp, 4]                                                                               |     var_4h = r0;
    0x0002a330 sub r7, r6, r7                                                                                |     r7 = r6 - r7;
    0x0002a334 bl 0x29cd0                                                                                    |     r0 = fcn_00029cd0 (r0);
    0x0002a338 mov sl, r0                                                                                    |     sl = r0;
    0x0002a33c adds r0, r0, r7                                                                               |     r0 += r7;
                                                                                                             |     if (r0 != r0) {
    0x0002a340 beq 0x2a34c                                                                                   |         
    0x0002a344 mov r1, r8                                                                                    |         r1 = r8;
    0x0002a348 bl 0x1b0ac                                                                                    |         sym ();
                                                                                                             |     }
    0x0002a34c mov r1, r6                                                                                    |     r1 = r6;
    0x0002a350 mov r2, sl                                                                                    |     r2 = sl;
    0x0002a354 ldr r0, [r4]                                                                                  |     r0 = *(r4);
    0x0002a358 bl 0x29cfc                                                                                    |     fcn_00029cfc (r0, r1);
    0x0002a35c ldr r1, [r4, 4]                                                                               |     r1 = *((r4 + 4));
    0x0002a360 add r2, r0, 0x18                                                                              |     r2 = r0 + 0x18;
    0x0002a364 mov r0, r6                                                                                    |     r0 = r6;
    0x0002a368 bl 0x29cfc                                                                                    |     r0 = fcn_00029cfc (r0, r1);
    0x0002a36c mov r6, r0                                                                                    |     r6 = r0;
    0x0002a370 ldm r4, {r0, r1}                                                                              |     r0 = *(r4);
                                                                                                             |     r1 = *((r4 + 4));
    0x0002a374 bl 0x1acc8                                                                                    |     fcn_0001acc8 ();
    0x0002a378 ldr r0, [r4]                                                                                  |     r0 = *(r4);
    0x0002a37c bl 0x29cc4                                                                                    |     fcn_00029cc4 (r0);
    0x0002a380 ldr r3, [sp, 4]                                                                               |     r3 = var_4h;
    0x0002a384 mov r2, 0x18                                                                                  |     r2 = 0x18;
    0x0002a388 mla r3, r2, r3, sl                                                                            |     __asm ("mla r3, r2, r3, sl");
    0x0002a38c str sl, [r4]                                                                                  |     *(r4) = sl;
    0x0002a390 str r6, [r4, 4]                                                                               |     *((r4 + 4)) = r6;
    0x0002a394 str r3, [r4, 8]                                                                               |     *((r4 + 8)) = r3;
    0x0002a398 b 0x2a30c                                                                                     |     goto label_0;
                                                                                                             | label_1:
    0x0002a39c mov r0, r4                                                                                    |     r0 = r4;
    0x0002a3a0 bl 0x1b544                                                                                    |     fcn_0001b544 ();
    0x0002a3a4 b 0x2a3c4                                                                                     |     goto label_5;
                                                                                                             | label_3:
    0x0002a3b0 add r0, r4, 0xc                                                                               |     r0 = r4 + 0xc;
    0x0002a3b4 bl 0x1ad04                                                                                    |     fcn_0001ad04 ();
    0x0002a3b8 mov r0, r4                                                                                    |     r0 = r4;
    0x0002a3bc bl 0x1b730                                                                                    |     fcn_0001b730 ();
    0x0002a3c0 bl 0x1b49c                                                                                    |     cxa_end_cleanup ();
                                                                                                             | label_5:
    0x0002a3c4 mov r0, r4                                                                                    |     r0 = r4;
    0x0002a3c8 add sp, sp, 0x34                                                                              |     
    0x0002a3cc pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                                                      |     
                                                                                                             | }
    ; 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 @ 0x2b4fc */
                                                                             | #include <stdint.h>
                                                                             |  
    ; (fcn) method.mqtt::token.on_success_MQTTAsync_successData_ ()          | void method_mqtt::token_on_success_MQTTAsync_successData_ (int32_t arg1, int32_t arg2) {
                                                                             |     int32_t var_0h;
                                                                             |     int32_t var_4h;
                                                                             |     int32_t var_ch;
                                                                             |     int32_t var_10h;
                                                                             |     int32_t var_18h;
                                                                             |     int32_t var_1ch;
                                                                             |     r0 = arg1;
                                                                             |     r1 = arg2;
                                                                             |     /* mqtt::token::on_success(MQTTAsync_successData*) */
    0x0002b4fc push {r4, r5, r6, r7, r8, sb, sl, fp, lr}                     |     
    0x0002b500 ldr r6, [pc, 0x244]                                           |     r6 = *(0x2b748);
    0x0002b504 sub sp, sp, 0x1c                                              |     
    0x0002b508 add r8, sp, 0x10                                              |     r8 += var_10h;
    0x0002b50c mov r4, r0                                                    |     r4 = r0;
    0x0002b510 mov r7, r1                                                    |     r7 = r1;
    0x0002b514 add r1, r0, 4                                                 |     r1 = r0 + 4;
    0x0002b518 mov r0, r8                                                    |     r0 = r8;
    0x0002b51c bl 0x1b1c0                                                    |     fcn_0001b1c0 ();
    0x0002b520 cmp r7, 0                                                     |     
    0x0002b524 add r6, pc, r6                                                |     r6 = pc + r6;
    0x0002b528 ldr sl, [r4, 0x88]                                            |     sl = *((r4 + 0x88));
                                                                             |     if (r7 == 0) {
    0x0002b52c beq 0x2b550                                                   |         goto label_0;
                                                                             |     }
    0x0002b530 ldr r3, [r7]                                                  |     r3 = *(r7);
    0x0002b534 str r3, [r4, 0x78]                                            |     *((r4 + 0x78)) = r3;
    0x0002b538 ldr r3, [r4, 0x50]                                            |     r3 = *((r4 + 0x50));
    0x0002b53c cmp r3, 1                                                     |     
                                                                             |     if (r3 == 1) {
    0x0002b540 beq 0x2b5ec                                                   |         goto label_1;
                                                                             |     }
                                                                             |     if (r3 <= 1) {
    0x0002b544 blo 0x2b56c                                                   |         goto label_2;
                                                                             |     }
    0x0002b548 cmp r3, 3                                                     |     
                                                                             |     if (r3 == 3) {
    0x0002b54c beq 0x2b6a8                                                   |         goto label_3;
                                                                             |     }
                                                                             |     do {
                                                                             | label_0:
    0x0002b550 mov r3, 0                                                     |         r3 = 0;
    0x0002b554 str r3, [r4, 0x58]                                            |         *((r4 + 0x58)) = r3;
    0x0002b558 mov r3, 1                                                     |         r3 = 1;
    0x0002b55c strb r3, [r4, 0x90]                                           |         *((r4 + 0x90)) = r3;
    0x0002b560 mov r0, r8                                                    |         r0 = r8;
    0x0002b564 bl 0x1abf0                                                    |         fcn_0001abf0 ();
    0x0002b568 b 0x2b6f8                                                     |         goto label_4;
                                                                             | label_2:
    0x0002b56c mov r0, 0x34                                                  |         r0 = 0x34;
    0x0002b570 add sb, r4, 0x94                                              |         sb = r4 + 0x94;
    0x0002b574 bl 0x1ac38                                                    |         r0 = sym ();
    0x0002b578 mov r5, r0                                                    |         r5 = r0;
    0x0002b57c mov r1, 0                                                     |         r1 = 0;
    0x0002b580 mov r2, 0x10                                                  |         r2 = 0x10;
    0x0002b584 add r0, r0, 4                                                 |         r0 += 4;
    0x0002b588 bl 0x1b2e0                                                    |         memset (r0, r1, r2);
    0x0002b58c ldr r3, [pc, 0x1bc]                                           |         r3 = "_5get_alpn_protosB5cxx11Ev";
    0x0002b590 mov r0, r5                                                    |         r0 = r5;
    0x0002b594 ldr r3, [r6, r3]                                              |         r3 = *((r6 + r3));
    0x0002b598 ldr r1, [r7, 4]                                               |         r1 = *((r7 + 4));
    0x0002b59c add r3, r3, 8                                                 |         r3 += 8;
    0x0002b5a0 str r3, [r0], 0x14                                            |         *(r0) = r3;
                                                                             |         r0 += 0x14;
    0x0002b5a4 bl 0x2aad4                                                    |         fcn_0002aad4 (r0, r1);
    0x0002b5a8 ldr r3, [r7, 8]                                               |         r3 = *((r7 + 8));
    0x0002b5ac mov r1, r5                                                    |         r1 = r5;
    0x0002b5b0 str r3, [r5, 0x2c]                                            |         *((r5 + 0x2c)) = r3;
    0x0002b5b4 ldr r3, [r7, 0xc]                                             |         r3 = *((r7 + 0xc));
    0x0002b5b8 mov r0, sb                                                    |         r0 = sb;
    0x0002b5bc adds r3, r3, 0                                                |         r3 += 0;
                                                                             |         if (r3 == r3) {
    0x0002b5c0 movne r3, 1                                                   |             r3 = 1;
                                                                             |         }
    0x0002b5c4 strb r3, [r5, 0x30]                                           |         *((r5 + 0x30)) = r3;
    0x0002b5c8 bl 0x1bc1c                                                    |         fcn_0001bc1c ();
    0x0002b5cc b 0x2b550                                                     |         
                                                                             |     } while (1);
                                                                             | label_1:
    0x0002b5ec add r3, r4, 0x98                                              |     r3 = r4 + 0x98;
    0x0002b5f0 mov r0, 0x20                                                  |     r0 = 0x20;
    0x0002b5f4 str r3, [sp]                                                  |     *(sp) = r3;
    0x0002b5f8 bl 0x1ac38                                                    |     r0 = sym ();
    0x0002b5fc mov r5, r0                                                    |     r5 = r0;
    0x0002b600 mov r2, 0x10                                                  |     r2 = 0x10;
    0x0002b604 mov r1, 0                                                     |     r1 = 0;
    0x0002b608 add r0, r0, 4                                                 |     r0 += 4;
    0x0002b60c ldr fp, [r4, 0x8c]                                            |     fp = *((r4 + 0x8c));
    0x0002b610 bl 0x1b2e0                                                    |     memset (r0, r1, r2);
    0x0002b614 ldr r3, [pc, 0x138]                                           |     r3 = *(0x2b750);
    0x0002b618 mov sb, r5                                                    |     sb = r5;
    0x0002b61c ldr r3, [r6, r3]                                              |     r3 = *((r6 + r3));
    0x0002b620 cmp fp, 1                                                     |     
    0x0002b624 mov r6, 0                                                     |     r6 = 0;
    0x0002b628 add r3, r3, 8                                                 |     r3 += 8;
    0x0002b62c str r3, [sb], 0x14                                            |     *(sb) = r3;
                                                                             |     sb += 0x14;
    0x0002b630 str r6, [r5, 0x14]                                            |     *((r5 + 0x14)) = r6;
    0x0002b634 str r6, [r5, 0x18]                                            |     *((r5 + 0x18)) = r6;
    0x0002b638 str r6, [r5, 0x1c]                                            |     *((r5 + 0x1c)) = r6;
    0x0002b63c ldr r3, [r7, 4]                                               |     r3 = *((r7 + 4));
                                                                             |     if (fp <= 1) {
    0x0002b640 bhi 0x2b658                                                   |         
    0x0002b644 add r1, sp, 0x18                                              |         r1 += var_18h;
    0x0002b648 str r3, [r1, -0xc]!                                           |         *((r1 -= 0xc)) = r3;
    0x0002b64c mov r0, sb                                                    |         r0 = sb;
    0x0002b650 bl 0x1b6e8                                                    |         fcn_0001b6e8 ();
    0x0002b654 b 0x2b68c                                                     |         goto label_5;
                                                                             |     }
    0x0002b658 cmp r3, 0                                                     |     
                                                                             |     if (r3 == 0) {
    0x0002b65c beq 0x2b68c                                                   |         goto label_5;
                                                                             |     }
    0x0002b660 add r3, sp, 0xc                                               |     r3 += var_ch;
    0x0002b664 str r3, [sp, 4]                                               |     var_4h = r3;
                                                                             |     do {
    0x0002b668 ldr r3, [r7, 4]                                               |         r3 = *((r7 + 4));
    0x0002b66c ldr r1, [sp, 4]                                               |         r1 = var_4h;
    0x0002b670 ldr r3, [r3, r6, lsl 2]                                       |         offset_0 = r6 << 2;
                                                                             |         r3 = *((r3 + offset_0));
    0x0002b674 mov r0, sb                                                    |         r0 = sb;
    0x0002b678 str r3, [sp, 0xc]                                             |         var_ch = r3;
    0x0002b67c bl 0x1b6e8                                                    |         fcn_0001b6e8 ();
    0x0002b680 add r6, r6, 1                                                 |         r6++;
    0x0002b684 cmp fp, r6                                                    |         
    0x0002b688 bne 0x2b668                                                   |         
                                                                             |     } while (fp != r6);
                                                                             | label_5:
    0x0002b68c mov r1, r5                                                    |     r1 = r5;
    0x0002b690 ldr r0, [sp]                                                  |     r0 = *(sp);
    0x0002b694 bl 0x1bb68                                                    |     fcn_0001bb68 ();
    0x0002b698 b 0x2b550                                                     |     goto label_0;
                                                                             | label_3:
    0x0002b6a8 mov r0, 0x20                                                  |     r0 = 0x20;
    0x0002b6ac add r7, r4, 0x9c                                              |     r7 = r4 + 0x9c;
    0x0002b6b0 bl 0x1ac38                                                    |     r0 = sym ();
    0x0002b6b4 mov r5, r0                                                    |     r5 = r0;
    0x0002b6b8 mov r2, 0x10                                                  |     r2 = 0x10;
    0x0002b6bc mov r1, 0                                                     |     r1 = 0;
    0x0002b6c0 add r0, r0, 4                                                 |     r0 += 4;
    0x0002b6c4 bl 0x1b2e0                                                    |     memset (r0, r1, r2);
    0x0002b6c8 ldr r3, [pc, 0x88]                                            |     r3 = *(0x2b754);
    0x0002b6cc mov r1, r5                                                    |     r1 = r5;
    0x0002b6d0 ldr r3, [r6, r3]                                              |     r3 = *((r6 + r3));
    0x0002b6d4 mov r0, r7                                                    |     r0 = r7;
    0x0002b6d8 add r3, r3, 8                                                 |     r3 += 8;
    0x0002b6dc str r3, [r5]                                                  |     *(r5) = r3;
    0x0002b6e0 mov r3, 0                                                     |     r3 = 0;
    0x0002b6e4 str r3, [r5, 0x14]                                            |     *((r5 + 0x14)) = r3;
    0x0002b6e8 str r3, [r5, 0x18]                                            |     *((r5 + 0x18)) = r3;
    0x0002b6ec str r3, [r5, 0x1c]                                            |     *((r5 + 0x1c)) = r3;
    0x0002b6f0 bl 0x1ac08                                                    |     fcn_0001ac08 ();
    0x0002b6f4 b 0x2b550                                                     |     goto label_0;
                                                                             | label_4:
    0x0002b6f8 cmp sl, 0                                                     |     
    0x0002b6fc bne 0x2b720                                                   |     
                                                                             |     while (1) {
    0x0002b700 add r0, r4, 0x20                                              |         r0 = r4 + 0x20;
    0x0002b704 bl 0x1b9c4                                                    |         sym ();
    0x0002b708 ldr r0, [r4, 0x54]                                            |         r0 = *((r4 + 0x54));
    0x0002b70c mov r1, r4                                                    |         r1 = r4;
    0x0002b710 ldr r3, [r0]                                                  |         r3 = *(r0);
    0x0002b714 ldr r3, [r3]                                                  |         r3 = *(r3);
    0x0002b718 blx r3                                                        |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0002b71c b 0x2b738                                                     |         goto label_6;
    0x0002b720 ldr r3, [sl]                                                  |         r3 = *(sl);
    0x0002b724 mov r1, r4                                                    |         r1 = r4;
    0x0002b728 ldr r3, [r3, 0xc]                                             |         r3 = *((r3 + 0xc));
    0x0002b72c mov r0, sl                                                    |         r0 = sl;
    0x0002b730 blx r3                                                        |         uint32_t (*r3)(uint32_t, uint32_t, uint32_t) (r0, r1, r3);
    0x0002b734 b 0x2b700                                                     |         
                                                                             |     }
                                                                             | label_6:
    0x0002b738 mov r0, r8                                                    |     r0 = r8;
    0x0002b73c bl 0x1af38                                                    |     fcn_0001af38 ();
    0x0002b740 add sp, sp, 0x1c                                              |     
    0x0002b744 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                      |     
                                                                             | }
    ; 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 @ 0x23958 */
                                                                                                                                                                                                                                         | #include <stdint.h>
                                                                                                                                                                                                                                         |  
    ; (fcn) method.std::_Sp_counted_deleter_mqtt::message__mqtt::client::ptr_mqtt.message__mqtt::message_const_::lambda_mqtt::message_1__std::allocator_void______gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ ()      | void method_std::_Sp_counted_deleter_mqtt::message_mqtt::client::ptr_mqtt_message_mqtt::message_const_::lambda_mqtt::message_1_std::allocator_void_gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                         |     int32_t var_4h;
                                                                                                                                                                                                                                         |     int32_t var_8h;
                                                                                                                                                                                                                                         |     r0 = arg1;
                                                                                                                                                                                                                                         |     r1 = arg2;
                                                                                                                                                                                                                                         |     /* std::_Sp_counted_deleter<qtt::message*, mqtt::client::ptr<qtt::message>(mqtt::message const&)::{lambda(mqtt::message*)#1}, std::allocator<void>, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x00023958 ldr r3, [pc, 0x30]                                                                                                                                                                                                        |     
    0x0002395c ldr r2, [pc, 0x30]                                                                                                                                                                                                        |     r2 = *(0x23990);
    0x00023960 add r3, pc, r3                                                                                                                                                                                                            |     r3 = pc + r3;
    0x00023964 push {r0, r1, r4, lr}                                                                                                                                                                                                     |     
    0x00023968 ldr r3, [r3, r2]                                                                                                                                                                                                          |     r3 = *(0x2398c);
    0x0002396c mov r4, r0                                                                                                                                                                                                                |     r4 = r0;
    0x00023970 mov r0, r1                                                                                                                                                                                                                |     r0 = r1;
    0x00023974 mov r1, r3                                                                                                                                                                                                                |     r1 = r3;
    0x00023978 str r3, [sp, 4]                                                                                                                                                                                                           |     var_4h = r3;
    0x0002397c bl 0x1b424                                                                                                                                                                                                                |     r0 = sym ();
    0x00023980 cmp r0, 0                                                                                                                                                                                                                 |     
                                                                                                                                                                                                                                         |     if (r0 == 0) {
    0x00023984 addne r0, r4, 0x24                                                                                                                                                                                                        |         r0 = r4 + 0x24;
                                                                                                                                                                                                                                         |     }
    0x00023988 add sp, sp, 8                                                                                                                                                                                                             |     
    0x0002398c pop {r4, pc}                                                                                                                                                                                                              |     
                                                                                                                                                                                                                                         | }
    ; 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 @ 0x20610 */
                                                                                                                                                                                     | #include <stdint.h>
                                                                                                                                                                                     |  
    ; (fcn) method.std::_Sp_counted_ptr_inplace_mqtt::delivery_token__std::allocator_mqtt.delivery_token______gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ ()      | void method_std::_Sp_counted_ptr_inplace_mqtt::delivery_token_std::allocator_mqtt_delivery_token_gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                     |     int32_t var_4h;
                                                                                                                                                                                     |     int32_t var_8h;
                                                                                                                                                                                     |     r0 = arg1;
                                                                                                                                                                                     |     r1 = arg2;
                                                                                                                                                                                     |     /* std::_Sp_counted_ptr_inplace<qtt::delivery_token, std::allocator<qtt::delivery_token>, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x00020610 ldr r3, [pc, 0x30]                                                                                                                                                    |     
    0x00020614 ldr r2, [pc, 0x30]                                                                                                                                                    |     r2 = *(0x20648);
    0x00020618 add r3, pc, r3                                                                                                                                                        |     r3 = pc + r3;
    0x0002061c push {r0, r1, r4, lr}                                                                                                                                                 |     
    0x00020620 ldr r3, [r3, r2]                                                                                                                                                      |     r3 = *(0x20644);
    0x00020624 mov r4, r0                                                                                                                                                            |     r4 = r0;
    0x00020628 mov r0, r1                                                                                                                                                            |     r0 = r1;
    0x0002062c mov r1, r3                                                                                                                                                            |     r1 = r3;
    0x00020630 str r3, [sp, 4]                                                                                                                                                       |     var_4h = r3;
    0x00020634 bl 0x1b424                                                                                                                                                            |     r0 = sym ();
    0x00020638 cmp r0, 0                                                                                                                                                             |     
                                                                                                                                                                                     |     if (r0 == 0) {
    0x0002063c addne r0, r4, 0x28                                                                                                                                                    |         r0 = r4 + 0x28;
                                                                                                                                                                                     |     }
    0x00020640 add sp, sp, 8                                                                                                                                                         |     
    0x00020644 pop {r4, pc}                                                                                                                                                          |     
                                                                                                                                                                                     | }
    ; 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 @ 0x205d0 */
                                                                                                                                                                         | #include <stdint.h>
                                                                                                                                                                         |  
    ; (fcn) method.std::_Sp_counted_ptr_inplace_mqtt::message__std::allocator_mqtt.message______gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ ()        | void method_std::_Sp_counted_ptr_inplace_mqtt::message_std::allocator_mqtt_message_gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                         |     int32_t var_4h;
                                                                                                                                                                         |     int32_t var_8h;
                                                                                                                                                                         |     r0 = arg1;
                                                                                                                                                                         |     r1 = arg2;
                                                                                                                                                                         |     /* std::_Sp_counted_ptr_inplace<qtt::message, std::allocator<qtt::message>, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x000205d0 ldr r3, [pc, 0x30]                                                                                                                                        |     
    0x000205d4 ldr r2, [pc, 0x30]                                                                                                                                        |     r2 = *(0x20608);
    0x000205d8 add r3, pc, r3                                                                                                                                            |     r3 = pc + r3;
    0x000205dc push {r0, r1, r4, lr}                                                                                                                                     |     
    0x000205e0 ldr r3, [r3, r2]                                                                                                                                          |     r3 = *(0x20604);
    0x000205e4 mov r4, r0                                                                                                                                                |     r4 = r0;
    0x000205e8 mov r0, r1                                                                                                                                                |     r0 = r1;
    0x000205ec mov r1, r3                                                                                                                                                |     r1 = r3;
    0x000205f0 str r3, [sp, 4]                                                                                                                                           |     var_4h = r3;
    0x000205f4 bl 0x1b424                                                                                                                                                |     r0 = sym ();
    0x000205f8 cmp r0, 0                                                                                                                                                 |     
                                                                                                                                                                         |     if (r0 == 0) {
    0x000205fc addne r0, r4, 0x24                                                                                                                                        |         r0 = r4 + 0x24;
                                                                                                                                                                         |     }
    0x00020600 add sp, sp, 8                                                                                                                                             |     
    0x00020604 pop {r4, pc}                                                                                                                                              |     
                                                                                                                                                                         | }
    ; 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 @ 0x20550 */
                                                                                                                                                                                             | #include <stdint.h>
                                                                                                                                                                                             |  
    ; (fcn) method.std::_Sp_counted_ptr_inplace_mqtt::string_collection__std::allocator_mqtt.string_collection______gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ ()        | void method_std::_Sp_counted_ptr_inplace_mqtt::string_collection_std::allocator_mqtt_string_collection_gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                             |     int32_t var_4h;
                                                                                                                                                                                             |     int32_t var_8h;
                                                                                                                                                                                             |     r0 = arg1;
                                                                                                                                                                                             |     r1 = arg2;
                                                                                                                                                                                             |     /* std::_Sp_counted_ptr_inplace<qtt::string_collection, std::allocator<qtt::string_collection>, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x00020550 ldr r3, [pc, 0x30]                                                                                                                                                            |     
    0x00020554 ldr r2, [pc, 0x30]                                                                                                                                                            |     r2 = *(0x20588);
    0x00020558 add r3, pc, r3                                                                                                                                                                |     r3 = pc + r3;
    0x0002055c push {r0, r1, r4, lr}                                                                                                                                                         |     
    0x00020560 ldr r3, [r3, r2]                                                                                                                                                              |     r3 = *(0x20584);
    0x00020564 mov r4, r0                                                                                                                                                                    |     r4 = r0;
    0x00020568 mov r0, r1                                                                                                                                                                    |     r0 = r1;
    0x0002056c mov r1, r3                                                                                                                                                                    |     r1 = r3;
    0x00020570 str r3, [sp, 4]                                                                                                                                                               |     var_4h = r3;
    0x00020574 bl 0x1b424                                                                                                                                                                    |     r0 = sym ();
    0x00020578 cmp r0, 0                                                                                                                                                                     |     
                                                                                                                                                                                             |     if (r0 == 0) {
    0x0002057c addne r0, r4, 0x24                                                                                                                                                            |         r0 = r4 + 0x24;
                                                                                                                                                                                             |     }
    0x00020580 add sp, sp, 8                                                                                                                                                                 |     
    0x00020584 pop {r4, pc}                                                                                                                                                                  |     
                                                                                                                                                                                             | }
    ; 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 @ 0x20590 */
                                                                                                                                                                     | #include <stdint.h>
                                                                                                                                                                     |  
    ; (fcn) method.std::_Sp_counted_ptr_inplace_mqtt::token__std::allocator_mqtt.token______gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ ()        | void method_std::_Sp_counted_ptr_inplace_mqtt::token_std::allocator_mqtt_token_gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                     |     int32_t var_4h;
                                                                                                                                                                     |     int32_t var_8h;
                                                                                                                                                                     |     r0 = arg1;
                                                                                                                                                                     |     r1 = arg2;
                                                                                                                                                                     |     /* std::_Sp_counted_ptr_inplace<qtt::token, std::allocator<qtt::token>, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x00020590 ldr r3, [pc, 0x30]                                                                                                                                    |     
    0x00020594 ldr r2, [pc, 0x30]                                                                                                                                    |     r2 = *(0x205c8);
    0x00020598 add r3, pc, r3                                                                                                                                        |     r3 = pc + r3;
    0x0002059c push {r0, r1, r4, lr}                                                                                                                                 |     
    0x000205a0 ldr r3, [r3, r2]                                                                                                                                      |     r3 = *(0x205c4);
    0x000205a4 mov r4, r0                                                                                                                                            |     r4 = r0;
    0x000205a8 mov r0, r1                                                                                                                                            |     r0 = r1;
    0x000205ac mov r1, r3                                                                                                                                            |     r1 = r3;
    0x000205b0 str r3, [sp, 4]                                                                                                                                       |     var_4h = r3;
    0x000205b4 bl 0x1b424                                                                                                                                            |     r0 = sym ();
    0x000205b8 cmp r0, 0                                                                                                                                             |     
                                                                                                                                                                     |     if (r0 == 0) {
    0x000205bc addne r0, r4, 0x28                                                                                                                                    |         r0 = r4 + 0x28;
                                                                                                                                                                     |     }
    0x000205c0 add sp, sp, 8                                                                                                                                         |     
    0x000205c4 pop {r4, pc}                                                                                                                                          |     
                                                                                                                                                                     | }
    ; 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 @ 0x20650 */
                                                                                                                                                                                                                                                                                     | #include <stdint.h>
                                                                                                                                                                                                                                                                                     |  
    ; (fcn) method.std::_Sp_counted_ptr_inplace_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std.allocator_char__________gnu_cxx::_Lock_policy_1_::_M_get_dele ()        | void method_std::_Sp_counted_ptr_inplace_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_std::allocator_std::_cxx11::basic_string_char_std::char_traits_char_std_allocator_char_gnu_cxx::_Lock_policy_1_::_M_get_dele (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                                                                     |     int32_t var_4h;
                                                                                                                                                                                                                                                                                     |     int32_t var_8h;
                                                                                                                                                                                                                                                                                     |     r0 = arg1;
                                                                                                                                                                                                                                                                                     |     r1 = arg2;
                                                                                                                                                                                                                                                                                     |     /* std::_Sp_counted_ptr_inplace<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x00020650 ldr r3, [pc, 0x30]                                                                                                                                                                                                                                                    |     
    0x00020654 ldr r2, [pc, 0x30]                                                                                                                                                                                                                                                    |     r2 = *(0x20688);
    0x00020658 add r3, pc, r3                                                                                                                                                                                                                                                        |     r3 = pc + r3;
    0x0002065c push {r0, r1, r4, lr}                                                                                                                                                                                                                                                 |     
    0x00020660 ldr r3, [r3, r2]                                                                                                                                                                                                                                                      |     r3 = *(0x20684);
    0x00020664 mov r4, r0                                                                                                                                                                                                                                                            |     r4 = r0;
    0x00020668 mov r0, r1                                                                                                                                                                                                                                                            |     r0 = r1;
    0x0002066c mov r1, r3                                                                                                                                                                                                                                                            |     r1 = r3;
    0x00020670 str r3, [sp, 4]                                                                                                                                                                                                                                                       |     var_4h = r3;
    0x00020674 bl 0x1b424                                                                                                                                                                                                                                                            |     r0 = sym ();
    0x00020678 cmp r0, 0                                                                                                                                                                                                                                                             |     
                                                                                                                                                                                                                                                                                     |     if (r0 == 0) {
    0x0002067c addne r0, r4, 0x24                                                                                                                                                                                                                                                    |         r0 = r4 + 0x24;
                                                                                                                                                                                                                                                                                     |     }
    0x00020680 add sp, sp, 8                                                                                                                                                                                                                                                         |     
    0x00020684 pop {r4, pc}                                                                                                                                                                                                                                                          |     
                                                                                                                                                                                                                                                                                     | }
    ; 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 @ 0x2bf30 */
                                                                                                                                                                                                                                                                             | #include <stdint.h>
                                                                                                                                                                                                                                                                             |  
    ; (fcn) method.void_std::vector_mqtt::ReasonCode__std::allocator_mqtt::ReasonCode___::_M_realloc_insert_mqtt.ReasonCode____gnu_cxx::__normal_iterator_mqtt::ReasonCode__std::vector_mqtt::ReasonCode__std::allocator_mqtt::ReasonCode_______mqtt::ReasonCode_ ()         | void method_void_std::vector_mqtt::ReasonCode_std::allocator_mqtt::ReasonCode_::_M_realloc_insert_mqtt_ReasonCode_gnu_cxx::_normal_iterator_mqtt::ReasonCode_std::vector_mqtt::ReasonCode_std::allocator_mqtt::ReasonCode_mqtt::ReasonCode_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                                                             |     r0 = arg1;
                                                                                                                                                                                                                                                                             |     r1 = arg2;
                                                                                                                                                                                                                                                                             |     /* void std::vector<qtt::ReasonCode, std::allocator<qtt::ReasonCode> >::_M_realloc_insert<qtt::ReasonCode>(__gnu_cxx::__normal_iterator<qtt::ReasonCode*, std::vector<qtt::ReasonCode, std::allocator<qtt::ReasonCode> > >, mqtt::ReasonCode&&) */
    0x0002bf30 push {r4, r5, r6, r7, r8, sb, sl, lr}                                                                                                                                                                                                                         |     
    0x0002bf34 ldr r8, [r0]                                                                                                                                                                                                                                                  |     r8 = *(r0);
    0x0002bf38 ldr r4, [r0, 4]                                                                                                                                                                                                                                               |     r4 = *((r0 + 4));
    0x0002bf3c mov r6, r0                                                                                                                                                                                                                                                    |     r6 = r0;
    0x0002bf40 sub r4, r4, r8                                                                                                                                                                                                                                                |     r4 -= r8;
    0x0002bf44 asrs r4, r4, 2                                                                                                                                                                                                                                                |     r4 >>= 2;
                                                                                                                                                                                                                                                                             |     if (? == ?) {
    0x0002bf48 movne r3, r4                                                                                                                                                                                                                                                  |         r3 = r4;
                                                                                                                                                                                                                                                                             |     }
                                                                                                                                                                                                                                                                             |     if (? != ?) {
    0x0002bf4c moveq r3, 1                                                                                                                                                                                                                                                   |         r3 = 1;
                                                                                                                                                                                                                                                                             |     }
    0x0002bf50 adds r4, r4, r3                                                                                                                                                                                                                                               |     r4 += r3;
    0x0002bf54 mov r7, r1                                                                                                                                                                                                                                                    |     r7 = r1;
    0x0002bf58 mov sb, r2                                                                                                                                                                                                                                                    |     sb = r2;
    0x0002bf5c sub r8, r1, r8                                                                                                                                                                                                                                                |     r8 = r1 - r8;
                                                                                                                                                                                                                                                                             |     if (r4 >= r4) {
    0x0002bf60 bhs 0x2bfec                                                                                                                                                                                                                                                   |         goto label_0;
                                                                                                                                                                                                                                                                             |     }
    0x0002bf64 cmn r4, 0xc0000001                                                                                                                                                                                                                                            |     
                                                                                                                                                                                                                                                                             |     if (r4 > 0xc0000001) {
    0x0002bf68 bhi 0x2bfec                                                                                                                                                                                                                                                   |         goto label_0;
                                                                                                                                                                                                                                                                             |     }
    0x0002bf6c cmp r4, 0                                                                                                                                                                                                                                                     |     
                                                                                                                                                                                                                                                                             |     if (r4 != 0) {
    0x0002bf70 bne 0x2bff0                                                                                                                                                                                                                                                   |         goto label_1;
                                                                                                                                                                                                                                                                             |     }
    0x0002bf74 mov r5, r4                                                                                                                                                                                                                                                    |     r5 = r4;
                                                                                                                                                                                                                                                                             |     do {
    0x0002bf78 cmn r5, r8                                                                                                                                                                                                                                                    |         
                                                                                                                                                                                                                                                                             |         if (r5 == r8) {
    0x0002bf7c ldrne r3, [sb]                                                                                                                                                                                                                                                |             r3 = *(sb);
                                                                                                                                                                                                                                                                             |         }
    0x0002bf80 ldr sb, [r6]                                                                                                                                                                                                                                                  |         sb = *(r6);
                                                                                                                                                                                                                                                                             |         if (r5 == r8) {
    0x0002bf84 strne r3, [r5, r8]                                                                                                                                                                                                                                            |             *((r5 + r8)) = r3;
                                                                                                                                                                                                                                                                             |         }
    0x0002bf88 cmp r7, sb                                                                                                                                                                                                                                                    |         
    0x0002bf8c sub r8, r7, sb                                                                                                                                                                                                                                                |         r8 = r7 - sb;
                                                                                                                                                                                                                                                                             |         if (r7 != sb) {
    0x0002bf90 beq 0x2bfa4                                                                                                                                                                                                                                                   |             
    0x0002bf94 mov r2, r8                                                                                                                                                                                                                                                    |             r2 = r8;
    0x0002bf98 mov r1, sb                                                                                                                                                                                                                                                    |             r1 = sb;
    0x0002bf9c mov r0, r5                                                                                                                                                                                                                                                    |             r0 = r5;
    0x0002bfa0 bl 0x1ad70                                                                                                                                                                                                                                                    |             memmove (r0, r1, r2);
                                                                                                                                                                                                                                                                             |         }
    0x0002bfa4 ldr r2, [r6, 4]                                                                                                                                                                                                                                               |         r2 = *((r6 + 4));
    0x0002bfa8 add r3, r8, 4                                                                                                                                                                                                                                                 |         r3 = r8 + 4;
    0x0002bfac cmp r7, r2                                                                                                                                                                                                                                                    |         
    0x0002bfb0 add r3, r5, r3                                                                                                                                                                                                                                                |         r3 = r5 + r3;
    0x0002bfb4 sub r8, r2, r7                                                                                                                                                                                                                                                |         r8 = r2 - r7;
                                                                                                                                                                                                                                                                             |         if (r7 != r2) {
    0x0002bfb8 beq 0x2bfd0                                                                                                                                                                                                                                                   |             
    0x0002bfbc mov r0, r3                                                                                                                                                                                                                                                    |             r0 = r3;
    0x0002bfc0 mov r2, r8                                                                                                                                                                                                                                                    |             r2 = r8;
    0x0002bfc4 mov r1, r7                                                                                                                                                                                                                                                    |             r1 = r7;
    0x0002bfc8 bl 0x1b64c                                                                                                                                                                                                                                                    |             r0 = memcpy (r0, r1, r2);
    0x0002bfcc mov r3, r0                                                                                                                                                                                                                                                    |             r3 = r0;
                                                                                                                                                                                                                                                                             |         }
    0x0002bfd0 add r8, r3, r8                                                                                                                                                                                                                                                |         r8 = r3 + r8;
    0x0002bfd4 mov r0, sb                                                                                                                                                                                                                                                    |         r0 = sb;
    0x0002bfd8 add r4, r5, r4, lsl 2                                                                                                                                                                                                                                         |         r4 = r5 + (r4 << 2);
    0x0002bfdc bl 0x2aac8                                                                                                                                                                                                                                                    |         fcn_0002aac8 (r0);
    0x0002bfe0 stm r6, {r5, r8}                                                                                                                                                                                                                                              |         *(r6) = r5;
                                                                                                                                                                                                                                                                             |         *((r6 + 4)) = r8;
    0x0002bfe4 str r4, [r6, 8]                                                                                                                                                                                                                                               |         *((r6 + 8)) = r4;
    0x0002bfe8 pop {r4, r5, r6, r7, r8, sb, sl, pc}                                                                                                                                                                                                                          |         
                                                                                                                                                                                                                                                                             | label_0:
    0x0002bfec mvn r4, 0xc0000000                                                                                                                                                                                                                                            |         r4 = ~0xc0000000;
                                                                                                                                                                                                                                                                             | label_1:
    0x0002bff0 lsl r0, r4, 2                                                                                                                                                                                                                                                 |         r0 = r4 << 2;
    0x0002bff4 bl 0x1ac38                                                                                                                                                                                                                                                    |         r0 = sym ();
    0x0002bff8 mov r5, r0                                                                                                                                                                                                                                                    |         r5 = r0;
    0x0002bffc b 0x2bf78                                                                                                                                                                                                                                                     |         
                                                                                                                                                                                                                                                                             |     } while (1);
                                                                                                                                                                                                                                                                             | }
    ; 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 @ 0x27818 */
                                                                                                                                                                                                                                                                                 | #include <stdint.h>
                                                                                                                                                                                                                                                                                 |  
    ; (fcn) method.void_std::vector_mqtt::buffer_view_char___std::allocator_mqtt::buffer_view_char_____::_M_realloc_insert_mqtt.buffer_view_char______gnu_cxx::__normal_iterator_mqtt::buffer_view_char___std::vector_mqtt::buffer_view_char___std::allocator_mqtt::buffe ()     | void method_void_std::vector_mqtt::buffer_view_char_std::allocator_mqtt::buffer_view_char_::_M_realloc_insert_mqtt_buffer_view_char_gnu_cxx::_normal_iterator_mqtt::buffer_view_char_std::vector_mqtt::buffer_view_char_std::allocator_mqtt::buffe (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                                                                 |     r0 = arg1;
                                                                                                                                                                                                                                                                                 |     r1 = arg2;
                                                                                                                                                                                                                                                                                 |     /* void std::vector<qtt::buffer_view<char>, std::allocator<qtt::buffer_view<char> > >::_M_realloc_insert<qtt::buffer_view<char> >(__gnu_cxx::__normal_iterator<qtt::buffer_view<char>*, std::vector<qtt::buffer_view<char>, std::allocator<qtt::buffer_view<char> > > >, mqtt::buffer_view<char>&&) */
    0x00027818 push {r4, r5, r6, r7, r8, sb, sl, lr}                                                                                                                                                                                                                             |     
    0x0002781c ldr r6, [r0]                                                                                                                                                                                                                                                      |     r6 = *(r0);
    0x00027820 ldr r4, [r0, 4]                                                                                                                                                                                                                                                   |     r4 = *((r0 + 4));
    0x00027824 mov r7, r0                                                                                                                                                                                                                                                        |     r7 = r0;
    0x00027828 sub r4, r4, r6                                                                                                                                                                                                                                                    |     r4 -= r6;
    0x0002782c asrs r4, r4, 3                                                                                                                                                                                                                                                    |     r4 >>= 3;
                                                                                                                                                                                                                                                                                 |     if (? == ?) {
    0x00027830 movne r3, r4                                                                                                                                                                                                                                                      |         r3 = r4;
                                                                                                                                                                                                                                                                                 |     }
                                                                                                                                                                                                                                                                                 |     if (? != ?) {
    0x00027834 moveq r3, 1                                                                                                                                                                                                                                                       |         r3 = 1;
                                                                                                                                                                                                                                                                                 |     }
    0x00027838 adds r4, r4, r3                                                                                                                                                                                                                                                   |     r4 += r3;
    0x0002783c mov r8, r1                                                                                                                                                                                                                                                        |     r8 = r1;
    0x00027840 mov sb, r2                                                                                                                                                                                                                                                        |     sb = r2;
    0x00027844 sub r6, r1, r6                                                                                                                                                                                                                                                    |     r6 = r1 - r6;
                                                                                                                                                                                                                                                                                 |     if (r4 >= r4) {
    0x00027848 bhs 0x278f8                                                                                                                                                                                                                                                       |         goto label_1;
                                                                                                                                                                                                                                                                                 |     }
    0x0002784c cmn r4, 0xe0000001                                                                                                                                                                                                                                                |     
                                                                                                                                                                                                                                                                                 |     if (r4 > 0xe0000001) {
    0x00027850 bhi 0x278f8                                                                                                                                                                                                                                                       |         goto label_1;
                                                                                                                                                                                                                                                                                 |     }
    0x00027854 cmp r4, 0                                                                                                                                                                                                                                                         |     
                                                                                                                                                                                                                                                                                 |     if (r4 != 0) {
    0x00027858 bne 0x278fc                                                                                                                                                                                                                                                       |         goto label_2;
                                                                                                                                                                                                                                                                                 |     }
    0x0002785c mov r5, r4                                                                                                                                                                                                                                                        |     r5 = r4;
                                                                                                                                                                                                                                                                                 | label_0:
    0x00027860 adds r6, r5, r6                                                                                                                                                                                                                                                   |     r6 = r5 + r6;
    0x00027864 ldr lr, [r7]                                                                                                                                                                                                                                                      |     
                                                                                                                                                                                                                                                                                 |     if (r6 == r5) {
    0x00027868 ldmne sb, {r0, r1}                                                                                                                                                                                                                                                |         r0 = *(sb);
                                                                                                                                                                                                                                                                                 |         r1 = *((sb + 4));
                                                                                                                                                                                                                                                                                 |     }
    0x0002786c mov r3, lr                                                                                                                                                                                                                                                        |     r3 = lr;
    0x00027870 mov r2, r5                                                                                                                                                                                                                                                        |     r2 = r5;
    0x00027874 stmne r6, {r0, r1}                                                                                                                                                                                                                                                |     *(r6) = r0;
                                                                                                                                                                                                                                                                                 |     *((r6 + 4)) = r1;
                                                                                                                                                                                                                                                                                 |     while (1) {
    0x00027878 cmp r8, r3                                                                                                                                                                                                                                                        |         
                                                                                                                                                                                                                                                                                 |         if (r8 == r3) {
    0x0002787c beq 0x27898                                                                                                                                                                                                                                                       |             goto label_3;
                                                                                                                                                                                                                                                                                 |         }
    0x00027880 cmp r2, 0                                                                                                                                                                                                                                                         |         
                                                                                                                                                                                                                                                                                 |         if (r2 == 0) {
    0x00027884 ldmne r3, {r0, r1}                                                                                                                                                                                                                                                |             r0 = *(r3);
                                                                                                                                                                                                                                                                                 |             r1 = *((r3 + 4));
                                                                                                                                                                                                                                                                                 |         }
    0x00027888 add r3, r3, 8                                                                                                                                                                                                                                                     |         r3 += 8;
                                                                                                                                                                                                                                                                                 |         if (r2 == 0) {
    0x0002788c stmne r2, {r0, r1}                                                                                                                                                                                                                                                |             *(r2) = r0;
                                                                                                                                                                                                                                                                                 |             *((r2 + 4)) = r1;
                                                                                                                                                                                                                                                                                 |         }
    0x00027890 add r2, r2, 8                                                                                                                                                                                                                                                     |         r2 += 8;
    0x00027894 b 0x27878                                                                                                                                                                                                                                                         |         
                                                                                                                                                                                                                                                                                 |     }
                                                                                                                                                                                                                                                                                 | label_3:
    0x00027898 sub r3, r8, lr                                                                                                                                                                                                                                                    |     r3 = r8 - lr;
    0x0002789c add r3, r3, 8                                                                                                                                                                                                                                                     |     r3 += 8;
    0x000278a0 ldr r6, [r7, 4]                                                                                                                                                                                                                                                   |     r6 = *((r7 + 4));
    0x000278a4 add r3, r5, r3                                                                                                                                                                                                                                                    |     r3 = r5 + r3;
    0x000278a8 mov r2, r8                                                                                                                                                                                                                                                        |     r2 = r8;
    0x000278ac mov ip, r3                                                                                                                                                                                                                                                        |     
                                                                                                                                                                                                                                                                                 |     do {
    0x000278b0 cmp r6, r2                                                                                                                                                                                                                                                        |         
                                                                                                                                                                                                                                                                                 |         if (r6 == r2) {
    0x000278b4 beq 0x278d0                                                                                                                                                                                                                                                       |             goto label_4;
                                                                                                                                                                                                                                                                                 |         }
    0x000278b8 cmp ip, 0                                                                                                                                                                                                                                                         |         
                                                                                                                                                                                                                                                                                 |         if (ip == 0) {
    0x000278bc ldmne r2, {r0, r1}                                                                                                                                                                                                                                                |             r0 = *(r2);
                                                                                                                                                                                                                                                                                 |             r1 = *((r2 + 4));
                                                                                                                                                                                                                                                                                 |         }
    0x000278c0 add r2, r2, 8                                                                                                                                                                                                                                                     |         r2 += 8;
                                                                                                                                                                                                                                                                                 |         if (ip == 0) {
    0x000278c4 stmne ip, {r0, r1}                                                                                                                                                                                                                                                |             *(ip) = r0;
                                                                                                                                                                                                                                                                                 |             *((ip + 4)) = r1;
                                                                                                                                                                                                                                                                                 |         }
    0x000278c8 add ip, ip, 8                                                                                                                                                                                                                                                     |         
    0x000278cc b 0x278b0                                                                                                                                                                                                                                                         |         
                                                                                                                                                                                                                                                                                 |     } while (1);
                                                                                                                                                                                                                                                                                 | label_4:
    0x000278d0 sub r8, r6, r8                                                                                                                                                                                                                                                    |     r8 = r6 - r8;
    0x000278d4 cmp lr, 0                                                                                                                                                                                                                                                         |     
    0x000278d8 add r8, r3, r8                                                                                                                                                                                                                                                    |     r8 = r3 + r8;
                                                                                                                                                                                                                                                                                 |     if (lr != 0) {
    0x000278dc beq 0x278e8                                                                                                                                                                                                                                                       |         
    0x000278e0 mov r0, lr                                                                                                                                                                                                                                                        |         r0 = lr;
    0x000278e4 bl 0x1b37c                                                                                                                                                                                                                                                        |         sym ();
                                                                                                                                                                                                                                                                                 |     }
    0x000278e8 add r4, r5, r4, lsl 3                                                                                                                                                                                                                                             |     r4 = r5 + (r4 << 3);
    0x000278ec stm r7, {r5, r8}                                                                                                                                                                                                                                                  |     *(r7) = r5;
                                                                                                                                                                                                                                                                                 |     *((r7 + 4)) = r8;
    0x000278f0 str r4, [r7, 8]                                                                                                                                                                                                                                                   |     *((r7 + 8)) = r4;
    0x000278f4 pop {r4, r5, r6, r7, r8, sb, sl, pc}                                                                                                                                                                                                                              |     
                                                                                                                                                                                                                                                                                 | label_1:
    0x000278f8 mvn r4, 0xe0000000                                                                                                                                                                                                                                                |     r4 = ~0xe0000000;
                                                                                                                                                                                                                                                                                 | label_2:
    0x000278fc lsl r0, r4, 3                                                                                                                                                                                                                                                     |     r0 = r4 << 3;
    0x00027900 bl 0x1ac38                                                                                                                                                                                                                                                        |     r0 = sym ();
    0x00027904 mov r5, r0                                                                                                                                                                                                                                                        |     r5 = r0;
    0x00027908 b 0x27860                                                                                                                                                                                                                                                         |     goto label_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 @ 0x29b34 */
                                                                                                                                                                                                                                                                                     | #include <stdint.h>
                                                                                                                                                                                                                                                                                     |  
                                                                                                                                                                                                                                                                                     | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                                                                                                                                                                                                                                                     |  
    ; (fcn) method.void_std::vector_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_____std::allocator_std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_______::_M_realloc_insert_std::__cxx11::basic_string_char ()        | void method_void_std::vector_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_std::allocator_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_::_M_realloc_insert_std::_cxx11::basic_string_char (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                                                                     |     int32_t var_0h;
                                                                                                                                                                                                                                                                                     |     int32_t var_4h;
                                                                                                                                                                                                                                                                                     |     int32_t var_ch;
                                                                                                                                                                                                                                                                                     |     r0 = arg1;
                                                                                                                                                                                                                                                                                     |     r1 = arg2;
                                                                                                                                                                                                                                                                                     |     /* void std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >::_M_realloc_insert<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >(__gnu_cxx::__normal_iterator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&&) */
    0x00029b34 push {r0, r1, r2, r4, r5, r6, r7, r8, sb, sl, fp, lr}                                                                                                                                                                                                                 |     
    0x00029b38 ldr r7, [r0]                                                                                                                                                                                                                                                          |     r7 = *(r0);
    0x00029b3c ldr r4, [r0, 4]                                                                                                                                                                                                                                                       |     r4 = *((r0 + 4));
    0x00029b40 ldr r3, [pc, 0x170]                                                                                                                                                                                                                                                   |     r3 = *(0x29cb4);
    0x00029b44 sub r4, r4, r7                                                                                                                                                                                                                                                        |     r4 -= r7;
    0x00029b48 asr r4, r4, 3                                                                                                                                                                                                                                                         |     r4 >>= 3;
    0x00029b4c mov sb, r2                                                                                                                                                                                                                                                            |     sb = r2;
    0x00029b50 muls r2, r3, r4                                                                                                                                                                                                                                                       |     r2 = r3 * r4;
    0x00029b54 mov r6, r0                                                                                                                                                                                                                                                            |     r6 = r0;
                                                                                                                                                                                                                                                                                     |     if (r2 == r3) {
    0x00029b58 movne r3, r2                                                                                                                                                                                                                                                          |         r3 = r2;
                                                                                                                                                                                                                                                                                     |     }
                                                                                                                                                                                                                                                                                     |     if (r2 != r3) {
    0x00029b5c moveq r3, 1                                                                                                                                                                                                                                                           |         r3 = 1;
                                                                                                                                                                                                                                                                                     |     }
    0x00029b60 adds r4, r2, r3                                                                                                                                                                                                                                                       |     r4 = r2 + r3;
    0x00029b64 mov r5, r1                                                                                                                                                                                                                                                            |     r5 = r1;
    0x00029b68 str r4, [sp]                                                                                                                                                                                                                                                          |     *(sp) = r4;
    0x00029b6c sub r7, r1, r7                                                                                                                                                                                                                                                        |     r7 = r1 - r7;
    0x00029b70 ldr r3, [pc, 0x144]                                                                                                                                                                                                                                                   |     r3 = *(0x29cb8);
                                                                                                                                                                                                                                                                                     |     if (r4 >= r2) {
    0x00029b74 bhs 0x29c9c                                                                                                                                                                                                                                                           |         goto label_1;
                                                                                                                                                                                                                                                                                     |     }
    0x00029b78 cmp r4, r3                                                                                                                                                                                                                                                            |     
                                                                                                                                                                                                                                                                                     |     if (r4 > r3) {
    0x00029b7c bhi 0x29c9c                                                                                                                                                                                                                                                           |         goto label_1;
                                                                                                                                                                                                                                                                                     |     }
    0x00029b80 cmp r4, 0                                                                                                                                                                                                                                                             |     
                                                                                                                                                                                                                                                                                     |     if (r4 != 0) {
    0x00029b84 bne 0x29ca0                                                                                                                                                                                                                                                           |         goto label_2;
                                                                                                                                                                                                                                                                                     |     }
    0x00029b88 mov r8, r4                                                                                                                                                                                                                                                            |     r8 = r4;
                                                                                                                                                                                                                                                                                     | label_0:
    0x00029b8c adds r0, r8, r7                                                                                                                                                                                                                                                       |     r0 = r8 + r7;
                                                                                                                                                                                                                                                                                     |     if (r0 != r8) {
    0x00029b90 beq 0x29b9c                                                                                                                                                                                                                                                           |         
    0x00029b94 mov r1, sb                                                                                                                                                                                                                                                            |         r1 = sb;
    0x00029b98 bl 0x1b0ac                                                                                                                                                                                                                                                            |         sym ();
                                                                                                                                                                                                                                                                                     |     }
    0x00029b9c ldr sb, [r6]                                                                                                                                                                                                                                                          |     sb = *(r6);
    0x00029ba0 mov r7, r8                                                                                                                                                                                                                                                            |     r7 = r8;
    0x00029ba4 mov sl, sb                                                                                                                                                                                                                                                            |     sl = sb;
                                                                                                                                                                                                                                                                                     |     do {
    0x00029ba8 cmp r5, sl                                                                                                                                                                                                                                                            |         
                                                                                                                                                                                                                                                                                     |         if (r5 == sl) {
    0x00029bac beq 0x29bd0                                                                                                                                                                                                                                                           |             goto label_3;
                                                                                                                                                                                                                                                                                     |         }
    0x00029bb0 cmp r7, 0                                                                                                                                                                                                                                                             |         
                                                                                                                                                                                                                                                                                     |         if (r7 != 0) {
    0x00029bb4 beq 0x29bc4                                                                                                                                                                                                                                                           |             
    0x00029bb8 mov r1, sl                                                                                                                                                                                                                                                            |             r1 = sl;
    0x00029bbc mov r0, r7                                                                                                                                                                                                                                                            |             r0 = r7;
    0x00029bc0 bl 0x1b0ac                                                                                                                                                                                                                                                            |             sym ();
                                                                                                                                                                                                                                                                                     |         }
    0x00029bc4 add sl, sl, 0x18                                                                                                                                                                                                                                                      |         sl += 0x18;
    0x00029bc8 add r7, r7, 0x18                                                                                                                                                                                                                                                      |         r7 += 0x18;
    0x00029bcc b 0x29ba8                                                                                                                                                                                                                                                             |         
                                                                                                                                                                                                                                                                                     |     } while (1);
                                                                                                                                                                                                                                                                                     | label_3:
    0x00029bd0 ldr r2, [pc, 0xe8]                                                                                                                                                                                                                                                    |     r2 = *(0x29cbc);
    0x00029bd4 sub r3, r5, sb                                                                                                                                                                                                                                                        |     r3 = r5 - sb;
    0x00029bd8 lsr r1, r3, 3                                                                                                                                                                                                                                                         |     r1 = r3 >> 3;
    0x00029bdc mul r3, r2, r1                                                                                                                                                                                                                                                        |     r3 = r2 * r1;
    0x00029be0 mov r5, 0x18                                                                                                                                                                                                                                                          |     r5 = 0x18;
    0x00029be4 bic r3, r3, 0xe0000000                                                                                                                                                                                                                                                |     r3 = BIT_MASK (r3, 0xe0000000);
    0x00029be8 mul r1, r5, r3                                                                                                                                                                                                                                                        |     r1 = r5 * r3;
    0x00029bec ldr r7, [r6, 4]                                                                                                                                                                                                                                                       |     r7 = *((r6 + 4));
    0x00029bf0 add r3, r1, r5                                                                                                                                                                                                                                                        |     r3 = r1 + r5;
    0x00029bf4 add r4, r8, r3                                                                                                                                                                                                                                                        |     r4 = r8 + r3;
    0x00029bf8 add sb, sb, r1                                                                                                                                                                                                                                                        |     sb += r1;
    0x00029bfc mov r3, sb                                                                                                                                                                                                                                                            |     r3 = sb;
    0x00029c00 mov sl, r4                                                                                                                                                                                                                                                            |     sl = r4;
    0x00029c04 mov fp, r2                                                                                                                                                                                                                                                            |     
                                                                                                                                                                                                                                                                                     |     do {
    0x00029c08 cmp r7, r3                                                                                                                                                                                                                                                            |         
                                                                                                                                                                                                                                                                                     |         if (r7 == r3) {
    0x00029c0c beq 0x29c38                                                                                                                                                                                                                                                           |             goto label_4;
                                                                                                                                                                                                                                                                                     |         }
    0x00029c10 cmp sl, 0                                                                                                                                                                                                                                                             |         
                                                                                                                                                                                                                                                                                     |         if (sl != 0) {
    0x00029c14 beq 0x29c2c                                                                                                                                                                                                                                                           |             
    0x00029c18 mov r1, r3                                                                                                                                                                                                                                                            |             r1 = r3;
    0x00029c1c mov r0, sl                                                                                                                                                                                                                                                            |             r0 = sl;
    0x00029c20 str r3, [sp, 4]                                                                                                                                                                                                                                                       |             var_4h = r3;
    0x00029c24 bl 0x1b0ac                                                                                                                                                                                                                                                            |             sym ();
    0x00029c28 ldr r3, [sp, 4]                                                                                                                                                                                                                                                       |             r3 = var_4h;
                                                                                                                                                                                                                                                                                     |         }
    0x00029c2c add r3, r3, 0x18                                                                                                                                                                                                                                                      |         r3 += 0x18;
    0x00029c30 add sl, sl, 0x18                                                                                                                                                                                                                                                      |         sl += 0x18;
    0x00029c34 b 0x29c08                                                                                                                                                                                                                                                             |         
                                                                                                                                                                                                                                                                                     |     } while (1);
                                                                                                                                                                                                                                                                                     | label_4:
    0x00029c38 sub r7, r7, sb                                                                                                                                                                                                                                                        |     r7 -= sb;
    0x00029c3c lsr r3, r7, 3                                                                                                                                                                                                                                                         |     r3 = r7 >> 3;
    0x00029c40 mul r7, fp, r3                                                                                                                                                                                                                                                        |     r7 = fp * r3;
    0x00029c44 mov r3, 0x18                                                                                                                                                                                                                                                          |     r3 = 0x18;
    0x00029c48 bic r7, r7, 0xe0000000                                                                                                                                                                                                                                                |     r7 = BIT_MASK (r7, 0xe0000000);
    0x00029c4c mla r5, r3, r7, r4                                                                                                                                                                                                                                                    |     __asm ("mla r5, r3, r7, r4");
    0x00029c50 ldm r6, {r7, sb}                                                                                                                                                                                                                                                      |     r7 = *(r6);
                                                                                                                                                                                                                                                                                     |     sb = *((r6 + 4));
                                                                                                                                                                                                                                                                                     |     do {
    0x00029c54 cmp sb, r7                                                                                                                                                                                                                                                            |         
                                                                                                                                                                                                                                                                                     |         if (sb == r7) {
    0x00029c58 beq 0x29c6c                                                                                                                                                                                                                                                           |             goto label_5;
                                                                                                                                                                                                                                                                                     |         }
    0x00029c5c mov r0, r7                                                                                                                                                                                                                                                            |         r0 = r7;
    0x00029c60 bl 0x1b610                                                                                                                                                                                                                                                            |         sym ();
    0x00029c64 add r7, r7, 0x18                                                                                                                                                                                                                                                      |         r7 += 0x18;
    0x00029c68 b 0x29c54                                                                                                                                                                                                                                                             |         
                                                                                                                                                                                                                                                                                     |     } while (1);
                                                                                                                                                                                                                                                                                     | label_5:
    0x00029c6c ldr r0, [r6]                                                                                                                                                                                                                                                          |     r0 = *(r6);
    0x00029c70 cmp r0, 0                                                                                                                                                                                                                                                             |     
                                                                                                                                                                                                                                                                                     |     if (r0 != 0) {
    0x00029c74 beq 0x29c7c                                                                                                                                                                                                                                                           |         
    0x00029c78 bl 0x1b37c                                                                                                                                                                                                                                                            |         sym ();
                                                                                                                                                                                                                                                                                     |     }
    0x00029c7c ldr r4, [sp]                                                                                                                                                                                                                                                          |     r4 = *(sp);
    0x00029c80 mov r3, 0x18                                                                                                                                                                                                                                                          |     r3 = 0x18;
    0x00029c84 mla r4, r3, r4, r8                                                                                                                                                                                                                                                    |     __asm ("mla r4, r3, r4, r8");
    0x00029c88 str r8, [r6]                                                                                                                                                                                                                                                          |     *(r6) = r8;
    0x00029c8c str r5, [r6, 4]                                                                                                                                                                                                                                                       |     *((r6 + 4)) = r5;
    0x00029c90 str r4, [r6, 8]                                                                                                                                                                                                                                                       |     *((r6 + 8)) = r4;
    0x00029c94 add sp, sp, 0xc                                                                                                                                                                                                                                                       |     
    0x00029c98 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}                                                                                                                                                                                                                              |     
                                                                                                                                                                                                                                                                                     | label_1:
    0x00029c9c str r3, [sp]                                                                                                                                                                                                                                                          |     *(sp) = r3;
                                                                                                                                                                                                                                                                                     | label_2:
    0x00029ca0 ldr r0, [sp]                                                                                                                                                                                                                                                          |     r0 = *(sp);
    0x00029ca4 mov r3, 0x18                                                                                                                                                                                                                                                          |     r3 = 0x18;
    0x00029ca8 mul r0, r3, r0                                                                                                                                                                                                                                                        |     r0 = r3 * r0;
    0x00029cac bl 0x1ac38                                                                                                                                                                                                                                                            |     r0 = sym ();
    0x00029cb0 mov r8, r0                                                                                                                                                                                                                                                            |     r8 = r0;
    0x00029cb4 b 0x29b8c                                                                                                                                                                                                                                                             |     goto label_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 @ 0x23818 */
                                                                                                                                                         | #include <stdint.h>
                                                                                                                                                         |  
    ; (fcn) sym._ZNSt23_Sp_counted_ptr_inplaceINSt13__future_base17_Async_state_implINSt6thread8_InvokerISt5tupleIJMN4mqtt8callbackEFvRKNSt7__ ()        | void ZNSt23_Sp_counted_ptr_inplaceINSt13_future_base17_Async_state_implINSt6thread8_InvokerISt5tupleIJMN4mqtt8callbackEFvRKNSt7_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                         |     int32_t var_4h;
                                                                                                                                                         |     int32_t var_8h;
                                                                                                                                                         |     r0 = arg1;
                                                                                                                                                         |     r1 = arg2;
    0x00023818 ldr r3, [pc, 0x30]                                                                                                                        |     
    0x0002381c ldr r2, [pc, 0x30]                                                                                                                        |     r2 = *(0x23850);
    0x00023820 add r3, pc, r3                                                                                                                            |     r3 = pc + r3;
    0x00023824 push {r0, r1, r4, lr}                                                                                                                     |     
    0x00023828 ldr r3, [r3, r2]                                                                                                                          |     r3 = *(0x2384c);
    0x0002382c mov r4, r0                                                                                                                                |     r4 = r0;
    0x00023830 mov r0, r1                                                                                                                                |     r0 = r1;
    0x00023834 mov r1, r3                                                                                                                                |     r1 = r3;
    0x00023838 str r3, [sp, 4]                                                                                                                           |     var_4h = r3;
    0x0002383c bl 0x1b424                                                                                                                                |     r0 = sym ();
    0x00023840 cmp r0, 0                                                                                                                                 |     
                                                                                                                                                         |     if (r0 == 0) {
    0x00023844 addne r0, r4, 0x28                                                                                                                        |         r0 = r4 + 0x28;
                                                                                                                                                         |     }
    0x00023848 add sp, sp, 8                                                                                                                             |     
    0x0002384c pop {r4, pc}                                                                                                                              |     
                                                                                                                                                         | }
    ; 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 @ 0x23898 */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | #include <stdint.h>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |  
    ; (fcn) sym.std::_Sp_counted_ptr_inplace_std::__future_base::_Async_state_impl_std::thread::_Invoker_std::tuple_void__mqtt::callback::__std::shared_ptr_mqtt::delivery_token____mqtt::callback__std::shared_ptr_mqtt::delivery_token_______void___std::allocator_std::__future_base::_Async_state_impl_std::thread::_Invoker_std::tuple_void__mqtt::callback::__std::shared_ptr_mqtt::delivery_token____mqtt::callback__std::shared_ptr_mqtt::delivery_token_______void________gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ ()     | void std::_Sp_counted_ptr_inplace_std::_future_base::_Async_state_impl_std::thread::_Invoker_std::tuple_void_mqtt::callback::_std::shared_ptr_mqtt::delivery_token_mqtt::callback_std::shared_ptr_mqtt::delivery_token_void_std::allocator_std::_future_base::_Async_state_impl_std::thread::_Invoker_std::tuple_void_mqtt::callback::_std::shared_ptr_mqtt::delivery_token_mqtt::callback_std::shared_ptr_mqtt::delivery_token_void_gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     int32_t var_4h;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     int32_t var_8h;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     r0 = arg1;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     r1 = arg2;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     /* std::_Sp_counted_ptr_inplace<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (mqtt::callback::*)(std::shared_ptr<qtt::delivery_token>), mqtt::callback*, std::shared_ptr<qtt::delivery_token> > >, void>, std::allocator<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<void (mqtt::callback::*)(std::shared_ptr<qtt::delivery_token>), mqtt::callback*, std::shared_ptr<qtt::delivery_token> > >, void> >, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x00023898 ldr r3, [pc, 0x30]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |     
    0x0002389c ldr r2, [pc, 0x30]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |     r2 = *(0x238d0);
    0x000238a0 add r3, pc, r3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     r3 = pc + r3;
    0x000238a4 push {r0, r1, r4, lr}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     
    0x000238a8 ldr r3, [r3, r2]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |     r3 = *(0x238cc);
    0x000238ac mov r4, r0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |     r4 = r0;
    0x000238b0 mov r0, r1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |     r0 = r1;
    0x000238b4 mov r1, r3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |     r1 = r3;
    0x000238b8 str r3, [sp, 4]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |     var_4h = r3;
    0x000238bc bl 0x1b424                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |     r0 = sym ();
    0x000238c0 cmp r0, 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     if (r0 == 0) {
    0x000238c4 addne r0, r4, 0x28                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |         r0 = r4 + 0x28;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     }
    0x000238c8 add sp, sp, 8                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |     
    0x000238cc pop {r4, pc}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | }
    ; 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 @ 0x23858 */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | #include <stdint.h>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |  
    ; (fcn) sym.std::_Sp_counted_ptr_inplace_std::__future_base::_Deferred_state_std::thread::_Invoker_std::tuple_void__mqtt::callback::__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const___mqtt::callback__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_________void___std::allocator_std::__future_base::_Deferred_state_std::thread::_Invoker_std::tuple_void__mqtt::callback::__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char____const___mqtt::callback__std::__cxx11::basic_string_char__std::char_traits_char___std::allocator_char_________void________gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ ()     | void std::_Sp_counted_ptr_inplace_std::_future_base::_Deferred_state_std::thread::_Invoker_std::tuple_void_mqtt::callback::_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_const_mqtt::callback_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_void_std::allocator_std::_future_base::_Deferred_state_std::thread::_Invoker_std::tuple_void_mqtt::callback::_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_const_mqtt::callback_std::_cxx11::basic_string_char_std::char_traits_char_std::allocator_char_void_gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     int32_t var_4h;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     int32_t var_8h;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     r0 = arg1;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     r1 = arg2;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     /* std::_Sp_counted_ptr_inplace<std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<void (mqtt::callback::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), mqtt::callback*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, void>, std::allocator<std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<void (mqtt::callback::*)(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&), mqtt::callback*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, void> >, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x00023858 ldr r3, [pc, 0x30]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |     
    0x0002385c ldr r2, [pc, 0x30]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |     r2 = *(0x23890);
    0x00023860 add r3, pc, r3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     r3 = pc + r3;
    0x00023864 push {r0, r1, r4, lr}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     
    0x00023868 ldr r3, [r3, r2]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |     r3 = *(0x2388c);
    0x0002386c mov r4, r0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |     r4 = r0;
    0x00023870 mov r0, r1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |     r0 = r1;
    0x00023874 mov r1, r3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |     r1 = r3;
    0x00023878 str r3, [sp, 4]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |     var_4h = r3;
    0x0002387c bl 0x1b424                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |     r0 = sym ();
    0x00023880 cmp r0, 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     if (r0 == 0) {
    0x00023884 addne r0, r4, 0x28                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |         r0 = r4 + 0x28;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     }
    0x00023888 add sp, sp, 8                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |     
    0x0002388c pop {r4, pc}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | }
    ; 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 @ 0x238d8 */
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | #include <stdint.h>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |  
    ; (fcn) sym.std::_Sp_counted_ptr_inplace_std::__future_base::_Deferred_state_std::thread::_Invoker_std::tuple_void__mqtt::callback::__std::shared_ptr_mqtt::delivery_token____mqtt::callback__std::shared_ptr_mqtt::delivery_token_______void___std::allocator_std::__future_base::_Deferred_state_std::thread::_Invoker_std::tuple_void__mqtt::callback::__std::shared_ptr_mqtt::delivery_token____mqtt::callback__std::shared_ptr_mqtt::delivery_token_______void________gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ ()     | void std::_Sp_counted_ptr_inplace_std::_future_base::_Deferred_state_std::thread::_Invoker_std::tuple_void_mqtt::callback::_std::shared_ptr_mqtt::delivery_token_mqtt::callback_std::shared_ptr_mqtt::delivery_token_void_std::allocator_std::_future_base::_Deferred_state_std::thread::_Invoker_std::tuple_void_mqtt::callback::_std::shared_ptr_mqtt::delivery_token_mqtt::callback_std::shared_ptr_mqtt::delivery_token_void_gnu_cxx::_Lock_policy_1_::_M_get_deleter_std::type_info_const_ (int32_t arg1, int32_t arg2) {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     int32_t var_4h;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     int32_t var_8h;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     r0 = arg1;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     r1 = arg2;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     /* std::_Sp_counted_ptr_inplace<std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<void (mqtt::callback::*)(std::shared_ptr<qtt::delivery_token>), mqtt::callback*, std::shared_ptr<qtt::delivery_token> > >, void>, std::allocator<std::__future_base::_Deferred_state<std::thread::_Invoker<std::tuple<void (mqtt::callback::*)(std::shared_ptr<qtt::delivery_token>), mqtt::callback*, std::shared_ptr<qtt::delivery_token> > >, void> >, (__gnu_cxx::_Lock_policy)1>::_M_get_deleter(std::type_info const&) */
    0x000238d8 ldr r3, [pc, 0x30]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |     
    0x000238dc ldr r2, [pc, 0x30]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |     r2 = *(0x23910);
    0x000238e0 add r3, pc, r3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |     r3 = pc + r3;
    0x000238e4 push {r0, r1, r4, lr}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |     
    0x000238e8 ldr r3, [r3, r2]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |     r3 = *(0x2390c);
    0x000238ec mov r4, r0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     r4 = r0;
    0x000238f0 mov r0, r1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     r0 = r1;
    0x000238f4 mov r1, r3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     r1 = r3;
    0x000238f8 str r3, [sp, 4]                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |     var_4h = r3;
    0x000238fc bl 0x1b424                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |     r0 = sym ();
    0x00023900 cmp r0, 0                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     if (r0 == 0) {
    0x00023904 addne r0, r4, 0x28                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |         r0 = r4 + 0x28;
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |     }
    0x00023908 add sp, sp, 8                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |     
    0x0002390c pop {r4, pc}                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |     
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | }

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