Function at 0x84d3c0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
mov rsi, qword [rsp + 0x1e0]
mov rbp, qword [rsp + 0x1e8]
mov r12, rcx
mov r13, rdx
mov rcx, r8
mov edx, 4
mov rbx, r8
mov rdi, r9
call fcn.00752c00
test eax, eax
jne 0x84d411
mov edx, 4
mov rcx, r13
call fcn.00752c00
test eax, eax
je 0x84d445
mov r9, rdi
mov r8, rbx
mov rdx, r13
mov rcx, r12
mov qword [rsp + 0x1e8], rbp
mov qword [rsp + 0x1e0], rsi
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.0084c230
mov edx, 4
mov rcx, rdi
call fcn.00752c00
test eax, eax
jne 0x84d411
mov rcx, rdi
call fcn.00752ad0
test eax, eax
je 0x84d682
mov rcx, rbx
call fcn.00751330
mov r15d, eax
test eax, eax
je 0x84d730
mov rcx, rsi
call fcn.0084aba0
mov rcx, rsi
call fcn.0084ad70
mov rcx, rsi
mov qword [rsp + 0x40], rax
call fcn.0084ad70
mov rcx, rsi
mov qword [rsp + 0x48], rax
call fcn.0084ad70
mov r14, rax
mov qword [rsp + 0x70], rax
test rax, rax
je 0x84d775
mov qword [rsp + 0x38], rbp
test rbp, rbp
je 0x84d6da
mov eax, dword [r13 + 0x10]
test eax, eax
je 0x84d6c2
mov rdx, r13
mov r9, rsi
mov r8, rdi
mov rcx, r14
call fcn.00850010
mov r13, r14
test eax, eax
je 0x84d674
mov r8, qword [rsp + 0x38]
mov r9, rsi
mov rdx, r13
mov rcx, r14
call fcn.00753500
test eax, eax
je 0x84d674
cmp r15d, 0x29f
jg 0x84d79a
cmp r15d, 0xef
jg 0x84d785
cmp r15d, 0x4f
jg 0x84d7b6
cmp r15d, 0x17
jle 0x84d967
mov dword [rsp + 0x50], 4
mov dword [rsp + 0x5c], 3
mov qword [rsp + 0x20], rsi
mov r9, qword [rsp + 0x38]
mov r8, r14
mov rdx, r14
mov rcx, qword [rsp + 0x40]
call fcn.007532c0
test eax, eax
je 0x84d674
mov dword [rsp + 0x60], r15d
mov r15d, dword [rsp + 0x50]
lea r13, [rsp + 0x70]
mov r14d, 1
mov qword [rsp + 0x50], r12
mov r12, qword [rsp + 0x38]
mov qword [rsp + 0x68], rbx
mov rbx, qword [rsp + 0x40]
nop
mov rcx, rsi
call fcn.0084ad70
mov qword [r13 + 8], rax
test rax, rax
je 0x84d7af
mov qword [rsp + 0x20], rsi
mov rdx, qword [r13]
mov r9, r12
mov r8, rbx
mov rcx, rax
call fcn.007532c0
test eax, eax
je 0x84d674
add r14d, 1
add r13, 8
cmp r14d, r15d
jl 0x84d590
mov r15d, dword [rsp + 0x60]
mov r12, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x68]
movsxd rdx, dword [rdi + 8]
mov rax, qword [rdi]
cmp qword [rax + rdx*8 - 8], 0
mov r13, rdx
js 0x84d7d2
call fcn.00751250
mov r8, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x48]
mov r9, rsi
mov rdx, rax
call fcn.00753500
test eax, eax
je 0x84d674
mov qword [rsp + 0x50], r12
sub r15d, 1
mov r13d, 1
mov qword [rsp + 0x40], rbp
mov edx, r15d
mov rcx, rbx
call fcn.007525a0
test eax, eax
jne 0x84d891
test r13d, r13d
je 0x84d932
test r15d, r15d
jne 0x84d95e
mov r12, qword [rsp + 0x50]
mov r8, qword [rsp + 0x38]
mov r9, rsi
mov rdx, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
mov rcx, r12
call fcn.00753420
test eax, eax
setne al
movzx eax, al
test rbp, rbp
jne 0x84d715
jmp 0x84d703
lea r9, str.crypto_bn_bn_exp.c
mov r8d, 0x66
mov edx, 0x6d
mov dword [rsp + 0x20], 0x13e
mov ecx, 3
mov dword [rsp + 0x38], eax
call fcn.00780b20
mov eax, dword [rsp + 0x38]
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, rdi
mov rcx, r13
call fcn.00752360
test eax, eax
jns 0x84d4ce
jmp 0x84d4ea
call fcn.00753650
mov qword [rsp + 0x38], rax
mov rcx, rax
test rax, rax
je 0x84d7cb
mov r8, rsi
mov rdx, rdi
call fcn.00753770
test eax, eax
jne 0x84d4c2
mov rcx, qword [rsp + 0x38]
mov dword [rsp + 0x40], eax
call fcn.00753720
mov eax, dword [rsp + 0x40]
mov rcx, rsi
mov dword [rsp + 0x38], eax
call fcn.0084acc0
mov eax, dword [rsp + 0x38]
jmp 0x84d6ae
mov edx, 1
mov rcx, rdi
call fcn.00752a20
test eax, eax
je 0x84d755
xor edx, edx
mov rcx, r12
call fcn.00751a30
mov eax, 1
jmp 0x84d6ae
mov edx, 1
mov rcx, r12
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.00751a30
mov qword [rsp + 0x38], 0
xor eax, eax
jmp 0x84d674
mov dword [rsp + 0x50], 0x10
mov dword [rsp + 0x5c], 5
jmp 0x84d543
mov dword [rsp + 0x50], 0x20
mov dword [rsp + 0x5c], 6
jmp 0x84d543
xor eax, eax
jmp 0x84d674
mov dword [rsp + 0x50], 8
mov dword [rsp + 0x5c], 4
jmp 0x84d543
xor eax, eax
jmp 0x84d703
mov r14, qword [rsp + 0x48]
mov rcx, r14
call fcn.00752c40
test rax, rax
je 0x84d7af
mov rdx, qword [rdi]
mov rcx, qword [r14]
mov rax, qword [rdx]
neg rax
mov qword [rcx], rax
cmp r13d, 1
jle 0x84d883
lea r9, [rdx + 8]
lea r8, [rcx + 0x18]
cmp r9, r8
lea r10, [rcx + 8]
lea r8, [rdx + 0x18]
setae r9b
cmp r10, r8
lea eax, [r13 - 2]
setae r8b
or r9b, r8b
je 0x84d9ba
cmp eax, 3
jbe 0x84d9ba
lea r9d, [r13 - 1]
mov eax, 8
pcmpeqd xmm1, xmm1
mov r8d, r9d
shr r8d, 1
shl r8, 4
add r8, 8
nop dword [rax]
movdqu xmm0, xmmword [rdx + rax]
pxor xmm0, xmm1
movups xmmword [rcx + rax], xmm0
add rax, 0x10
cmp rax, r8
jne 0x84d850
mov r8d, r9d
and r8d, 0xfffffffe
lea eax, [r8 + 1]
cmp r8d, r9d
je 0x84d883
cdqe
mov rdx, qword [rdx + rax*8]
not rdx
mov qword [rcx + rax*8], rdx
mov rax, qword [rsp + 0x48]
mov dword [rax + 8], r13d
jmp 0x84d614
mov eax, dword [rsp + 0x5c]
cmp eax, 1
je 0x84d9e8
test r15d, r15d
jle 0x84d9dc
mov qword [rsp + 0x60], rsi
lea r14d, [r15 + 1]
xor edi, edi
mov ebp, 1
mov r12d, 1
mov esi, r12d
mov r12d, eax
jmp 0x84d8ca
cmp esi, r14d
je 0x84d8ee
mov edx, r15d
mov rcx, rbx
sub edx, esi
call fcn.007525a0
test eax, eax
je 0x84d8e6
mov ecx, esi
sub ecx, edi
mov edi, esi
shl ebp, cl
or ebp, 1
add esi, 1
cmp esi, r12d
jne 0x84d8c5
mov rsi, qword [rsp + 0x60]
test r13d, r13d
je 0x84d974
mov eax, ebp
mov qword [rsp + 0x20], rsi
mov rcx, qword [rsp + 0x48]
sar eax, 1
mov r9, qword [rsp + 0x38]
cdqe
mov rdx, rcx
mov r8, qword [rsp + rax*8 + 0x70]
call fcn.007532c0
test eax, eax
je 0x84d954
add edi, 1
sub r15d, edi
js 0x84d64d
xor r13d, r13d
jmp 0x84d628
mov rcx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x20], rsi
mov r8, rcx
mov rdx, rcx
call fcn.007532c0
test eax, eax
jne 0x84d644
mov rbp, qword [rsp + 0x40]
jmp 0x84d674
sub r15d, 1
jmp 0x84d628
mov dword [rsp + 0x5c], 1
jmp 0x84d5e0
lea r14d, [rdi + 1]
mov dword [rsp + 0x60], edi
mov r12, qword [rsp + 0x48]
mov edi, r13d
mov r13, rbx
mov rbx, qword [rsp + 0x38]
mov qword [rsp + 0x20], rsi
mov r9, rbx
mov r8, r12
mov rdx, r12
mov rcx, r12
call fcn.007532c0
test eax, eax
je 0x84d954
add edi, 1
cmp r14d, edi
jne 0x84d98c
mov edi, dword [rsp + 0x60]
mov rbx, r13
jmp 0x84d8f8
lea r9, [rax + 2]
mov eax, 1
mov r8, qword [rdx + rax*8]
not r8
mov qword [rcx + rax*8], r8
add rax, 1
cmp rax, r9
jne 0x84d9c3
jmp 0x84d883
xor edi, edi
mov ebp, 1
jmp 0x84d8f3
mov ebp, 1
xor edi, edi
jmp 0x84d8f3