[*] Binary protection state of libwolfssl.so.24.5.1

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


[*] Function printf tear down of libwolfssl.so.24.5.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/libwolfssl.so.24.5.1 @ 0x93bc */
                                     | #include <stdint.h>
                                     |  
    ; (fcn) entry.fini0 ()           | void entry_fini0 () {
    0x000093bc ldr r3, [pc, 0x68]    |     r3 = *(0x9428);
    0x000093c0 push {r4, lr}         |     
    0x000093c4 ldr r4, [pc, 0x64]    |     r4 = *(0x942c);
    0x000093c8 add r3, pc, r3        |     r3 = pc + r3;
    0x000093cc ldrb r3, [r3]         |     r3 = *(r3);
    0x000093d0 add r4, pc, r4        |     r4 = pc + r4;
    0x000093d4 cmp r3, 0             |     
    0x000093d8 popne {r4, pc}        |     
    0x000093dc ldr r3, [pc, 0x50]    |     r3 = *(0x9430);
    0x000093e0 ldr r3, [r4, r3]      |     r3 = *(0x942c);
    0x000093e4 cmp r3, 0             |     
                                     |     if (r3 != 0) {
    0x000093e8 beq 0x93f8            |         
    0x000093ec ldr r3, [pc, 0x44]    |         r3 = *(0x9434);
    0x000093f0 ldr r0, [pc, r3]      |         r0 = *(0x000093f8);
    0x000093f4 bl 0x87b0             |         cxa_finalize ();
                                     |     }
    0x000093f8 bl 0x9300             |     entry0 ();
    0x000093fc ldr r3, [pc, 0x38]    |     r3 = *(0x9438);
    0x00009400 ldr r3, [r4, r3]      |     r3 = *((r4 + r3));
    0x00009404 cmp r3, 0             |     
                                     |     if (r3 != 0) {
    0x00009408 beq 0x9418            |         
    0x0000940c ldr r0, [pc, 0x2c]    |         r0 = *(0x943c);
    0x00009410 add r0, pc, r0        |         r0 = pc + r0;
    0x00009414 bl 0x8aa4             |         loc_imp_deregister_frame_info ();
                                     |     }
    0x00009418 ldr r3, [pc, 0x24]    |     r3 = *(0x9440);
    0x0000941c mov r2, 1             |     r2 = 1;
    0x00009420 add r3, pc, r3        |     r3 = pc + r3;
    0x00009424 strb r2, [r3]         |     *(r3) = r2;
    0x00009428 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/libwolfssl.so.24.5.1 @ 0x20ba0 */
                                                             | #include <stdint.h>
                                                             |  
                                                             | #define BIT_MASK(t,v) ((t)(-((v)!= 0)))&(((t)-1)>>((sizeof(t)*CHAR_BIT)-(v)))
                                                             |  
    ; (fcn) fcn.00020ba0 ()                                  | void fcn_00020ba0 (int32_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_24h;
                                                             |     int32_t var_28h;
                                                             |     int32_t var_2ch;
                                                             |     int32_t var_30h;
                                                             |     int32_t var_30h_2;
                                                             |     int32_t var_38h;
                                                             |     int32_t var_38h_2;
                                                             |     int32_t var_40h;
                                                             |     int32_t var_40h_2;
                                                             |     int32_t var_48h;
                                                             |     int32_t var_48h_2;
                                                             |     int32_t var_54h;
                                                             |     r0 = arg1;
                                                             |     r1 = arg2;
    0x00020ba0 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}     |     
    0x00020ba4 ldrb r3, [r0, 0x4c]                           |     r3 = *((r0 + 0x4c));
    0x00020ba8 sub sp, sp, 0x54                              |     
    0x00020bac cmp r3, 0                                     |     
                                                             |     if (r3 == 0) {
    0x00020bb0 movne r3, 0                                   |         r3 = 0;
                                                             |     }
                                                             |     if (r3 != 0) {
    0x00020bb4 moveq r3, 0x1000000                           |         r3 = 0x1000000;
                                                             |     }
    0x00020bb8 str r3, [sp, 0x28]                            |     var_28h = r3;
    0x00020bbc ldr r3, [r0, 8]                               |     r3 = *((r0 + 8));
    0x00020bc0 ldm r0, {sl, fp}                              |     sl = *(r0);
                                                             |     fp = *((r0 + 4));
    0x00020bc4 ldr r8, [r0, 0x14]                            |     r8 = *((r0 + 0x14));
    0x00020bc8 str r3, [sp, 4]                               |     var_4h = r3;
    0x00020bcc ldr r3, [r0, 0xc]                             |     r3 = *((r0 + 0xc));
    0x00020bd0 ldr sb, [r0, 0x18]                            |     sb = *((r0 + 0x18));
    0x00020bd4 str r3, [sp, 0xc]                             |     var_ch = r3;
    0x00020bd8 ldr r3, [r0, 0x10]                            |     r3 = *((r0 + 0x10));
    0x00020bdc ldr r7, [r0, 0x1c]                            |     r7 = *((r0 + 0x1c));
    0x00020be0 str r3, [sp, 0x1c]                            |     var_1ch = r3;
    0x00020be4 add r3, fp, fp, lsl 2                         |     r3 = fp + (fp << 2);
    0x00020be8 str r3, [sp, 0x2c]                            |     var_2ch = r3;
    0x00020bec ldr r3, [sp, 4]                               |     r3 = var_4h;
    0x00020bf0 ldr r5, [r0, 0x20]                            |     r5 = *((r0 + 0x20));
    0x00020bf4 add r3, r3, r3, lsl 2                         |     r3 += (r3 << 2);
    0x00020bf8 str r3, [sp, 0x20]                            |     var_20h = r3;
    0x00020bfc ldr r3, [sp, 0xc]                             |     r3 = var_ch;
    0x00020c00 ldr r6, [r0, 0x24]                            |     r6 = *((r0 + 0x24));
    0x00020c04 add r3, r3, r3, lsl 2                         |     r3 += (r3 << 2);
    0x00020c08 str r3, [sp, 0x18]                            |     var_18h = r3;
    0x00020c0c ldr r3, [sp, 0x1c]                            |     r3 = var_1ch;
    0x00020c10 mov r4, r0                                    |     r4 = r0;
    0x00020c14 add r3, r3, r3, lsl 2                         |     r3 += (r3 << 2);
    0x00020c18 str r3, [sp, 8]                               |     var_8h = r3;
    0x00020c1c add r3, r1, r2                                |     r3 = r1 + r2;
    0x00020c20 str r1, [sp]                                  |     *(sp) = r1;
    0x00020c24 str r3, [sp, 0x24]                            |     var_24h = r3;
                                                             |     do {
    0x00020c28 ldr r3, [sp, 0x24]                            |         r3 = var_24h;
    0x00020c2c ldr r2, [sp]                                  |         r2 = *(sp);
    0x00020c30 sub r3, r3, r2                                |         r3 -= r2;
    0x00020c34 cmp r3, 0xf                                   |         
                                                             |         if (r3 <= 0xf) {
    0x00020c38 bhi 0x20c58                                   |             
    0x00020c3c str r8, [r4, 0x14]                            |             *((r4 + 0x14)) = r8;
    0x00020c40 str sb, [r4, 0x18]                            |             *((r4 + 0x18)) = sb;
    0x00020c44 str r7, [r4, 0x1c]                            |             *((r4 + 0x1c)) = r7;
    0x00020c48 str r5, [r4, 0x20]                            |             *((r4 + 0x20)) = r5;
    0x00020c4c str r6, [r4, 0x24]                            |             *((r4 + 0x24)) = r6;
    0x00020c50 add sp, sp, 0x54                              |             
    0x00020c54 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}      |             
                                                             |         }
    0x00020c58 ldr r0, [sp]                                  |         r0 = *(sp);
    0x00020c5c bl 0x20b80                                    |         fcn_00020b80 (r0);
    0x00020c60 ldr r3, [sp]                                  |         r3 = *(sp);
    0x00020c64 bic r0, r0, 0xfc000000                        |         r0 = BIT_MASK (r0, 0xfc000000);
    0x00020c68 add r8, r0, r8                                |         r8 = r0 + r8;
    0x00020c6c add r0, r3, 3                                 |         r0 = r3 + 3;
    0x00020c70 bl 0x20b80                                    |         fcn_00020b80 (r0);
    0x00020c74 ldr r3, [sp]                                  |         r3 = *(sp);
    0x00020c78 lsl r0, r0, 4                                 |         r0 <<= 4;
    0x00020c7c add sb, sb, r0, lsr 6                         |         sb += (r0 >> 6);
    0x00020c80 add r0, r3, 6                                 |         r0 = r3 + 6;
    0x00020c84 bl 0x20b80                                    |         fcn_00020b80 (r0);
    0x00020c88 ldr r3, [sp]                                  |         r3 = *(sp);
    0x00020c8c lsl r0, r0, 2                                 |         r0 <<= 2;
    0x00020c90 add r7, r7, r0, lsr 6                         |         r7 += (r0 >> 6);
    0x00020c94 add r0, r3, 9                                 |         r0 = r3 + 9;
    0x00020c98 bl 0x20b80                                    |         fcn_00020b80 (r0);
    0x00020c9c ldr r3, [sp]                                  |         r3 = *(sp);
    0x00020ca0 add r5, r5, r0, lsr 6                         |         r5 += (r0 >> 6);
    0x00020ca4 add r0, r3, 0xc                               |         r0 = r3 + 0xc;
    0x00020ca8 bl 0x20b80                                    |         fcn_00020b80 (r0);
    0x00020cac ldr r3, [sp, 0x28]                            |         r3 = var_28h;
    0x00020cb0 orr r0, r3, r0, lsr 8                         |         r0 = r3 | (r0 >> 8);
    0x00020cb4 ldr r3, [sp, 0x20]                            |         r3 = var_20h;
    0x00020cb8 add r6, r0, r6                                |         r6 = r0 + r6;
    0x00020cbc umull r0, r1, r5, r3                          |         r0:r1 = r5 * r3;
    0x00020cc0 mov r2, r0                                    |         r2 = r0;
    0x00020cc4 mov r3, r1                                    |         r3 = r1;
    0x00020cc8 umlal r2, r3, sl, r8                          |         __asm ("umlal r2, r3, sl, r8");
    0x00020ccc ldr r0, [sp, 8]                               |         r0 = var_8h;
    0x00020cd0 umlal r2, r3, r0, sb                          |         __asm ("umlal r2, r3, r0, sb");
    0x00020cd4 ldr r0, [sp, 0x18]                            |         r0 = var_18h;
    0x00020cd8 umlal r2, r3, r0, r7                          |         __asm ("umlal r2, r3, r0, r7");
    0x00020cdc ldr r0, [sp, 0x2c]                            |         r0 = var_2ch;
    0x00020ce0 umlal r2, r3, r0, r6                          |         __asm ("umlal r2, r3, r0, r6");
    0x00020ce4 strd r2, r3, [sp, 0x10]                       |         __asm ("strd r2, r3, [var_10h]");
    0x00020ce8 ldr r3, [sp, 0x18]                            |         r3 = var_18h;
    0x00020cec umull r0, r1, r5, r3                          |         r0:r1 = r5 * r3;
    0x00020cf0 mov r2, r0                                    |         r2 = r0;
    0x00020cf4 mov r3, r1                                    |         r3 = r1;
    0x00020cf8 umlal r2, r3, fp, r8                          |         __asm ("umlal r2, r3, fp, r8");
    0x00020cfc ldr r0, [sp, 8]                               |         r0 = var_8h;
    0x00020d00 umlal r2, r3, sb, sl                          |         __asm ("umlal r2, r3, sb, sl");
    0x00020d04 umlal r2, r3, r7, r0                          |         __asm ("umlal r2, r3, r7, r0");
    0x00020d08 ldr r0, [sp, 0x20]                            |         r0 = var_20h;
    0x00020d0c umlal r2, r3, r6, r0                          |         __asm ("umlal r2, r3, r6, r0");
    0x00020d10 strd r2, r3, [sp, 0x30]                       |         __asm ("strd r2, r3, [var_30h]");
    0x00020d14 ldr r3, [sp, 8]                               |         r3 = var_8h;
    0x00020d18 umull r0, r1, r3, r5                          |         r0:r1 = r3 * r5;
    0x00020d1c mov r2, r0                                    |         r2 = r0;
    0x00020d20 ldr r0, [sp, 4]                               |         r0 = var_4h;
    0x00020d24 mov r3, r1                                    |         r3 = r1;
    0x00020d28 umlal r2, r3, r0, r8                          |         __asm ("umlal r2, r3, r0, r8");
    0x00020d2c ldr r0, [sp, 0x18]                            |         r0 = var_18h;
    0x00020d30 umlal r2, r3, fp, sb                          |         __asm ("umlal r2, r3, fp, sb");
    0x00020d34 umlal r2, r3, r7, sl                          |         __asm ("umlal r2, r3, r7, sl");
    0x00020d38 umlal r2, r3, r6, r0                          |         __asm ("umlal r2, r3, r6, r0");
    0x00020d3c ldr r0, [sp, 0xc]                             |         r0 = var_ch;
    0x00020d40 strd r2, r3, [sp, 0x38]                       |         __asm ("strd r2, r3, [var_38h]");
    0x00020d44 umull r2, r3, sl, r5                          |         r2:r3 = sl * r5;
    0x00020d48 umlal r2, r3, r0, r8                          |         __asm ("umlal r2, r3, r0, r8");
    0x00020d4c ldr r0, [sp, 4]                               |         r0 = var_4h;
    0x00020d50 umlal r2, r3, r0, sb                          |         __asm ("umlal r2, r3, r0, sb");
    0x00020d54 ldr r0, [sp, 8]                               |         r0 = var_8h;
    0x00020d58 umlal r2, r3, fp, r7                          |         __asm ("umlal r2, r3, fp, r7");
    0x00020d5c umlal r2, r3, r6, r0                          |         __asm ("umlal r2, r3, r6, r0");
    0x00020d60 ldr r0, [sp, 0x1c]                            |         r0 = var_1ch;
    0x00020d64 strd r2, r3, [sp, 0x40]                       |         __asm ("strd r2, r3, [var_40h]");
    0x00020d68 umull r2, r3, r5, fp                          |         r2:r3 = r5 * fp;
    0x00020d6c umlal r2, r3, r0, r8                          |         __asm ("umlal r2, r3, r0, r8");
    0x00020d70 ldr r0, [sp, 0xc]                             |         r0 = var_ch;
    0x00020d74 umlal r2, r3, r0, sb                          |         __asm ("umlal r2, r3, r0, sb");
    0x00020d78 ldr r0, [sp, 4]                               |         r0 = var_4h;
    0x00020d7c umlal r2, r3, r0, r7                          |         __asm ("umlal r2, r3, r0, r7");
    0x00020d80 umlal r2, r3, r6, sl                          |         __asm ("umlal r2, r3, r6, sl");
    0x00020d84 strd r2, r3, [sp, 0x48]                       |         __asm ("strd r2, r3, [var_48h]");
    0x00020d88 ldr r3, [sp, 0x10]                            |         r3 = var_10h;
    0x00020d8c ldrd r8, sb, [sp, 0x40]                       |         __asm ("ldrd r8, sb, [var_40h]");
    0x00020d90 bic ip, r3, 0xfc000000                        |         ip = BIT_MASK (r3, 0xfc000000);
    0x00020d94 lsr r0, r3, 0x1a                              |         r0 = r3 >> 0x1a;
    0x00020d98 ldr r3, [sp, 0x14]                            |         r3 = var_14h;
    0x00020d9c orr r0, r0, r3, lsl 6                         |         r0 |= (r3 << 6);
    0x00020da0 ldrd r2, r3, [sp, 0x30]                       |         __asm ("ldrd r2, r3, [var_30h]");
    0x00020da4 adds r2, r2, r0                               |         r2 += r0;
    0x00020da8 adc r3, r3, 0                                 |         __asm ("adc r3, r3, 0");
    0x00020dac lsr lr, r2, 0x1a                              |         lr = r2 >> 0x1a;
    0x00020db0 orr lr, lr, r3, lsl 6                         |         lr |= (r3 << 6);
    0x00020db4 bic r0, r2, 0xfc000000                        |         r0 = BIT_MASK (r2, 0xfc000000);
    0x00020db8 ldrd r2, r3, [sp, 0x38]                       |         __asm ("ldrd r2, r3, [var_38h]");
    0x00020dbc adds r2, r2, lr                               |         r2 += lr;
    0x00020dc0 adc r3, r3, 0                                 |         __asm ("adc r3, r3, 0");
    0x00020dc4 lsr lr, r2, 0x1a                              |         lr = r2 >> 0x1a;
    0x00020dc8 orr lr, lr, r3, lsl 6                         |         lr |= (r3 << 6);
    0x00020dcc adds r8, r8, lr                               |         r8 += lr;
    0x00020dd0 adc sb, sb, 0                                 |         __asm ("adc sb, sb, 0");
    0x00020dd4 lsr r3, r8, 0x1a                              |         r3 = r8 >> 0x1a;
    0x00020dd8 orr r3, r3, sb, lsl 6                         |         r3 |= (sb << 6);
    0x00020ddc bic r5, r8, 0xfc000000                        |         r5 = BIT_MASK (r8, 0xfc000000);
    0x00020de0 ldrd r8, sb, [sp, 0x48]                       |         __asm ("ldrd r8, sb, [var_48h]");
    0x00020de4 bic r7, r2, 0xfc000000                        |         r7 = BIT_MASK (r2, 0xfc000000);
    0x00020de8 adds r8, r8, r3                               |         r8 += r3;
    0x00020dec adc sb, sb, 0                                 |         __asm ("adc sb, sb, 0");
    0x00020df0 lsr r3, r8, 0x1a                              |         r3 = r8 >> 0x1a;
    0x00020df4 orr r3, r3, sb, lsl 6                         |         r3 |= (sb << 6);
    0x00020df8 add r3, r3, r3, lsl 2                         |         r3 += (r3 << 2);
    0x00020dfc add ip, r3, ip                                |         
    0x00020e00 ldr r3, [sp]                                  |         r3 = *(sp);
    0x00020e04 bic r6, r8, 0xfc000000                        |         r6 = BIT_MASK (r8, 0xfc000000);
    0x00020e08 add r3, r3, 0x10                              |         r3 += 0x10;
    0x00020e0c bic r8, ip, 0xfc000000                        |         r8 = BIT_MASK (ip, 0xfc000000);
    0x00020e10 add sb, r0, ip, lsr 26                        |         sb = r0 + (ip >> 26);
    0x00020e14 str r3, [sp]                                  |         *(sp) = r3;
    0x00020e18 b 0x20c28                                     |         
                                                             |     } 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/libwolfssl.so.24.5.1 @ 0x2edb0 */
                                             | #include <stdint.h>
                                             |  
    ; (fcn) fcn.0002edb0 ()                  | void fcn_0002edb0 (int32_t arg1, int32_t arg2) {
                                             |     r0 = arg1;
                                             |     r1 = arg2;
    0x0002edb0 cmp r2, 0                     |     
    0x0002edb4 push {r4, r5, r6, lr}         |     
    0x0002edb8 mov r4, r0                    |     r4 = r0;
    0x0002edbc mov r5, r1                    |     r5 = r1;
                                             |     if (r2 != 0) {
    0x0002edc0 beq 0x2edd8                   |         
    0x0002edc4 ldr r3, [r2, 0x10]            |         r3 = *((r2 + 0x10));
    0x0002edc8 cmp r3, 0                     |         
                                             |         if (r3 == 0) {
    0x0002edcc ldrne r6, [r3]                |             r6 = *(r3);
                                             |         }
                                             |         if (r3 == 0) {
    0x0002edd0 ldrne r0, [r3, 4]             |             r0 = *((r3 + 4));
                                             |         }
                                             |         if (r3 != 0) {
    0x0002edd4 bne 0x2edf8                   |             goto label_0;
                                             |         }
                                             |     }
    0x0002edd8 ldr r0, [r4, 0x3dc]           |     r0 = *((r4 + 0x3dc));
    0x0002eddc add r3, r4, 0x3f0             |     r3 = r4 + 0x3f0;
    0x0002ede0 cmp r0, 0                     |     
    0x0002ede4 ldrh r6, [r3]                 |     r6 = *(r3);
                                             |     if (r0 != 0) {
    0x0002ede8 beq 0x2edf8                   |         
    0x0002edec mov r2, 0                     |         r2 = 0;
    0x0002edf0 mov r1, r2                    |         r1 = r2;
    0x0002edf4 bl 0x9260                     |         r0 = fcn_00009260 ();
                                             |     }
                                             | label_0:
    0x0002edf8 mov r3, r0                    |     r3 = r0;
    0x0002edfc mov r2, r5                    |     r2 = r5;
    0x0002ee00 mov r1, r6                    |     r1 = r6;
    0x0002ee04 ldr r0, [r4, 0x78]            |     r0 = *((r4 + 0x78));
    0x0002ee08 bl 0x8df8                     |     r0 = fcn_00008df8 ();
    0x0002ee0c cmp r0, 0                     |     
    0x0002ee10 popne {r4, r5, r6, pc}        |     
    0x0002ee14 ldr r3, [r5, 0x10]            |     r3 = *((r5 + 0x10));
    0x0002ee18 cmp r3, 0                     |     
                                             |     if (r3 == 0) {
    0x0002ee1c ldrne r3, [r3, 0x2c]          |         r3 = *((r3 + 0x2c));
                                             |     }
                                             |     if (r3 == 0) {
    0x0002ee20 strne r3, [r4, 0x3dc]         |         *((r4 + 0x3dc)) = r3;
                                             |     }
                                             |     if (r3 == 0) {
    0x0002ee24 addne r4, r4, 0x394           |         r4 += 0x394;
                                             |     }
    0x0002ee28 strhne r0, [r4, 2]            |     __asm ("strhne r0, [r4, 2]");
    0x0002ee2c pop {r4, r5, r6, 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/libwolfssl.so.24.5.1 @ 0x1b44c */
                                                                 | #include <stdint.h>
                                                                 |  
    ; (fcn) sym.wc_RsaPublicKeyDecode_ex ()                      | void wc_RsaPublicKeyDecode_ex (int32_t arg_40h, int32_t arg_44h, int32_t arg_48h, uint32_t arg1, uint32_t arg2) {
                                                                 |     int32_t var_0h;
                                                                 |     int32_t var_4h;
                                                                 |     int32_t var_fh;
                                                                 |     int32_t var_10h;
                                                                 |     int32_t var_14h;
                                                                 |     int32_t var_1ch;
                                                                 |     r0 = arg1;
                                                                 |     r1 = arg2;
    0x0001b44c mov ip, 0                                         |     
    0x0001b450 push {r4, r5, r6, r7, r8, sb, sl, fp, lr}         |     
    0x0001b454 cmp r1, ip                                        |     
    0x0001b458 cmpne r0, ip                                      |     __asm ("cmpne r0, ip");
    0x0001b45c sub sp, sp, 0x1c                                  |     
    0x0001b460 ldr sb, [sp, 0x40]                                |     sb = *(arg_40h);
    0x0001b464 str ip, [sp, 0x10]                                |     var_10h = ip;
                                                                 |     if (r1 != ip) {
    0x0001b468 mvneq r0, 0xac                                    |         r0 = ~0xac;
                                                                 |     }
                                                                 |     if (r1 == ip) {
    0x0001b46c beq 0x1b49c                                       |         goto label_0;
                                                                 |     }
    0x0001b470 add r7, sp, 0x10                                  |     r7 += var_10h;
    0x0001b474 mov r8, r3                                        |     r8 = r3;
    0x0001b478 mov r6, r2                                        |     r6 = r2;
    0x0001b47c mov r3, r2                                        |     r3 = r2;
    0x0001b480 mov r2, r7                                        |     r2 = r7;
    0x0001b484 mov r5, r0                                        |     r5 = r0;
    0x0001b488 mov r4, r1                                        |     r4 = r1;
    0x0001b48c bl 0x1a2dc                                        |     r0 = fcn_0001a2dc (r0, r1);
    0x0001b490 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0001b494 bge 0x1b4a4                                       |         goto label_5;
                                                                 |     }
                                                                 | label_1:
    0x0001b498 mvn r0, 0x8b                                      |     r0 = ~0x8b;
                                                                 |     do {
                                                                 | label_0:
    0x0001b49c add sp, sp, 0x1c                                  |         
    0x0001b4a0 pop {r4, r5, r6, r7, r8, sb, sl, fp, pc}          |         
                                                                 | label_5:
    0x0001b4a4 ldr r3, [r4]                                      |         r3 = *(r4);
    0x0001b4a8 add fp, sp, 0xf                                   |         
    0x0001b4ac add sl, sp, 0x14                                  |         sl += var_14h;
    0x0001b4b0 str r3, [sp, 0x14]                                |         var_14h = r3;
    0x0001b4b4 mov r2, fp                                        |         r2 = fp;
    0x0001b4b8 mov r3, r6                                        |         r3 = r6;
    0x0001b4bc mov r1, sl                                        |         r1 = sl;
    0x0001b4c0 mov r0, r5                                        |         r0 = r5;
    0x0001b4c4 bl 0x1a13c                                        |         r0 = fcn_0001a13c (r0, r1);
    0x0001b4c8 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x0001b4cc bge 0x1b4d8                                       |             goto label_6;
                                                                 |         }
                                                                 | label_2:
    0x0001b4d0 mvn r0, 0x83                                      |         r0 = ~0x83;
    0x0001b4d4 b 0x1b49c                                         |         
                                                                 |     } while (1);
                                                                 | label_6:
    0x0001b4d8 ldrb r3, [sp, 0xf]                                |     r3 = var_fh;
    0x0001b4dc cmp r3, 2                                         |     
                                                                 |     if (r3 == 2) {
    0x0001b4e0 bne 0x1b508                                       |         
                                                                 | label_3:
    0x0001b4e4 mov r3, r6                                        |         r3 = r6;
    0x0001b4e8 mov r2, r7                                        |         r2 = r7;
    0x0001b4ec mov r1, r4                                        |         r1 = r4;
    0x0001b4f0 mov r0, r5                                        |         r0 = r5;
    0x0001b4f4 bl 0x1a21c                                        |         r0 = fcn_0001a21c (r0, r1);
    0x0001b4f8 cmp r0, 0                                         |         
                                                                 |         if (r0 >= 0) {
    0x0001b4fc bge 0x1b5f4                                       |             goto label_7;
                                                                 |         }
                                                                 | label_4:
    0x0001b500 mvn r0, 0x8e                                      |         r0 = ~0x8e;
    0x0001b504 b 0x1b49c                                         |         goto label_0;
                                                                 |     }
    0x0001b508 mov r3, r6                                        |     r3 = r6;
    0x0001b50c mov r2, r7                                        |     r2 = r7;
    0x0001b510 mov r1, r4                                        |     r1 = r4;
    0x0001b514 mov r0, r5                                        |     r0 = r5;
    0x0001b518 bl 0x1a2dc                                        |     r0 = fcn_0001a2dc (r0, r1);
    0x0001b51c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0001b520 blt 0x1b498                                       |         goto label_1;
                                                                 |     }
    0x0001b524 mov r2, r6                                        |     r2 = r6;
    0x0001b528 mov r1, r4                                        |     r1 = r4;
    0x0001b52c mov r0, r5                                        |     r0 = r5;
    0x0001b530 bl 0x1af00                                        |     r0 = fcn_0001af00 (r0, r1);
    0x0001b534 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0001b538 blt 0x1b498                                       |         goto label_1;
                                                                 |     }
    0x0001b53c ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001b540 cmp r3, r6                                        |     
                                                                 |     if (r3 >= r6) {
    0x0001b544 bhs 0x1b4d0                                       |         goto label_2;
                                                                 |     }
    0x0001b548 str r3, [sp, 0x14]                                |     var_14h = r3;
    0x0001b54c mov r2, fp                                        |     r2 = fp;
    0x0001b550 mov r3, r6                                        |     r3 = r6;
    0x0001b554 mov r1, sl                                        |     r1 = sl;
    0x0001b558 mov r0, r5                                        |     r0 = r5;
    0x0001b55c bl 0x1a13c                                        |     r0 = fcn_0001a13c (r0, r1);
    0x0001b560 cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0001b564 blt 0x1b498                                       |         goto label_1;
                                                                 |     }
    0x0001b568 ldrb r3, [sp, 0xf]                                |     r3 = var_fh;
    0x0001b56c cmp r3, 5                                         |     
                                                                 |     if (r3 != 5) {
    0x0001b570 bne 0x1b5ac                                       |         goto label_8;
                                                                 |     }
    0x0001b574 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001b578 add r2, r3, 2                                     |     r2 = r3 + 2;
    0x0001b57c cmp r6, r2                                        |     
                                                                 |     if (r6 <= r2) {
    0x0001b580 blo 0x1b4d0                                       |         goto label_2;
                                                                 |     }
    0x0001b584 add r1, r3, 1                                     |     r1 = r3 + 1;
    0x0001b588 ldrb r3, [r5, r3]                                 |     r3 = *((r5 + r3));
    0x0001b58c cmp r3, 5                                         |     
                                                                 |     if (r3 != 5) {
    0x0001b590 mvnne r0, 0x90                                    |         r0 = ~0x90;
                                                                 |         goto label_9;
                                                                 |     }
                                                                 |     if (r3 != 5) {
                                                                 | label_9:
    0x0001b594 bne 0x1b49c                                       |         goto label_0;
                                                                 |     }
    0x0001b598 ldrb r3, [r5, r1]                                 |     r3 = *((r5 + r1));
    0x0001b59c cmp r3, 0                                         |     
                                                                 |     if (r3 != 0) {
    0x0001b5a0 mvnne r0, 0x91                                    |         r0 = ~0x91;
                                                                 |         goto label_10;
                                                                 |     }
                                                                 |     if (r3 != 0) {
                                                                 | label_10:
    0x0001b5a4 bne 0x1b49c                                       |         goto label_0;
                                                                 |     }
    0x0001b5a8 str r2, [r4]                                      |     *(r4) = r2;
                                                                 | label_8:
    0x0001b5ac mov r2, 0                                         |     r2 = 0;
    0x0001b5b0 mov r3, 1                                         |     r3 = 1;
    0x0001b5b4 str r3, [sp]                                      |     *(sp) = r3;
    0x0001b5b8 str r2, [sp, 4]                                   |     var_4h = r2;
    0x0001b5bc mov r3, r6                                        |     r3 = r6;
    0x0001b5c0 mov r1, r4                                        |     r1 = r4;
    0x0001b5c4 mov r0, r5                                        |     r0 = r5;
    0x0001b5c8 bl 0x1a5c4                                        |     r0 = fcn_0001a5c4 (r0, r1, r2, r3);
    0x0001b5cc cmp r0, 0                                         |     
                                                                 |     if (r0 != 0) {
    0x0001b5d0 bne 0x1b49c                                       |         goto label_0;
                                                                 |     }
    0x0001b5d4 mov r3, r6                                        |     r3 = r6;
    0x0001b5d8 mov r2, r7                                        |     r2 = r7;
    0x0001b5dc mov r1, r4                                        |     r1 = r4;
    0x0001b5e0 mov r0, r5                                        |     r0 = r5;
    0x0001b5e4 bl 0x1a2dc                                        |     r0 = fcn_0001a2dc (r0, r1);
    0x0001b5e8 cmp r0, 0                                         |     
                                                                 |     if (r0 >= 0) {
    0x0001b5ec bge 0x1b4e4                                       |         goto label_3;
                                                                 |     }
    0x0001b5f0 b 0x1b498                                         |     goto label_1;
                                                                 | label_7:
    0x0001b5f4 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0001b5f8 cmp sb, 0                                         |     
                                                                 |     if (sb == 0) {
    0x0001b5fc strne r2, [sb]                                    |         *(sb) = r2;
                                                                 |     }
    0x0001b600 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001b604 cmp r8, 0                                         |     
                                                                 |     if (r8 == 0) {
    0x0001b608 addne r1, r5, r3                                  |         r1 = r5 + r3;
                                                                 |     }
    0x0001b60c add r3, r3, r2                                    |     r3 += r2;
                                                                 |     if (r8 == 0) {
    0x0001b610 strne r1, [r8]                                    |         *(r8) = r1;
                                                                 |     }
    0x0001b614 mov r2, r7                                        |     r2 = r7;
    0x0001b618 str r3, [r4]                                      |     *(r4) = r3;
    0x0001b61c mov r1, r4                                        |     r1 = r4;
    0x0001b620 mov r3, r6                                        |     r3 = r6;
    0x0001b624 mov r0, r5                                        |     r0 = r5;
    0x0001b628 bl 0x1a21c                                        |     r0 = fcn_0001a21c (r0, r1);
    0x0001b62c cmp r0, 0                                         |     
                                                                 |     if (r0 < 0) {
    0x0001b630 blt 0x1b500                                       |         goto label_4;
                                                                 |     }
    0x0001b634 ldr r3, [sp, 0x48]                                |     r3 = *(arg_48h);
    0x0001b638 ldr r2, [sp, 0x10]                                |     r2 = var_10h;
    0x0001b63c cmp r3, 0                                         |     
    0x0001b640 ldr r1, [sp, 0x44]                                |     r1 = *(arg_44h);
                                                                 |     if (r3 == 0) {
    0x0001b644 strne r2, [r3]                                    |         *(r3) = r2;
                                                                 |     }
    0x0001b648 ldr r3, [r4]                                      |     r3 = *(r4);
    0x0001b64c cmp r1, 0                                         |     
                                                                 |     if (r1 == 0) {
    0x0001b650 addne r5, r5, r3                                  |         r5 += r3;
                                                                 |     }
    0x0001b654 add r3, r3, r2                                    |     r3 += r2;
                                                                 |     if (r1 == 0) {
    0x0001b658 strne r5, [r1]                                    |         *(r1) = r5;
                                                                 |     }
    0x0001b65c str r3, [r4]                                      |     *(r4) = r3;
    0x0001b660 b 0x1b49c                                         |     goto label_0;
                                                                 | }

[*] Function printf used 1 times libwolfssl.so.24.5.1