[*] Binary protection state of libwolfssl.so.24.5.1
Partial RELRO No Canary found NX disabled DSO No RPATH No RUNPATH No Symbols
[*] Function mmap 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 mmap used 1 times libwolfssl.so.24.5.1