Function at 0x713b00
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x98
mov r13, r9
mov qword [rsp + 0xe0], rcx
mov rcx, r9
mov r14, rdx
mov rsi, r8
call sym.BN_CTX_start
mov rcx, r13
call sym.BN_CTX_get
mov rbx, rax
test rax, rax
jne 0x713b4c
jmp 0x713b79
mov rcx, rbx
call sym.BN_is_zero
test eax, eax
je 0x713ba0
mov rcx, rsi
call sym.BN_num_bits
mov qword [rsp + 0x28], r13
xor r9d, r9d
mov rcx, rbx
mov dword [rsp + 0x20], 0
lea edx, [rax - 1]
mov r8d, 0xffffffff
call sym.BN_priv_rand_ex
test eax, eax
jne 0x713b40
xor r12d, r12d
mov rcx, r13
call sym.BN_CTX_end
mov eax, r12d
add rsp, 0x98
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x20], r13
mov r9, rsi
mov r8, rbx
mov rdx, r14
mov rcx, qword [rsp + 0xe0]
mov r12d, eax
call sym.BN_GF2m_mod_mul
test eax, eax
je 0x713b79
mov rcx, r13
call sym.BN_CTX_start
mov rcx, r13
call sym.BN_CTX_get
mov rcx, r13
mov qword [rsp + 0x40], rax
call sym.BN_CTX_get
mov rcx, r13
mov qword [rsp + 0x50], rax
call sym.BN_CTX_get
mov rcx, r13
mov qword [rsp + 0x38], rax
call sym.BN_CTX_get
mov qword [rsp + 0x48], rax
test rax, rax
je 0x713c30
mov rdi, qword [rsp + 0x38]
mov rdx, qword [rsp + 0xe0]
mov r8, rsi
mov rcx, rdi
call sym.BN_GF2m_mod
test eax, eax
je 0x713c30
mov rcx, rdi
call sym.BN_is_zero
test eax, eax
je 0x713c3d
nop dword [rax + rax]
mov rcx, r13
call sym.BN_CTX_end
jmp 0x713b7c
mov r15, qword [rsp + 0x48]
mov rdx, rsi
mov rcx, r15
call sym.BN_copy
test rax, rax
je 0x713c30
mov rcx, rdi
call sym.BN_num_bits
mov rcx, r15
mov dword [rsp + 0x5c], eax
call sym.BN_num_bits
mov r15d, dword [rsi + 8]
mov rcx, rdi
mov dword [rsp + 0x60], eax
mov edx, r15d
mov dword [rsp + 0x58], r15d
call sym.bn_wexpand
test rax, rax
je 0x713c30
mov rax, rdi
mov r10d, dword [rsp + 0x5c]
mov rdi, qword [rdi]
movsxd rdx, dword [rax + 8]
cmp r15d, edx
jle 0x713cbf
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x5c], r10d
lea ecx, [rax - 1]
mov eax, ecx
lea rcx, [rdi + rdx*8]
sub eax, edx
xor edx, edx
lea r8, [rax*8 + 8]
call sym.memset
mov r10d, dword [rsp + 0x5c]
mov rdx, qword [rsp + 0x38]
mov eax, dword [rsp + 0x58]
mov dword [rsp + 0x5c], r10d
mov rcx, qword [rsp + 0x40]
mov dword [rdx + 8], eax
mov edx, eax
call sym.bn_wexpand
mov r10d, dword [rsp + 0x5c]
test rax, rax
je 0x713c30
mov r14, qword [rsp + 0x40]
mov r15d, dword [rsp + 0x58]
mov rbp, qword [r14]
mov qword [rbp], 1
cmp r15d, 1
jle 0x714120
lea r8d, [r15 - 1]
xor edx, edx
lea rcx, [rbp + 8]
mov dword [rsp + 0x88], r10d
mov dword [rsp + 0x5c], r8d
shl r8, 3
call sym.memset
mov dword [r14 + 8], r15d
mov rcx, qword [rsp + 0x50]
mov edx, r15d
call sym.bn_wexpand
mov r10d, dword [rsp + 0x88]
test rax, rax
je 0x713c30
mov rax, qword [rsp + 0x50]
mov r15, qword [rax]
mov eax, dword [rsp + 0x5c]
mov ecx, dword [rsp + 0x58]
mov dword [rsp + 0x88], r10d
test ecx, ecx
lea r8, [rax*8 + 8]
mov eax, 8
mov rcx, r15
cmovle r8, rax
xor edx, edx
call sym.memset
mov r10d, dword [rsp + 0x88]
mov eax, dword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0x80], rbx
mov dword [rsp + 0x8c], r12d
mov dword [rdx + 8], eax
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0xf0], rsi
mov esi, dword [rsp + 0x60]
mov r9, qword [rdx]
mov edx, eax
shr eax, 1
mov qword [rsp + 0xf8], r13
shl rax, 4
mov rcx, rax
mov eax, edx
and edx, 0xfffffffe
sub eax, 2
movsxd r14, edx
mov dword [rsp + 0x88], edx
mov r13, rcx
lea rdx, [rax*8 + 8]
add rax, 2
shl r14, 3
mov qword [rsp + 0x70], rdx
mov edx, dword [rsp + 0x5c]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x68], rdx
nop dword [rax + rax]
mov rcx, qword [rdi]
test r10d, r10d
je 0x714020
test cl, 1
je 0x71406a
cmp r10d, 0x40
jle 0x713f98
cmp r10d, esi
jge 0x713e6e
mov rdx, qword [rsp + 0x38]
mov rbx, qword [rsp + 0x40]
mov eax, r10d
mov r10d, esi
mov esi, eax
mov rbp, r15
mov rdi, r9
mov rax, rdx
mov r15, qword [rbx]
mov r9, qword [rdx]
mov rdx, qword [rsp + 0x48]
mov qword [rsp + 0x48], rax
mov rax, rbx
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x40], rbx
mov eax, dword [rsp + 0x58]
test eax, eax
jle 0x713f1f
lea rax, [r9 + 8]
lea rdx, [rdi + 0xf]
cmp rax, rdi
setne cl
cmp rax, rbp
setne al
and eax, ecx
cmp dword [rsp + 0x5c], 1
seta cl
and eax, ecx
lea rcx, [r15 + 8]
cmp rbp, rcx
setne cl
and eax, ecx
mov rcx, rdx
sub rcx, rbp
cmp rcx, 0x1e
seta cl
test al, cl
mov eax, 0
je 0x71403e
sub rdx, r15
cmp rdx, 0x1e
jbe 0x71403e
nop dword [rax]
movdqu xmm0, xmmword [rdi + rax]
movdqu xmm1, xmmword [r9 + rax]
pxor xmm0, xmm1
movups xmmword [rdi + rax], xmm0
movdqu xmm0, xmmword [rbp + rax]
movdqu xmm2, xmmword [r15 + rax]
pxor xmm0, xmm2
movups xmmword [rbp + rax], xmm0
add rax, 0x10
cmp r13, rax
jne 0x713ed0
mov ebx, dword [rsp + 0x58]
cmp dword [rsp + 0x88], ebx
je 0x713f1f
mov rax, qword [r9 + r14]
xor qword [rdi + r14], rax
mov rax, qword [r15 + r14]
xor qword [rbp + r14], rax
cmp r10d, esi
jne 0x713e08
mov edx, esi
lea eax, [rsi + 0x3e]
sub edx, 1
cmovns eax, edx
sar eax, 6
movsxd rdx, eax
mov ebx, eax
mov rcx, qword [rdi + rdx*8]
test rcx, rcx
jne 0x714165
test eax, eax
je 0x713f7b
lea ecx, [rax - 1]
sub rdx, 2
movsxd rax, ecx
mov ecx, ecx
sub rdx, rcx
jmp 0x713f6d
sub rax, 1
cmp rdx, rax
je 0x714111
mov rcx, qword [rdi + rax*8]
test rcx, rcx
je 0x713f60
mov ebx, eax
shl ebx, 6
mov qword [rsp + 0x60], r9
call sym.BN_num_bits_word
mov r9, qword [rsp + 0x60]
lea r10d, [rax + rbx]
jmp 0x713e08
cmp rcx, 1
jne 0x713e27
mov rdi, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x80]
mov r12d, dword [rsp + 0x8c]
mov rsi, qword [rsp + 0xf0]
mov rcx, rdi
mov r13, qword [rsp + 0xf8]
call sym.bn_correct_top
mov rcx, qword [rsp + 0xe0]
mov rdx, rdi
call sym.BN_copy
test rax, rax
je 0x713c30
mov rcx, r13
xor r12d, r12d
call sym.BN_CTX_end
mov qword [rsp + 0x20], r13
mov r9, rsi
mov r8, rbx
mov rdx, qword [rsp + 0xe0]
mov rcx, rdx
call sym.BN_GF2m_mod_mul
test eax, eax
setne r12b
jmp 0x713b7c
test rcx, rcx
jne 0x713f98
mov r13, qword [rsp + 0xf8]
mov rcx, r13
call sym.BN_CTX_end
jmp 0x713b79
mov rcx, qword [rsp + 0x68]
nop dword [rax + rax]
mov rdx, qword [r9 + rax*8]
xor qword [rdi + rax*8], rdx
mov rdx, qword [r15 + rax*8]
xor qword [rbp + rax*8], rdx
mov rdx, rax
add rax, 1
cmp rdx, rcx
jne 0x714048
jmp 0x713f1f
mov rax, qword [rsp + 0xf0]
mov r11, qword [rbp]
mov edx, dword [rsp + 0x5c]
mov rbx, qword [rax]
and r11d, 1
neg r11
mov r8, qword [rbx]
and r8, r11
xor r8, qword [rbp]
test edx, edx
jle 0x714118
mov qword [rsp + 0x60], r13
mov r12, qword [rsp + 0x78]
mov eax, 1
nop dword [rax]
mov rdx, rcx
mov rcx, qword [rdi + rax*8]
shr rdx, 1
mov r13, rcx
shl r13, 0x3f
or rdx, r13
mov qword [rdi + rax*8 - 8], rdx
mov rdx, r8
mov r8, qword [rbx + rax*8]
shr rdx, 1
and r8, r11
xor r8, qword [rbp + rax*8]
mov r13, r8
shl r13, 0x3f
or rdx, r13
mov qword [rbp + rax*8 - 8], rdx
add rax, 1
cmp rax, r12
jne 0x7140a8
mov rax, qword [rsp + 0x70]
mov r13, qword [rsp + 0x60]
lea rdx, [rdi + rax]
add rax, rbp
shr rcx, 1
shr r8, 1
sub r10d, 1
mov qword [rdx], rcx
mov qword [rax], r8
jmp 0x713e08
xor ebx, ebx
jmp 0x713f7b
mov rax, rbp
mov rdx, rdi
jmp 0x7140fc
mov rax, r14
mov r14d, dword [rsp + 0x58]
mov r15, qword [rsp + 0x50]
mov dword [rsp + 0x5c], r10d
mov dword [rax + 8], r14d
mov edx, r14d
mov rcx, r15
call sym.bn_wexpand
test rax, rax
je 0x713c30
cmp r14d, 1
mov r15, qword [r15]
mov r10d, dword [rsp + 0x5c]
je 0x71416d
lea eax, [r14 - 1]
mov dword [rsp + 0x5c], eax
jmp 0x713d88
shl ebx, 6
jmp 0x713f7b
mov dword [rsp + 0x5c], 0
jmp 0x713d53