Function at 0x457730
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1e8
movups xmmword [rsp + 0x1a0], xmm6
movups xmmword [rsp + 0x1b0], xmm7
movups xmmword [rsp + 0x1c0], xmm8
movups xmmword [rsp + 0x1d0], xmm9
lea rbx, [rsp + 0xef]
mov qword [rsp + 0x230], rcx
mov qword [rsp + 0x238], rdx
and rbx, 0xffffffffffffffe0
mov qword [rsp + 0x240], r8
mov qword [rsp + 0x248], r9
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0xa8], 0
mov qword [rsp + 0xb0], 0
mov qword [rsp + 0xb8], 0
mov byte [rsp + 0xc0], 0
cmp r9, 0xffffffe
ja 0x457a18
mov rcx, qword [rsp + 0x260]
call sym.BN_CTX_start
cmp qword [rsp + 0x240], 0
je 0x457900
mov rcx, qword [rsp + 0x230]
call sym.EC_GROUP_get0_generator
mov rdi, rax
test rax, rax
je 0x458aa0
mov rax, qword [rsp + 0x230]
mov rsi, qword [rax + 0xa0]
test rsi, rsi
je 0x4584df
mov rcx, rax
call sym.EC_POINT_new
mov r12, rax
test rax, rax
je 0x457868
mov rdx, qword [rsi + 0x10]
mov r8d, 1
mov rcx, rbx
call sym.ecp_nistz256_gather_w7
mov rcx, qword [r12 + 0x10]
mov r8d, 4
mov rdx, rbx
call sym.bn_set_words
test eax, eax
jne 0x458470
mov rcx, r12
call sym.EC_POINT_free
mov qword [rsp + 0x48], 0
xor r12d, r12d
mov qword [rsp + 0x240], 0
mov rcx, qword [rsp + 0x260]
call sym.BN_CTX_end
mov rcx, qword [rsp + 0x48]
mov r8d, 0x53f
lea rdx, str.crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x240]
mov r8d, 0x540
lea rdx, str.crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
nop
movups xmm6, xmmword [rsp + 0x1a0]
mov eax, r12d
movups xmm7, xmmword [rsp + 0x1b0]
movups xmm8, xmmword [rsp + 0x1c0]
movups xmm9, xmmword [rsp + 0x1d0]
add rsp, 0x1e8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp qword [rsp + 0x248], 0
jne 0x457a48
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x240], 0
mov rax, qword [rsp + 0x238]
mov r8d, 4
mov rdx, rbx
mov rcx, qword [rax + 0x10]
call sym.bn_set_words
mov r12d, eax
test eax, eax
je 0x457880
mov rax, qword [rsp + 0x238]
lea rdx, [rbx + 0x20]
mov r8d, 4
mov rcx, qword [rax + 0x18]
call sym.bn_set_words
mov r12d, eax
test eax, eax
je 0x457880
mov rax, qword [rsp + 0x238]
lea rdx, [rbx + 0x40]
mov r8d, 4
mov rcx, qword [rax + 0x20]
call sym.bn_set_words
mov r12d, eax
test eax, eax
je 0x457880
mov rax, qword [rsp + 0x238]
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 0x4579fd
movabs rdx, 0xffffffff00000000
mov rax, qword [rbx]
xor rdx, qword [rbx + 8]
xor rax, 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 rsi, qword [rsp + 0x238]
mov r12d, 1
mov dword [rsi + 0x28], eax
jmp 0x457880
mov dword [rsp + 0x20], 0x477
lea r9, str.crypto_ec_ecp_nistz256.c
mov r8d, 0x41
xor r12d, r12d
mov edx, 0xf1
mov ecx, 0x10
call sym.ERR_put_error
jmp 0x4578bf
mov qword [rsp + 0x48], 0
mov rsi, rbx
mov dword [rsp + 0x84], 1
mov rax, qword [rsp + 0x248]
shl rax, 4
add rax, 6
cmp rax, 0x1555555
ja 0x4583e0
mov rax, qword [rsp + 0x248]
mov r8d, 0x257
lea rdx, str.crypto_ec_ecp_nistz256.c
lea r10, [rax + rax*2]
shl r10, 9
lea rcx, [r10 + 0x220]
mov r13, r10
call sym.CRYPTO_malloc
mov qword [rsp + 0x70], rax
test rax, rax
je 0x4583e0
mov rax, qword [rsp + 0x248]
mov r8d, 0x259
lea rdx, str.crypto_ec_ecp_nistz256.c
shl rax, 5
add rax, qword [rsp + 0x248]
mov rcx, rax
mov qword [rsp + 0x38], rax
call sym.CRYPTO_malloc
mov qword [rsp + 0x50], rax
test rax, rax
je 0x4583f2
mov rax, qword [rsp + 0x248]
mov r8d, 0x25a
lea rdx, str.crypto_ec_ecp_nistz256.c
lea rcx, [rax*8]
call sym.CRYPTO_malloc
mov qword [rsp + 0x58], rax
test rax, rax
je 0x4583f2
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x40], rsi
xor ebp, ebp
mov qword [rsp + 0x78], rbx
mov r12, qword [rsp + 0x250]
and rax, 0xffffffffffffffc0
lea rdi, [rax + 0x40]
mov rax, qword [rsp + 0x50]
add r13, rdi
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x30], rax
lea rax, [r13 + 0x20]
mov qword [rsp + 0x88], rdi
mov qword [rsp + 0x60], rax
nop dword [rax]
mov rax, qword [rsp + 0x258]
mov rcx, qword [rax + rbp*8]
call sym.BN_num_bits
cmp eax, 0x100
jg 0x458330
mov rax, qword [rsp + 0x258]
mov rcx, qword [rax + rbp*8]
call sym.BN_is_negative
test eax, eax
jne 0x458330
mov rax, qword [rsp + 0x258]
mov rsi, qword [rsp + 0x58]
mov rax, qword [rax + rbp*8]
lea rbx, [rsi + rbp*8]
mov qword [rsi + rbp*8], rax
mov rcx, qword [rbx]
mov r14, qword [rsp + 0x30]
xor esi, esi
call sym.bn_get_top
shl eax, 3
cmp esi, eax
jge 0x457c52
nop dword [rax]
mov rcx, qword [rbx]
add r14, 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 [r14 - 8], al
shr rdx, 8
mov byte [r14 - 7], dl
mov rdx, rax
shr rdx, 0x10
mov byte [r14 - 6], dl
mov rdx, rax
shr rdx, 0x18
mov byte [r14 - 5], dl
mov rdx, rax
shr rdx, 0x20
mov byte [r14 - 4], dl
mov rdx, rax
shr rdx, 0x28
mov byte [r14 - 3], dl
mov rdx, rax
shr rax, 0x38
shr rdx, 0x30
mov byte [r14 - 1], al
mov byte [r14 - 2], dl
mov rcx, qword [rbx]
call sym.bn_get_top
shl eax, 3
cmp esi, eax
jl 0x457bd8
cmp esi, 0x20
jg 0x457c8b
mov eax, 0x20
movsxd r8, esi
add r8, qword [rsp + 0x30]
sub eax, esi
add rax, 1
cmp eax, 8
jae 0x458390
test al, 4
jne 0x458ae8
test eax, eax
je 0x457c8b
mov byte [r8], 0
test al, 2
jne 0x458b4b
mov rax, qword [r12 + rbp*8]
mov r8d, 4
mov rcx, r13
mov rdx, qword [rax + 0x10]
call sym.bn_copy_words
test eax, eax
je 0x458a70
mov rax, qword [r12 + rbp*8]
mov rcx, qword [rsp + 0x60]
mov r8d, 4
mov rdx, qword [rax + 0x18]
call sym.bn_copy_words
test eax, eax
je 0x458a70
mov rax, qword [r12 + rbp*8]
lea rcx, [r13 + 0x40]
mov r8d, 4
mov rdx, qword [rax + 0x20]
call sym.bn_copy_words
test eax, eax
je 0x458a70
lea r15, [r13 + 0x60]
mov r8d, 1
mov rcx, rdi
mov rdx, r13
call sym.ecp_nistz256_scatter_w5
mov rdx, r13
mov rcx, r15
lea rbx, [r13 + 0xc0]
call sym.ecp_nistz256_point_double
mov rcx, rdi
mov r8d, 2
mov rdx, r15
call sym.ecp_nistz256_scatter_w5
mov r8, r13
mov rdx, r15
mov rcx, rbx
call sym.ecp_nistz256_point_add
mov r8d, 3
mov rcx, rdi
mov rdx, rbx
call sym.ecp_nistz256_scatter_w5
mov rdx, r15
mov rcx, r15
add rbp, 1
call sym.ecp_nistz256_point_double
mov r8d, 4
mov rcx, rdi
mov rdx, r15
call sym.ecp_nistz256_scatter_w5
mov rdx, rbx
mov rcx, rbx
lea rsi, [r13 + 0x120]
call sym.ecp_nistz256_point_double
mov rcx, rdi
mov rdx, rbx
mov r8d, 6
call sym.ecp_nistz256_scatter_w5
mov r8, r13
mov rdx, r15
mov rcx, rsi
call sym.ecp_nistz256_point_add
lea r14, [r13 + 0x180]
mov rcx, rdi
mov rdx, rsi
mov r8d, 5
call sym.ecp_nistz256_scatter_w5
mov r8, r13
mov rdx, rbx
mov rcx, r14
call sym.ecp_nistz256_point_add
mov r8d, 7
mov rcx, rdi
mov rdx, r14
call sym.ecp_nistz256_scatter_w5
mov rdx, r15
mov rcx, r15
call sym.ecp_nistz256_point_double
mov r8d, 8
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, 0xc
mov rcx, rdi
mov rdx, rbx
call sym.ecp_nistz256_scatter_w5
mov rdx, rsi
mov rcx, rsi
call sym.ecp_nistz256_point_double
mov r8d, 0xa
mov rcx, rdi
mov rdx, rsi
call sym.ecp_nistz256_scatter_w5
mov rdx, r14
mov rcx, r14
call sym.ecp_nistz256_point_double
mov rcx, rdi
mov r8d, 0xe
mov rdx, r14
call sym.ecp_nistz256_scatter_w5
mov r8, r13
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_add
mov rcx, rdi
mov r8d, 0xd
mov rdx, rbx
call sym.ecp_nistz256_scatter_w5
mov r8, r13
mov rdx, rsi
mov rcx, rsi
call sym.ecp_nistz256_point_add
mov rcx, rdi
mov r8d, 0xb
mov rdx, rsi
call sym.ecp_nistz256_scatter_w5
mov r8, r13
mov rdx, r14
mov rcx, r14
call sym.ecp_nistz256_point_add
mov rcx, rdi
mov r8d, 0xf
mov rdx, r14
call sym.ecp_nistz256_scatter_w5
mov r8, r13
mov rdx, r15
mov rcx, rbx
call sym.ecp_nistz256_point_add
mov r8d, 9
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, 0x10
mov rdx, r15
call sym.ecp_nistz256_scatter_w5
add rdi, 0x600
add qword [rsp + 0x30], 0x21
cmp rbp, qword [rsp + 0x248]
jb 0x457b70
mov rdi, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x68]
mov rcx, r13
lea r15, [r13 + 0x80]
mov rsi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x78]
pxor xmm9, xmm9
pcmpeqd xmm8, xmm8
movzx eax, byte [rdi + 0x1f]
mov r14, rsi
mov r8d, eax
shr eax, 7
shr r8d, 6
and r8d, 1
add r8d, eax
call sym.ecp_nistz256_gather_w5
movdqu xmm7, xmmword [r13]
mov rax, qword [rsp + 0x38]
mov dword [rsp + 0x30], 0xff
mov qword [rsp + 0x98], rbx
movups xmmword [rsi], xmm7
movdqu xmm7, xmmword [r13 + 0x10]
add rax, rdi
mov qword [rsp + 0x78], rax
movups xmmword [rsi + 0x10], xmm7
movdqu xmm7, xmmword [r13 + 0x20]
movups xmmword [rsi + 0x20], xmm7
movdqu xmm7, xmmword [r13 + 0x30]
movups xmmword [rsi + 0x30], xmm7
movdqu xmm7, xmmword [r13 + 0x40]
movups xmmword [rsi + 0x40], xmm7
movdqu xmm7, xmmword [r13 + 0x50]
movups xmmword [rsi + 0x50], xmm7
movdqu xmm7, xmmword [0x005d7f20]
mov rsi, qword [rsp + 0x60]
nop dword [rax]
xor eax, eax
cmp dword [rsp + 0x30], 0xff
sete al
cmp rax, qword [rsp + 0x248]
jae 0x45812c
mov edi, dword [rsp + 0x30]
mov r9, rax
lea r11, [rax + rax]
shl r9, 5
sub edi, 1
add r9, rax
add rax, r11
mov ebx, edi
and edi, 7
shl rax, 9
shr ebx, 3
mov dword [rsp + 0x38], edi
mov rdi, qword [rsp + 0x50]
add r9, rbx
lea ebp, [rbx + 1]
lea r12, [rdi + r9]
mov rdi, qword [rsp + 0x68]
add rdi, rax
mov rax, qword [rsp + 0x78]
add rax, rbx
mov qword [rsp + 0x40], rax
mov rax, rbp
mov rbp, rdi
mov rdi, r12
mov r12, rax
nop dword [rax + rax]
mov rax, rdi
movzx r11d, byte [rdi]
movzx ecx, byte [rsp + 0x38]
add rdi, 0x21
sub rax, rbx
movzx r8d, byte [rax + r12]
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, r13
mov eax, r8d
and r8d, 1
shr eax, 1
add r8d, eax
lea eax, [rdx + r8*2]
and r8d, 0x7fffffff
mov rdx, rbp
add rbp, 0x600
movd xmm6, eax
call sym.ecp_nistz256_gather_w5
mov rdx, rsi
mov rcx, r15
call sym.ecp_nistz256_neg
pshufd xmm0, xmm6, 0
mov r8, r13
mov rdx, r14
pand xmm0, xmm7
pxor xmm2, xmm2
movdqu xmm1, xmm8
mov rcx, r14
movdqu xmm3, xmm0
movdqu xmm4, xmm2
punpckhdq xmm0, xmm9
movdqu xmm6, xmmword [r13 + 0x30]
psubq xmm4, xmm0
paddq xmm1, xmm0
punpckldq xmm3, xmm9
movdqu xmm5, xmmword [r13 + 0x90]
movdqu xmm0, xmm4
pand xmm1, xmm6
movdqu xmm4, xmmword [r13 + 0x20]
psubq xmm2, xmm3
movdqu xmm6, xmmword [r13 + 0x80]
pand xmm0, xmm5
pxor xmm0, xmm1
movdqu xmm1, xmm8
paddq xmm1, xmm3
pand xmm2, xmm6
movups xmmword [r13 + 0x30], xmm0
pand xmm1, xmm4
pxor xmm1, xmm2
movups xmmword [r13 + 0x20], xmm1
call sym.ecp_nistz256_point_add
cmp rdi, qword [rsp + 0x40]
jne 0x458010
mov rdx, r14
mov rcx, r14
sub dword [rsp + 0x30], 5
mov edi, dword [rsp + 0x30]
call sym.ecp_nistz256_point_double
mov rdx, r14
mov rcx, r14
call sym.ecp_nistz256_point_double
mov rdx, r14
mov rcx, r14
call sym.ecp_nistz256_point_double
mov rdx, r14
mov rcx, r14
call sym.ecp_nistz256_point_double
mov rdx, r14
mov rcx, r14
call sym.ecp_nistz256_point_double
test edi, edi
jne 0x457f98
mov rsi, r14
mov r14, qword [rsp + 0x60]
xor ebp, ebp
mov edi, 0x3f
mov rbx, qword [rsp + 0x98]
mov r12, qword [rsp + 0x90]
pxor xmm8, xmm8
pcmpeqd xmm6, xmm6
mov qword [rsp + 0x30], rbx
mov rbx, qword [rsp + 0x88]
nop dword [rax]
movzx r8d, byte [r12]
add rbp, 1
add r12, 0x21
add r8d, r8d
mov r11d, r8d
mov r8d, edi
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, r13
mov eax, r8d
and r8d, 1
shr eax, 1
add r8d, eax
lea eax, [rdx + r8*2]
and r8d, 0x7fffffff
mov rdx, rbx
add rbx, 0x600
movd xmm9, eax
call sym.ecp_nistz256_gather_w5
mov rdx, r14
mov rcx, r15
call sym.ecp_nistz256_neg
movdqu xmm1, xmm6
pxor xmm2, xmm2
mov r8, r13
pshufd xmm0, xmm9, 0
movdqu xmm4, xmmword [r13 + 0x30]
mov rdx, rsi
mov rcx, rsi
pand xmm0, xmm7
movdqu xmm3, xmm0
punpckhdq xmm0, xmm8
paddq xmm1, xmm0
punpckldq xmm3, xmm8
pand xmm1, xmm4
movdqu xmm4, xmm2
psubq xmm2, xmm3
psubq xmm4, xmm0
movdqu xmm0, xmm4
movdqu xmm4, xmmword [r13 + 0x90]
pand xmm0, xmm4
movdqu xmm4, xmmword [r13 + 0x20]
pxor xmm0, xmm1
movdqu xmm1, xmm6
paddq xmm1, xmm3
movups xmmword [r13 + 0x30], xmm0
pand xmm1, xmm4
movdqu xmm4, xmmword [r13 + 0x80]
pand xmm2, xmm4
pxor xmm1, xmm2
movups xmmword [r13 + 0x20], xmm1
call sym.ecp_nistz256_point_add
cmp rbp, qword [rsp + 0x248]
jb 0x4581b0
mov rcx, qword [rsp + 0x70]
mov r8d, 0x2eb
mov rbx, qword [rsp + 0x30]
lea rdx, str.crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x50]
mov r8d, 0x2ec
lea rdx, str.crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x58]
mov r8d, 0x2ed
lea rdx, str.crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov eax, dword [rsp + 0x84]
test eax, eax
jne 0x457924
mov r8, rsi
mov rdx, rbx
mov rcx, rbx
call sym.ecp_nistz256_point_add
jmp 0x457924
mov rcx, qword [rsp + 0x260]
call sym.BN_CTX_get
mov rsi, rax
test rax, rax
je 0x45841f
mov rax, qword [rsp + 0x258]
mov r9, qword [rsp + 0x260]
mov rcx, rsi
mov rdx, qword [rax + rbp*8]
mov rax, qword [rsp + 0x230]
mov r8, qword [rax + 0x10]
call sym.BN_nnmod
test eax, eax
je 0x458b5a
mov rax, qword [rsp + 0x58]
mov qword [rax + rbp*8], rsi
lea rbx, [rax + rbp*8]
jmp 0x457bbe
mov edx, eax
mov qword [r8], 0
mov qword [r8 + rdx - 8], 0
lea rdx, [r8 + 8]
and rdx, 0xfffffffffffffff8
sub r8, rdx
add r8d, eax
and r8d, 0xfffffff8
cmp r8d, 8
jb 0x457c8b
and r8d, 0xfffffff8
xor eax, eax
mov ecx, eax
add eax, 8
mov qword [rdx + rcx], 0
cmp eax, r8d
jb 0x4583c4
jmp 0x457c8b
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x50], 0
mov r8d, 0x41
mov edx, 0xf2
mov ecx, 0x10
mov dword [rsp + 0x20], 0x25b
lea r9, str.crypto_ec_ecp_nistz256.c
call sym.ERR_put_error
mov qword [rsp + 0x58], 0
mov rcx, qword [rsp + 0x70]
mov r8d, 0x2eb
lea rdx, str.crypto_ec_ecp_nistz256.c
xor r12d, r12d
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x50]
mov r8d, 0x2ec
lea rdx, str.crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
mov rcx, qword [rsp + 0x58]
mov r8d, 0x2ed
lea rdx, str.crypto_ec_ecp_nistz256.c
call sym.CRYPTO_free
jmp 0x457880
mov rcx, qword [r12 + 0x18]
lea rdx, [rbx + 0x20]
mov r8d, 4
call sym.bn_set_words
test eax, eax
je 0x457860
mov rcx, qword [r12 + 0x20]
mov r8d, 4
lea rdx, [0x005d7f00]
call sym.bn_set_words
test eax, eax
je 0x457860
mov dword [r12 + 0x28], 1
mov r9, qword [rsp + 0x260]
mov r8, r12
mov rdx, rdi
mov rcx, qword [rsp + 0x230]
call sym.EC_POINT_cmp
test eax, eax
je 0x458a50
mov rcx, r12
call sym.EC_POINT_free
mov rcx, rdi
call sym.ecp_nistz256_is_affine_G
test eax, eax
je 0x4588e0
mov r15, qword [0x00619d20]
mov rcx, qword [rsp + 0x240]
call sym.BN_num_bits
cmp eax, 0x100
jg 0x45851f
mov rcx, qword [rsp + 0x240]
call sym.BN_is_negative
test eax, eax
je 0x458a00
mov rcx, qword [rsp + 0x260]
call sym.BN_CTX_get
mov rbp, rax
test rax, rax
je 0x457868
mov rax, qword [rsp + 0x230]
mov r9, qword [rsp + 0x260]
mov rcx, rbp
mov rdx, qword [rsp + 0x240]
mov r8, qword [rax + 0x10]
call sym.BN_nnmod
mov r12d, eax
test eax, eax
je 0x458a0d
lea r12, [rsp + 0xa0]
xor edi, edi
mov r14, r12
jmp 0x4585eb
mov rcx, rbp
add r14, 8
call sym.bn_get_words
mov r8, rax
mov eax, edi
add edi, 8
sar eax, 3
cdqe
mov rax, qword [r8 + rax*8]
mov rdx, rax
mov byte [r14 - 8], al
shr rdx, 8
mov byte [r14 - 7], dl
mov rdx, rax
shr rdx, 0x10
mov byte [r14 - 6], dl
mov rdx, rax
shr rdx, 0x18
mov byte [r14 - 5], dl
mov rdx, rax
shr rdx, 0x20
mov byte [r14 - 4], dl
mov rdx, rax
shr rdx, 0x28
mov byte [r14 - 3], dl
mov rdx, rax
shr rax, 0x38
mov byte [r14 - 1], al
shr rdx, 0x30
mov byte [r14 - 2], dl
mov rcx, rbp
call sym.bn_get_top
shl eax, 3
cmp eax, edi
jg 0x458580
mov eax, 0x20
xor ecx, ecx
sub eax, edi
movsxd rdi, edi
add rax, 1
add rdi, r12
cmp eax, 8
jae 0x4589b0
test al, 4
jne 0x458b83
test eax, eax
je 0x45862d
mov byte [rdi], 0
test al, 2
jne 0x458b98
mov ecx, 0xff
mov r14d, 6
lea rsi, [rbx + 0x60]
movzx r10d, byte [rsp + 0xa0]
lea r12, [rbx + 0x80]
pxor xmm9, xmm9
pcmpeqd xmm8, xmm8
lea r8d, [r10 + r10]
mov dword [rsp + 0x30], r10d
lea rbp, [rbx + 0xa0]
movzx r9d, r8b
mov eax, r9d
sub ecx, r9d
shr eax, 7
mov edx, eax
lea r8d, [rax - 1]
neg edx
and r8d, r9d
and ecx, edx
and edx, 1
or r8d, ecx
mov rcx, rbx
mov eax, r8d
and r8d, 1
shr eax, 1
add r8d, eax
lea edi, [rdx + r8*2]
and r8d, 0x7fffffff
mov rdx, r15
call sym.ecp_nistz256_gather_w7
lea rdx, [rbx + 0x20]
lea rcx, [rbx + 0x40]
call sym.ecp_nistz256_neg
mov r11d, edi
mov r9, qword [rbx + 0x40]
mov rax, qword [rbx + 0x20]
and r11d, 1
mov r8, qword [rbx + 0x48]
mov rcx, qword [rbx + 0x50]
mov edi, 0xff
mov rdx, r11
sub r11, 1
mov r10d, dword [rsp + 0x30]
movdqu xmm7, xmmword [0x005d7f20]
neg rdx
and rax, r11
and r9, rdx
and r8, rdx
and rcx, rdx
xor r9, rax
mov rax, qword [rbx + 0x28]
mov qword [rbx + 0x20], r9
and rax, r11
xor r8, rax
mov rax, qword [rbx + 0x30]
mov qword [rbx + 0x28], r8
and rax, r11
and r11, qword [rbx + 0x38]
xor rcx, rax
mov rax, qword [rbx + 0x58]
mov qword [rbx + 0x30], rcx
and rax, rdx
xor rax, r11
mov rdx, rax
mov qword [rbx + 0x38], rax
mov rax, qword [rbx]
or rax, qword [rbx + 8]
or rax, qword [rbx + 0x10]
or rax, qword [rbx + 0x18]
or rax, r9
or rax, r8
add r15, 0x1000
or rax, rcx
or rax, rdx
mov rdx, rax
neg rdx
or rax, rdx
cqo
shr rax, 0x3f
mov qword [rbx + 0x40], rax
movabs rax, 0xffffffff00000000
and rax, rdx
mov qword [rbx + 0x50], rdx
and edx, 0xfffffffe
mov qword [rbx + 0x58], rdx
mov edx, r10d
mov qword [rbx + 0x48], rax
jmp 0x458796
mov eax, r14d
shr eax, 3
movzx edx, byte [rsp + rax + 0xa0]
mov ecx, r14d
shr ecx, 3
add ecx, 1
movzx r8d, byte [rsp + rcx + 0xa0]
mov ecx, r14d
add r14d, 7
and ecx, 7
shl r8d, 8
or r8d, edx
shr r8d, cl
movzx edx, r8b
mov r8d, edi
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, r15
add r15, 0x1000
and r9d, ecx
and ecx, 1
or r8d, r9d
mov eax, r8d
and r8d, 1
shr eax, 1
add r8d, eax
lea r13d, [rcx + r8*2]
and r8d, 0x7fffffff
mov rcx, rsi
call sym.ecp_nistz256_gather_w7
mov rdx, r12
mov rcx, rbp
call sym.ecp_nistz256_neg
movd xmm5, r13d
mov r8, rsi
mov rdx, rbx
pshufd xmm0, xmm5, 0
pxor xmm1, xmm1
movdqu xmm2, xmm8
mov rcx, rbx
pand xmm0, xmm7
movdqu xmm5, xmm1
movdqu xmm3, xmm0
punpckhdq xmm0, xmm9
psubq xmm5, xmm0
paddq xmm2, xmm0
movdqu xmm0, xmmword [rbx + 0xb0]
pand xmm2, xmmword [rbx + 0x90]
punpckldq xmm3, xmm9
pand xmm0, xmm5
psubq xmm1, xmm3
pand xmm1, xmmword [rbx + 0xa0]
pxor xmm0, xmm2
movdqu xmm2, xmm8
paddq xmm2, xmm3
pand xmm2, xmmword [rbx + 0x80]
movups xmmword [rbx + 0x90], xmm0
pxor xmm1, xmm2
movups xmmword [rbx + 0x80], xmm1
call sym.ecp_nistz256_point_add_affine
cmp r14d, 0x102
jne 0x458788
cmp qword [rsp + 0x248], 0
je 0x45790f
mov dword [rsp + 0x84], 0
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x240], 0
jmp 0x457a5f
add qword [rsp + 0x248], 1
mov rax, qword [rsp + 0x248]
mov r8d, 0x511
lea rdx, str.crypto_ec_ecp_nistz256.c
lea rbp, [rax*8]
mov rcx, rbp
call sym.CRYPTO_malloc
mov rsi, rax
test rax, rax
je 0x458b00
mov r8d, 0x517
lea rdx, str.crypto_ec_ecp_nistz256.c
mov rcx, rbp
call sym.CRYPTO_malloc
mov qword [rsp + 0x48], rax
test rax, rax
je 0x458b17
mov rdx, qword [rsp + 0x258]
lea r12, [rbp - 8]
mov rcx, rsi
mov r8, r12
call sym.memcpy
mov rax, qword [rsp + 0x240]
mov r15, qword [rsp + 0x48]
mov r8, r12
mov rdx, qword [rsp + 0x250]
mov qword [rsi + rbp - 8], rax
mov rcx, r15
call sym.memcpy
mov qword [rsp + 0x258], rsi
mov qword [rsp + 0x240], rsi
mov rsi, rbx
mov qword [r15 + rbp - 8], rdi
mov qword [rsp + 0x250], r15
mov dword [rsp + 0x84], 1
jmp 0x457a5f
mov edx, eax
mov qword [rdi], 0
mov qword [rdi + rdx - 8], 0
lea rdx, [rdi + 8]
and rdx, 0xfffffffffffffff8
sub rdi, rdx
add eax, edi
and eax, 0xfffffff8
cmp eax, 8
jb 0x45862d
and eax, 0xfffffff8
xor r8d, r8d
mov r9d, r8d
add r8d, 8
mov qword [rdx + r9], rcx
cmp r8d, eax
jb 0x4589e1
jmp 0x45862d
mov rbp, qword [rsp + 0x240]
jmp 0x458567
mov r8d, 3
mov edx, 0xf1
mov ecx, 0x10
mov dword [rsp + 0x20], 0x4ae
lea r9, str.crypto_ec_ecp_nistz256.c
call sym.ERR_put_error
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x240], 0
jmp 0x457880
mov r15, qword [rsi + 0x10]
mov rcx, r12
call sym.EC_POINT_free
test r15, r15
jne 0x4584f6
jmp 0x4584df
mov r8d, 0x92
mov edx, 0xf2
mov ecx, 0x10
mov dword [rsp + 0x20], 0x288
lea r9, str.crypto_ec_ecp_nistz256.c
call sym.ERR_put_error
jmp 0x45841f
mov dword [rsp + 0x20], 0x480
lea r9, str.crypto_ec_ecp_nistz256.c
mov r8d, 0x71
mov edx, 0xf1
mov ecx, 0x10
xor r12d, r12d
call sym.ERR_put_error
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x240], 0
jmp 0x457880
mov eax, eax
mov dword [r8], 0
mov dword [r8 + rax - 4], 0
jmp 0x457c8b
mov dword [rsp + 0x20], 0x513
lea r9, str.crypto_ec_ecp_nistz256.c
mov r8d, 0x41
jmp 0x458ab5
mov dword [rsp + 0x20], 0x519
lea r9, str.crypto_ec_ecp_nistz256.c
mov r8d, 0x41
xor r12d, r12d
mov edx, 0xf1
mov ecx, 0x10
call sym.ERR_put_error
mov qword [rsp + 0x240], rsi
jmp 0x457880
mov eax, eax
xor edx, edx
mov word [r8 + rax - 2], dx
jmp 0x457c8b
mov r8d, 3
mov edx, 0xf2
mov ecx, 0x10
mov dword [rsp + 0x20], 0x26c
lea r9, str.crypto_ec_ecp_nistz256.c
call sym.ERR_put_error
jmp 0x45841f
mov edx, eax
mov dword [rdi], 0
mov dword [rdi + rdx - 4], 0
jmp 0x45862d
mov edx, eax
xor ecx, ecx
mov word [rdi + rdx - 2], cx
jmp 0x45862d