Function at 0x532340
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1d8
movaps xmmword [rsp + 0x190], xmm6
movaps xmmword [rsp + 0x1a0], xmm7
movaps xmmword [rsp + 0x1b0], xmm8
movaps xmmword [rsp + 0x1c0], xmm9
lea rax, [rsp + 0xdf]
mov qword [rsp + 0x220], rcx
and rax, 0xffffffffffffffe0
mov qword [rsp + 0x228], rdx
mov qword [rsp + 0x230], r8
mov qword [rsp + 0x238], r9
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov byte [rsp + 0xb0], 0
cmp r9, 0xffffffe
ja 0x532df0
mov rdi, rax
mov ecx, 0xc
xor eax, eax
rep stosq qword [rdi], rax
mov rcx, qword [rsp + 0x250]
call sym.BN_CTX_start
cmp qword [rsp + 0x230], 0
je 0x532520
mov rcx, qword [rsp + 0x220]
call sym.EC_GROUP_get0_generator
mov rsi, rax
test rax, rax
je 0x5336cb
mov rax, qword [rsp + 0x220]
mov rbx, qword [rax + 0xa0]
test rbx, rbx
je 0x53304f
mov rcx, rax
call sym.EC_POINT_new
mov r13, rax
test rax, rax
je 0x53248e
mov rdi, qword [rsp + 0x40]
mov rdx, qword [rbx + 0x10]
mov r8d, 1
mov rcx, rdi
call sym.ecp_nistz256_gather_w7
mov rcx, qword [r13 + 0x10]
mov r8d, 4
mov rdx, rdi
call sym.bn_set_words
test eax, eax
jne 0x532fde
mov rcx, r13
call sym.EC_POINT_free
mov qword [rsp + 0x60], 0
xor r13d, r13d
mov qword [rsp + 0x230], 0
mov rcx, qword [rsp + 0x250]
call sym.BN_CTX_end
mov rcx, qword [rsp + 0x60]
mov r8d, 0x493
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x230]
mov r8d, 0x494
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
nop
movaps xmm6, xmmword [rsp + 0x190]
mov eax, r13d
movaps xmm7, xmmword [rsp + 0x1a0]
movaps xmm8, xmmword [rsp + 0x1b0]
movaps xmm9, xmmword [rsp + 0x1c0]
add rsp, 0x1d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x238], 0
je 0x532e30
mov qword [rsp + 0x60], 0
mov rbx, qword [rsp + 0x40]
mov dword [rsp + 0x7c], 1
mov rax, qword [rsp + 0x238]
shl rax, 4
add rax, 6
cmp rax, 0x1555555
ja 0x5335a7
mov rax, qword [rsp + 0x238]
mov r8d, 0x27c
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
lea r10, [rax + rax*2]
shl r10, 9
lea rcx, [r10 + 0x220]
mov r12, r10
call sym.CRYPTO_malloc
mov qword [rsp + 0x68], rax
test rax, rax
je 0x5335a7
mov rax, qword [rsp + 0x238]
mov r8d, 0x27e
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
shl rax, 5
add rax, qword [rsp + 0x238]
mov rcx, rax
mov qword [rsp + 0x28], rax
call sym.CRYPTO_malloc
mov qword [rsp + 0x38], rax
test rax, rax
je 0x5335b9
mov rax, qword [rsp + 0x238]
mov r8d, 0x27f
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
lea rcx, [rax*8]
call sym.CRYPTO_malloc
mov qword [rsp + 0x70], rax
test rax, rax
je 0x5335b9
mov rbp, rax
mov rax, qword [rsp + 0x68]
mov qword [rsp + 0x30], rbx
xor r13d, r13d
and rax, 0xffffffffffffffc0
lea rdi, [rax + 0x40]
mov rax, qword [rsp + 0x38]
add r12, rdi
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x88], rax
mov qword [rsp + 0x20], rax
lea rax, [r12 + 0x20]
mov qword [rsp + 0x80], rdi
mov qword [rsp + 0x48], rax
nop dword [rax + rax]
mov rax, qword [rsp + 0x248]
mov rcx, qword [rax + r13*8]
call sym.BN_num_bits
cmp eax, 0x100
jg 0x532f40
mov rax, qword [rsp + 0x248]
mov rcx, qword [rax + r13*8]
call sym.BN_is_negative
test eax, eax
jne 0x532f40
mov rax, qword [rsp + 0x248]
mov rax, qword [rax + r13*8]
mov qword [rbp], rax
mov rcx, qword [rbp]
mov rsi, qword [rsp + 0x20]
xor ebx, ebx
call sym.bn_get_top
shl eax, 3
cmp ebx, eax
jge 0x532720
mov rcx, qword [rbp]
add rsi, 8
call sym.bn_get_words
mov rcx, qword [rbp]
mov r8, rax
mov eax, ebx
add ebx, 8
sar eax, 3
cdqe
mov rax, qword [r8 + rax*8]
mov rdx, rax
mov byte [rsi - 8], al
shr rdx, 8
mov byte [rsi - 7], dl
mov rdx, rax
shr rdx, 0x10
mov byte [rsi - 6], dl
mov rdx, rax
shr rdx, 0x18
mov byte [rsi - 5], dl
mov rdx, rax
shr rdx, 0x20
mov byte [rsi - 4], dl
mov rdx, rax
shr rdx, 0x28
mov byte [rsi - 3], dl
mov rdx, rax
shr rax, 0x38
shr rdx, 0x30
mov byte [rsi - 1], al
mov byte [rsi - 2], dl
call sym.bn_get_top
shl eax, 3
cmp ebx, eax
jl 0x5326ac
cmp ebx, 0x20
jg 0x532754
mov eax, 0x21
sub eax, ebx
movsxd rbx, ebx
add rbx, qword [rsp + 0x20]
cmp eax, 8
jae 0x532f98
test al, 4
jne 0x5335f6
test eax, eax
je 0x532754
mov byte [rbx], 0
test al, 2
jne 0x5336bf
mov rax, qword [rsp + 0x240]
mov r8d, 4
mov rcx, r12
mov rax, qword [rax + r13*8]
mov rdx, qword [rax + 0x10]
call sym.bn_copy_words
test eax, eax
je 0x53352b
mov rax, qword [rsp + 0x240]
mov rcx, qword [rsp + 0x48]
mov r8d, 4
mov rax, qword [rax + r13*8]
mov rdx, qword [rax + 0x18]
call sym.bn_copy_words
test eax, eax
je 0x53352b
mov rax, qword [rsp + 0x240]
lea rcx, [r12 + 0x40]
mov r8d, 4
mov rax, qword [rax + r13*8]
mov rdx, qword [rax + 0x20]
call sym.bn_copy_words
test eax, eax
je 0x53352b
lea rbx, [r12 + 0x60]
mov rcx, rdi
mov rdx, r12
add r13, 1
mov r8d, 1
lea r15, [r12 + 0xc0]
lea r14, [r12 + 0x120]
call sym.ecp_nistz256_scatter_w5
mov rdx, r12
mov rcx, rbx
lea rsi, [r12 + 0x180]
call sym.ecp_nistz256_point_double
mov rcx, rdi
mov r8d, 2
mov rdx, rbx
call sym.ecp_nistz256_scatter_w5
mov r8, r12
mov rdx, rbx
mov rcx, r15
call sym.ecp_nistz256_point_add
mov r8d, 3
mov rcx, rdi
mov rdx, r15
call sym.ecp_nistz256_scatter_w5
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_double
mov r8d, 4
mov rcx, rdi
mov rdx, rbx
call sym.ecp_nistz256_scatter_w5
mov rdx, r15
mov rcx, r15
call sym.ecp_nistz256_point_double
mov rcx, rdi
mov r8d, 6
mov rdx, r15
call sym.ecp_nistz256_scatter_w5
mov r8, r12
mov rdx, rbx
mov rcx, r14
call sym.ecp_nistz256_point_add
mov rcx, rdi
mov r8d, 5
mov rdx, r14
call sym.ecp_nistz256_scatter_w5
mov r8, r12
mov rdx, r15
mov rcx, rsi
call sym.ecp_nistz256_point_add
mov r8d, 7
mov rcx, rdi
mov rdx, rsi
call sym.ecp_nistz256_scatter_w5
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_double
mov r8d, 8
mov rcx, rdi
mov rdx, rbx
call sym.ecp_nistz256_scatter_w5
mov rdx, r15
mov rcx, r15
call sym.ecp_nistz256_point_double
mov r8d, 0xc
mov rcx, rdi
mov rdx, r15
call sym.ecp_nistz256_scatter_w5
mov rdx, r14
mov rcx, r14
call sym.ecp_nistz256_point_double
mov r8d, 0xa
mov rcx, rdi
mov rdx, r14
call sym.ecp_nistz256_scatter_w5
mov rdx, rsi
mov rcx, rsi
call sym.ecp_nistz256_point_double
mov rcx, rdi
mov r8d, 0xe
mov rdx, rsi
call sym.ecp_nistz256_scatter_w5
mov r8, r12
mov rdx, r15
mov rcx, r15
call sym.ecp_nistz256_point_add
mov rcx, rdi
mov r8d, 0xd
mov rdx, r15
call sym.ecp_nistz256_scatter_w5
mov r8, r12
mov rdx, r14
mov rcx, r14
call sym.ecp_nistz256_point_add
mov rcx, rdi
mov r8d, 0xb
mov rdx, r14
call sym.ecp_nistz256_scatter_w5
mov r8, r12
mov rdx, rsi
mov rcx, rsi
call sym.ecp_nistz256_point_add
mov rcx, rdi
mov r8d, 0xf
mov rdx, rsi
call sym.ecp_nistz256_scatter_w5
mov r8, r12
mov rdx, rbx
mov rcx, r15
call sym.ecp_nistz256_point_add
mov r8d, 9
mov rcx, rdi
mov rdx, r15
call sym.ecp_nistz256_scatter_w5
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_double
mov rcx, rdi
mov r8d, 0x10
mov rdx, rbx
call sym.ecp_nistz256_scatter_w5
add rdi, 0x600
add rbp, 8
add qword [rsp + 0x20], 0x21
cmp r13, qword [rsp + 0x238]
jb 0x532650
mov rdi, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x50]
mov rcx, r12
lea r13, [r12 + 0x80]
mov rbx, qword [rsp + 0x30]
pxor xmm8, xmm8
movzx eax, byte [rdi + 0x1f]
mov r8d, eax
shr eax, 7
shr r8d, 6
and r8d, 1
add r8d, eax
call sym.ecp_nistz256_gather_w5
movdqu xmm7, xmmword [r12]
mov rax, qword [rsp + 0x28]
mov dword [rsp + 0x30], 0xff
movdqa xmm9, xmmword [0x007b2020]
mov r15, qword [rsp + 0x48]
movaps xmmword [rbx], xmm7
movdqu xmm7, xmmword [r12 + 0x10]
add rax, rdi
mov qword [rsp + 0x58], rax
movaps xmmword [rbx + 0x10], xmm7
movdqu xmm7, xmmword [r12 + 0x20]
movaps xmmword [rbx + 0x20], xmm7
movdqu xmm7, xmmword [r12 + 0x30]
movaps xmmword [rbx + 0x30], xmm7
movdqu xmm7, xmmword [r12 + 0x40]
movaps xmmword [rbx + 0x40], xmm7
movdqu xmm7, xmmword [r12 + 0x50]
movaps xmmword [rbx + 0x50], xmm7
pcmpeqd xmm7, xmm7
nop dword [rax]
xor eax, eax
cmp dword [rsp + 0x30], 0xff
sete al
cmp rax, qword [rsp + 0x238]
jae 0x532c0e
mov edi, dword [rsp + 0x30]
mov r9, rax
lea r10, [rax + rax*2]
shl r9, 5
shl r10, 9
sub edi, 1
add r9, rax
mov rax, qword [rsp + 0x50]
mov esi, edi
and edi, 7
shr esi, 3
mov dword [rsp + 0x28], edi
mov rdi, qword [rsp + 0x38]
add r9, rsi
lea ebp, [rsi + 1]
lea r14, [rdi + r9]
lea rdi, [rax + r10]
mov rax, qword [rsp + 0x58]
add rax, rsi
mov qword [rsp + 0x20], rax
mov rax, rbp
mov rbp, r14
mov r14, rax
nop word cs:[rax + rax]
mov rax, rbp
movzx r11d, byte [rbp]
movzx ecx, byte [rsp + 0x28]
add rbp, 0x21
sub rax, rsi
movzx r8d, byte [rax + r14]
shl r8d, 8
or r8d, r11d
shr r8d, cl
mov r11d, r8d
mov r8d, 0x3f
and r11d, 0x3f
mov eax, r11d
sub r8d, r11d
shr eax, 5
mov ecx, r8d
mov edx, eax
lea r8d, [rax - 1]
neg edx
and r8d, r11d
and ecx, edx
and edx, 1
or r8d, ecx
mov rcx, r12
mov eax, r8d
and r8d, 1
shr eax, 1
add r8d, eax
lea eax, [rdx + r8*2]
and r8d, 0x7fffffff
mov rdx, rdi
add rdi, 0x600
movd xmm6, eax
call sym.ecp_nistz256_gather_w5
mov rdx, r15
mov rcx, r13
call sym.ecp_nistz256_neg
pshufd xmm0, xmm6, 0
mov r8, r12
mov rdx, rbx
pand xmm0, xmm9
pxor xmm2, xmm2
movdqa xmm1, xmm7
mov rcx, rbx
movdqa xmm3, xmm0
movdqa xmm4, xmm2
punpckhdq xmm0, xmm8
movdqu xmm5, xmmword [r12 + 0x30]
psubq xmm4, xmm0
paddq xmm1, xmm0
movdqu xmm0, xmmword [r12 + 0x90]
punpckldq xmm3, xmm8
pand xmm1, xmm5
movdqu xmm5, xmmword [r12 + 0x20]
psubq xmm2, xmm3
movdqu xmm6, xmmword [r12 + 0x80]
pand xmm0, xmm4
pxor xmm0, xmm1
movdqa xmm1, xmm7
pand xmm2, xmm6
paddq xmm1, xmm3
movups xmmword [r12 + 0x30], xmm0
pand xmm1, xmm5
pxor xmm1, xmm2
movups xmmword [r12 + 0x20], xmm1
call sym.ecp_nistz256_point_add
cmp rbp, qword [rsp + 0x20]
jne 0x532af0
mov rdx, rbx
mov rcx, rbx
sub dword [rsp + 0x30], 5
mov edi, dword [rsp + 0x30]
call sym.ecp_nistz256_point_double
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_double
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_double
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_double
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_double
test edi, edi
jne 0x532a78
mov r14, qword [rsp + 0x48]
xor edi, edi
mov esi, 0x3f
pxor xmm7, xmm7
mov r15, qword [rsp + 0x80]
mov rbp, qword [rsp + 0x88]
pcmpeqd xmm6, xmm6
nop word [rax + rax]
movzx r8d, byte [rbp]
add rdi, 1
add rbp, 0x21
add r8d, r8d
mov ecx, r8d
mov r8d, esi
and ecx, 0x3f
mov eax, ecx
sub r8d, ecx
shr eax, 5
mov r10d, r8d
mov edx, eax
lea r8d, [rax - 1]
neg edx
and r8d, ecx
mov rcx, r12
and r10d, edx
and edx, 1
or r8d, r10d
mov eax, r8d
and r8d, 1
shr eax, 1
add r8d, eax
lea eax, [rdx + r8*2]
and r8d, 0x7fffffff
mov rdx, r15
add r15, 0x600
movd xmm8, eax
call sym.ecp_nistz256_gather_w5
mov rdx, r14
mov rcx, r13
call sym.ecp_nistz256_neg
pxor xmm2, xmm2
movdqa xmm1, xmm6
mov r8, r12
pshufd xmm0, xmm8, 0
movdqa xmm4, xmm2
mov rdx, rbx
mov rcx, rbx
pand xmm0, xmm9
movdqu xmm5, xmmword [r12 + 0x30]
movdqa xmm3, xmm0
punpckhdq xmm0, xmm7
psubq xmm4, xmm0
paddq xmm1, xmm0
punpckldq xmm3, xmm7
movdqu xmm0, xmmword [r12 + 0x90]
pand xmm1, xmm5
movdqu xmm5, xmmword [r12 + 0x20]
psubq xmm2, xmm3
pand xmm0, xmm4
pxor xmm0, xmm1
movdqa xmm1, xmm6
paddq xmm1, xmm3
movups xmmword [r12 + 0x30], xmm0
pand xmm1, xmm5
movdqu xmm5, xmmword [r12 + 0x80]
pand xmm2, xmm5
pxor xmm1, xmm2
movups xmmword [r12 + 0x20], xmm1
call sym.ecp_nistz256_point_add
cmp rdi, qword [rsp + 0x238]
jb 0x532c80
mov rcx, qword [rsp + 0x68]
mov r8d, 0x30f
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x38]
mov r8d, 0x310
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x70]
mov r8d, 0x311
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov eax, dword [rsp + 0x7c]
test eax, eax
jne 0x532e45
mov rcx, qword [rsp + 0x40]
mov r8, rbx
mov rdx, rcx
call sym.ecp_nistz256_point_add
jmp 0x532e45
call sym.ERR_new
lea r8, str.ecp_nistz256_points_mul
mov edx, 0x3d1
xor r13d, r13d
lea rcx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 0x10
call sym.ERR_set_error
jmp 0x5324e5
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x230], 0
mov rax, qword [rsp + 0x228]
mov rdi, qword [rsp + 0x40]
mov r8d, 4
mov rcx, qword [rax + 0x10]
mov rdx, rdi
call sym.bn_set_words
mov r13d, eax
test eax, eax
je 0x5324a6
mov rax, qword [rsp + 0x228]
lea rdx, [rdi + 0x20]
mov r8d, 4
mov rcx, qword [rax + 0x18]
call sym.bn_set_words
mov r13d, eax
test eax, eax
je 0x5324a6
mov rax, qword [rsp + 0x228]
add rdi, 0x40
mov r8d, 4
mov rdx, rdi
mov rcx, qword [rax + 0x20]
call sym.bn_set_words
mov r13d, eax
test eax, eax
je 0x5324a6
mov rax, qword [rsp + 0x228]
mov r12, qword [rax + 0x20]
mov rcx, r12
call sym.bn_get_words
mov rcx, r12
mov rbx, rax
call sym.bn_get_top
mov r8d, eax
xor eax, eax
cmp r8d, 4
jne 0x532f26
movabs rax, 0xffffffff00000000
mov rdx, qword [rbx]
xor rax, qword [rbx + 8]
xor rdx, 1
or rax, rdx
mov rdx, qword [rbx + 0x10]
not rdx
or rdx, rax
mov eax, 0xfffffffe
xor rax, qword [rbx + 0x18]
or rdx, rax
mov rax, rdx
neg rax
or rax, rdx
not rax
shr rax, 0x3f
mov rdi, qword [rsp + 0x228]
mov r13d, 1
mov dword [rdi + 0x28], eax
jmp 0x5324a6
mov rcx, qword [rsp + 0x250]
call sym.BN_CTX_get
mov rbx, rax
test rax, rax
je 0x53355a
mov rax, qword [rsp + 0x248]
mov r9, qword [rsp + 0x250]
mov rcx, rbx
mov rdx, qword [rax + r13*8]
mov rax, qword [rsp + 0x220]
mov r8, qword [rax + 0x10]
call sym.BN_nnmod
test eax, eax
je 0x533717
mov qword [rbp], rbx
jmp 0x532695
mov edx, eax
mov qword [rbx], 0
mov qword [rbx + rdx - 8], 0
lea rdx, [rbx + 8]
and rdx, 0xfffffffffffffff8
sub rbx, rdx
add ebx, eax
and ebx, 0xfffffff8
cmp ebx, 8
jb 0x532754
and ebx, 0xfffffff8
xor eax, eax
mov ecx, eax
add eax, 8
mov qword [rdx + rcx], 0
cmp eax, ebx
jb 0x532fc8
jmp 0x532754
mov rax, qword [rsp + 0x40]
mov rcx, qword [r13 + 0x18]
mov r8d, 4
lea rdx, [rax + 0x20]
call sym.bn_set_words
test eax, eax
je 0x532486
mov rcx, qword [r13 + 0x20]
mov r8d, 4
lea rdx, [0x007b2000]
call sym.bn_set_words
test eax, eax
je 0x532486
mov dword [r13 + 0x28], 1
mov r9, qword [rsp + 0x250]
mov r8, r13
mov rdx, rsi
mov rcx, qword [rsp + 0x220]
call sym.EC_POINT_cmp
test eax, eax
je 0x5336a5
mov rcx, r13
call sym.EC_POINT_free
mov rcx, rsi
call sym.ecp_nistz256_is_affine_G
test eax, eax
je 0x533463
mov r14, qword [0x007e9fe0]
mov rcx, qword [rsp + 0x230]
call sym.BN_num_bits
cmp eax, 0x100
jg 0x53308f
mov rcx, qword [rsp + 0x230]
call sym.BN_is_negative
test eax, eax
je 0x53364f
mov rcx, qword [rsp + 0x250]
call sym.BN_CTX_get
mov rdi, rax
test rax, rax
je 0x53248e
mov rax, qword [rsp + 0x220]
mov r9, qword [rsp + 0x250]
mov rcx, rdi
mov rdx, qword [rsp + 0x230]
mov r8, qword [rax + 0x10]
call sym.BN_nnmod
mov r13d, eax
test eax, eax
je 0x53365c
lea rbp, [rsp + 0x90]
xor esi, esi
mov r13, rbp
jmp 0x53315b
mov rcx, rdi
add r13, 8
call sym.bn_get_words
mov r8, rax
mov eax, esi
add esi, 8
sar eax, 3
cdqe
mov rax, qword [r8 + rax*8]
mov rdx, rax
mov byte [r13 - 8], al
shr rdx, 8
mov byte [r13 - 7], dl
mov rdx, rax
shr rdx, 0x10
mov byte [r13 - 6], dl
mov rdx, rax
shr rdx, 0x18
mov byte [r13 - 5], dl
mov rdx, rax
shr rdx, 0x20
mov byte [r13 - 4], dl
mov rdx, rax
shr rdx, 0x28
mov byte [r13 - 3], dl
mov rdx, rax
shr rax, 0x38
mov byte [r13 - 1], al
shr rdx, 0x30
mov byte [r13 - 2], dl
mov rcx, rdi
call sym.bn_get_top
shl eax, 3
cmp eax, esi
jg 0x5330f0
mov eax, 0x21
xor ecx, ecx
sub eax, esi
movsxd rsi, esi
add rsi, rbp
cmp eax, 8
jae 0x533609
test al, 4
jne 0x53374b
test eax, eax
je 0x533199
mov byte [rsi], 0
test al, 2
jne 0x53375e
mov r8d, 0xff
mov r12, qword [rsp + 0x40]
mov r13d, 6
movzx r15d, byte [rsp + 0x90]
pxor xmm7, xmm7
pcmpeqd xmm6, xmm6
lea eax, [r15 + r15]
lea rbx, [r12 + 0x60]
movzx r9d, al
lea rbp, [r12 + 0x80]
lea rdi, [r12 + 0xa0]
mov edx, r9d
sub r8d, r9d
shr edx, 7
mov ecx, edx
lea eax, [rdx - 1]
mov rdx, r14
neg ecx
and eax, r9d
and r8d, ecx
and ecx, 1
or eax, r8d
mov r8d, eax
and eax, 1
shr r8d, 1
add r8d, eax
lea esi, [rcx + r8*2]
and r8d, 0x7fffffff
mov rcx, r12
call sym.ecp_nistz256_gather_w7
lea rdx, [r12 + 0x20]
lea rcx, [r12 + 0x40]
call sym.ecp_nistz256_neg
mov r10d, esi
mov r9, qword [r12 + 0x40]
mov rax, qword [r12 + 0x20]
and r10d, 1
mov r8, qword [r12 + 0x48]
mov rcx, qword [r12 + 0x50]
mov esi, 0xff
movdqa xmm9, xmmword [0x007b2020]
mov rdx, r10
sub r10, 1
neg rdx
and rax, r10
and r9, rdx
and r8, rdx
and rcx, rdx
xor r9, rax
mov rax, qword [r12 + 0x28]
mov qword [r12 + 0x20], r9
and rax, r10
xor r8, rax
mov rax, qword [r12 + 0x30]
mov qword [r12 + 0x28], r8
and rax, r10
and r10, qword [r12 + 0x38]
xor rcx, rax
mov rax, qword [r12 + 0x58]
mov qword [r12 + 0x30], rcx
and rax, rdx
xor rax, r10
mov rdx, rax
mov qword [r12 + 0x38], rax
mov rax, qword [r12]
or rax, qword [r12 + 8]
or rax, qword [r12 + 0x10]
or rax, qword [r12 + 0x18]
or rax, r9
or rax, r8
add r14, 0x1000
or rax, rcx
or rax, rdx
mov rdx, rax
neg rdx
or rax, rdx
cqo
shr rax, 0x3f
mov qword [r12 + 0x40], rax
movabs rax, 0xffffffff00000000
and rax, rdx
mov qword [r12 + 0x50], rdx
and edx, 0xfffffffe
mov qword [r12 + 0x58], rdx
mov edx, r15d
mov qword [r12 + 0x48], rax
jmp 0x533316
mov eax, r13d
shr eax, 3
movzx edx, byte [rsp + rax + 0x90]
mov eax, r13d
mov ecx, r13d
add r13d, 7
shr eax, 3
and ecx, 7
add eax, 1
movzx r8d, byte [rsp + rax + 0x90]
shl r8d, 8
or r8d, edx
shr r8d, cl
movzx edx, r8b
mov r8d, esi
mov eax, edx
sub r8d, edx
shr eax, 7
mov r9d, r8d
mov ecx, eax
lea r8d, [rax - 1]
neg ecx
and r8d, edx
mov rdx, r14
add r14, 0x1000
and r9d, ecx
and ecx, 1
or r8d, r9d
mov eax, r8d
and r8d, 1
shr eax, 1
add r8d, eax
lea r15d, [rcx + r8*2]
and r8d, 0x7fffffff
mov rcx, rbx
call sym.ecp_nistz256_gather_w7
mov rdx, rbp
mov rcx, rdi
call sym.ecp_nistz256_neg
movd xmm5, r15d
mov r8, rbx
mov rdx, r12
pshufd xmm0, xmm5, 0
pxor xmm1, xmm1
movdqa xmm2, xmm6
mov rcx, r12
pand xmm0, xmm9
movdqa xmm3, xmm1
movdqa xmm4, xmm0
punpckhdq xmm0, xmm7
psubq xmm3, xmm0
paddq xmm2, xmm0
punpckldq xmm4, xmm7
pand xmm3, xmmword [r12 + 0xb0]
psubq xmm1, xmm4
pand xmm2, xmmword [r12 + 0x90]
pand xmm1, xmmword [r12 + 0xa0]
movdqa xmm0, xmm3
pxor xmm0, xmm2
movdqa xmm2, xmm6
movaps xmmword [r12 + 0x90], xmm0
paddq xmm2, xmm4
pand xmm2, xmmword [r12 + 0x80]
pxor xmm1, xmm2
movaps xmmword [r12 + 0x80], xmm1
call sym.ecp_nistz256_point_add_affine
cmp r13d, 0x102
jne 0x533308
cmp qword [rsp + 0x238], 0
je 0x532e30
mov dword [rsp + 0x7c], 0
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x230], 0
jmp 0x532545
add qword [rsp + 0x238], 1
mov rax, qword [rsp + 0x238]
mov r8d, 0x465
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
lea rdi, [rax*8]
mov rcx, rdi
call sym.CRYPTO_malloc
mov rbx, rax
test rax, rax
je 0x5337a9
mov r8d, 0x46b
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
mov rcx, rdi
call sym.CRYPTO_malloc
mov qword [rsp + 0x60], rax
test rax, rax
je 0x53376a
mov rdx, qword [rsp + 0x248]
lea rbp, [rdi - 8]
mov rcx, rbx
mov r8, rbp
call sym.memcpy
mov rax, qword [rsp + 0x230]
mov r14, qword [rsp + 0x60]
mov r8, rbp
mov rdx, qword [rsp + 0x240]
mov qword [rbx + rdi - 8], rax
mov rcx, r14
call sym.memcpy
mov qword [rsp + 0x248], rbx
mov qword [rsp + 0x230], rbx
mov rbx, qword [rsp + 0x40]
mov qword [r14 + rdi - 8], rsi
mov qword [rsp + 0x240], r14
mov dword [rsp + 0x7c], 1
jmp 0x532545
call sym.ERR_new
lea r8, str.ecp_nistz256_windowed_mul
mov edx, 0x2ad
lea rcx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x92
mov ecx, 0x10
call sym.ERR_set_error
mov rcx, qword [rsp + 0x68]
mov r8d, 0x30f
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
xor r13d, r13d
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x38]
mov r8d, 0x310
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x70]
mov r8d, 0x311
lea rdx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
jmp 0x5324a6
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x38], 0
call sym.ERR_new
lea r8, str.ecp_nistz256_windowed_mul
mov edx, 0x280
lea rcx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 0x10
call sym.ERR_set_error
mov qword [rsp + 0x70], 0
jmp 0x53355a
mov dword [rbx], 0
mov dword [rbx + rax - 4], 0
jmp 0x532754
mov edx, eax
mov qword [rsi], 0
mov qword [rsi + rdx - 8], 0
lea rdx, [rsi + 8]
and rdx, 0xfffffffffffffff8
sub rsi, rdx
add eax, esi
and eax, 0xfffffff8
cmp eax, 8
jb 0x533199
and eax, 0xfffffff8
xor r8d, r8d
mov r9d, r8d
add r8d, 8
mov qword [rdx + r9], rcx
cmp r8d, eax
jb 0x53363a
jmp 0x533199
mov rdi, qword [rsp + 0x230]
jmp 0x5330d7
call sym.ERR_new
lea r8, str.ecp_nistz256_points_mul
mov edx, 0x40b
lea rcx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x80003
mov ecx, 0x10
call sym.ERR_set_error
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x230], 0
jmp 0x5324a6
mov r14, qword [rbx + 0x10]
mov rcx, r13
call sym.EC_POINT_free
test r14, r14
jne 0x533066
jmp 0x53304f
xor edx, edx
mov word [rbx + rax - 2], dx
jmp 0x532754
call sym.ERR_new
lea r8, str.ecp_nistz256_points_mul
mov edx, 0x3db
lea rcx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x71
mov ecx, 0x10
xor r13d, r13d
call sym.ERR_set_error
mov qword [rsp + 0x60], 0
mov qword [rsp + 0x230], 0
jmp 0x5324a6
call sym.ERR_new
lea r8, str.ecp_nistz256_windowed_mul
mov edx, 0x291
lea rcx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0x80003
mov ecx, 0x10
call sym.ERR_set_error
jmp 0x53355a
mov dword [rsi], 0
mov dword [rsi + rax - 4], 0
jmp 0x533199
xor ecx, ecx
mov word [rsi + rax - 2], cx
jmp 0x533199
call sym.ERR_new
lea r8, str.ecp_nistz256_points_mul
mov edx, 0x46d
xor r13d, r13d
lea rcx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xc0100
mov ecx, 0x10
call sym.ERR_set_error
mov qword [rsp + 0x230], rbx
jmp 0x5324a6
call sym.ERR_new
lea r8, str.ecp_nistz256_points_mul
mov edx, 0x467
lea rcx, str..._openssl_3.1.1_crypto_ec_ecp_nistz256.c
call sym.ERR_set_debug
xor r8d, r8d
mov edx, 0xc0100
jmp 0x5336f0