Function at 0x1802055a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov rdi, rdx
mov rsi, rcx
mov eax, 0x30
call fcn.18045a590
sub rsp, rax
mov r12, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r13, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov r9, rsp
mov eax, 0x10
call fcn.18045a590
sub rsp, rax
mov rbx, rsp
mov eax, 0x20
call fcn.18045a590
sub rsp, rax
mov rdx, rsp
mov r15, rdi
add r15, 0x68
movzx eax, byte [rdi + 0x68]
test eax, eax
je 0x18020562c
jmp 0x18020561c
sub eax, 1
je 0x180205abc
jmp 0x180205627
jmp 0x18020574a
mov qword [rbp - 0x10], r8
mov qword [rbp - 8], r9
mov rax, qword [rdi]
mov qword [rdx], rax
mov rax, qword [rdi + 8]
mov qword [rdx + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [rdx + 0x10], rax
mov rax, qword [rdi + 0x18]
mov qword [rdx + 0x18], rax
sub rsp, 0x20
mov rcx, rbx
call fcn.18041bfa0
add rsp, 0x20
mov r9, qword [rbx]
mov eax, dword [0x18051b210]
imul eax, dword [0x18051b214]
or eax, 0x6bda022c
add eax, 0xdb770170
add eax, 0xac1137aa
cmp eax, 0x78c045c3
ja 0x180205af1
jmp 0x18020568e
mov eax, dword [0x18051b218]
or eax, dword [0x18051b21c]
xor eax, 0x8e102195
mov ecx, 0x9a71efda
xor edx, edx
div ecx
imul eax, eax, 0xbe5789d8
mov r14, qword [rbx + 8]
cmp eax, 0x6e353095
jae 0x18020568e
jmp 0x1802056bb
mov eax, dword [0x18051b220]
xor eax, dword [0x18051b224]
and eax, 0xf3c61602
add eax, 0x109539fe
or eax, 0xc0fce08f
cmp eax, 0x353ea478
jbe 0x180205afe
jmp 0x1802056e3
mov ecx, dword [0x18051b228]
and ecx, dword [0x18051b22c]
and ecx, 0xaadf58e3
or ecx, 0x8fb0e59a
and ecx, 0xca9693e9
cmp r9, 0xffffffffffffffff
sete al
cmp ecx, 0x3b12eea4
je 0x1802056e3
test al, 1
jne 0x180205738
jmp 0x180205716
mov rax, rdi
add rax, 0x20
mov qword [rdi + 0x20], r9
mov qword [rdi + 0x28], r14
mov qword [rbp], rax
mov rbx, rdi
add rbx, 0x60
mov byte [rbx], 0
jmp 0x1802057eb
cmp r14, 0
setne al
mov r12d, 2
jmp 0x180205a99
mov rbx, rdi
add rbx, 0x60
mov al, byte [rdi + 0x60]
mov rcx, rdi
add rcx, 0x20
test al, al
je 0x1802057d6
jmp 0x180205761
sub al, 1
je 0x1802058e0
jmp 0x18020576b
mov qword [rbp], rcx
mov rax, rdi
add rax, 0x58
mov ecx, dword [0x18051b230]
and ecx, dword [0x18051b234]
xor ecx, 0x1e54a968
xor ecx, 0xe6923f7a
sub ecx, 0xb90e1e51
cmp ecx, 0x8238dfa7
jae 0x180205b0b
jmp 0x1802057a2
mov ecx, dword [0x18051b238]
sub ecx, dword [0x18051b23c]
add ecx, 0xc66cd4e7
imul ecx, ecx, 0x4c8aba80
or ecx, 0xef09988b
mov rdx, qword [rax]
cmp ecx, 0x8566b53a
je 0x1802057a2
mov qword [rbp - 8], r9
jmp 0x1802057d1
jmp 0x1802058c6
mov qword [rbp - 8], r9
mov r9, qword [rcx]
mov qword [rbp - 0x10], r8
mov qword [rbp], rcx
mov r14, qword [rdi + 0x28]
jmp 0x1802057eb
sub rsp, 0x20
mov rcx, r12
mov rdx, r9
mov r8, r14
call fcn.180407670
add rsp, 0x20
mov rax, qword [r12]
mov r14, qword [r12 + 8]
cmp rax, 2
je 0x18020585f
add r12, 0x10
mov rcx, qword [r12]
mov qword [rbp - 0x38], rcx
mov rcx, qword [r12 + 8]
mov qword [rbp - 0x30], rcx
mov rcx, qword [r12 + 0x10]
mov qword [rbp - 0x28], rcx
mov r8, qword [rbp - 0x10]
mov rdx, rdi
add rdx, 0x30
mov qword [rdi + 0x30], rax
mov qword [rdi + 0x38], r14
mov rax, qword [rbp - 0x38]
mov qword [rdi + 0x40], rax
mov rax, qword [rbp - 0x30]
mov qword [rdi + 0x48], rax
mov rax, qword [rbp - 0x28]
mov qword [rdi + 0x50], rax
mov qword [rdi + 0x58], rdx
jmp 0x1802058c6
mov eax, dword [0x18051b240]
add eax, dword [0x18051b244]
and eax, 0xf73cf48c
mov ecx, 0xfc749884
xor edx, edx
div ecx
mov ecx, 0x9417b7f8
xor edx, edx
div ecx
cmp eax, 0x77e34df7
mov r8, qword [rbp - 8]
jae 0x180205b1c
jmp 0x180205893
mov eax, dword [0x18051b248]
xor eax, dword [0x18051b24c]
and eax, 0x1a4208d1
mov ecx, 0xcbc87b9
xor edx, edx
div ecx
mov ecx, 0xf17d0ae9
xor edx, edx
div ecx
cmp eax, 0xb4bfdd8
jae 0x180205893
mov rcx, qword [rbp]
jmp 0x1802059ca
lea rcx, [rbp - 0x48]
sub rsp, 0x20
call fcn.1804057c0
add rsp, 0x20
mov al, byte [rbp - 0x3f]
cmp al, 3
je 0x1802058f7
jmp 0x1802058e4
ud2
mov r14, qword [rbp - 0x48]
cmp al, 2
sete al
test al, 1
jne 0x1802059ae
jmp 0x1802058ff
mov byte [rbx], 3
jmp 0x180205ae6
mov rdx, rdi
add rdx, 0x30
mov rcx, rdi
add rcx, 0x48
mov rax, qword [rdi + 0x48]
cmp rax, 0xffffffffffffffff
sete al
test al, 1
jne 0x18020591e
jmp 0x180205922
ud2
mov qword [rbp - 0x20], rdx
mov eax, dword [0x18051b250]
add eax, dword [0x18051b254]
xor eax, 0x4bcb3b0
xor eax, 0x4ea5c91e
and eax, 0x4b53758a
cmp eax, 0x1e20f779
jbe 0x180205b2d
mov qword [rbp - 0x18], rcx
jmp 0x180205952
mov r12d, dword [0x18051b258]
sub r12d, dword [0x18051b25c]
xor r12d, 0x75379103
or r12d, 0xfd49ba4e
and r12d, 0xd3ce14f1
sub rsp, 0x20
call fcn.18041c0e0
add rsp, 0x20
mov r14, rdx
mov rcx, qword [rbp - 0x18]
cmp r12d, 0x1f95bd9e
jb 0x180205952
jmp 0x180205994
cmp rax, 0
sete al
test al, 1
jne 0x1802059a1
jmp 0x1802059ae
cmp r14, 0
sete al
test al, 1
jne 0x1802059ef
jmp 0x1802059ae
add rdi, 0x30
sub rsp, 0x20
mov rcx, rdi
call fcn.1802022e0
add rsp, 0x20
mov r8, qword [rbp - 8]
mov rcx, qword [rbp]
mov rax, qword [rbp - 0x60]
mov qword [r8], rax
mov rax, qword [rbp - 0x58]
mov qword [r8 + 8], rax
mov rax, qword [rbp - 0x50]
mov qword [r8 + 0x10], rax
mov byte [rbx], 1
mov r12d, 2
jmp 0x180205ac0
mov rax, qword [rbp - 0x20]
mov r12, qword [rax]
mov r14, qword [rdi + 0x38]
add rdi, 0x40
mov rax, qword [rdi]
mov r8, qword [rbp - 8]
mov qword [r8], rax
mov dword [rax], eax
mov rax, qword [rdi + 8]
mov qword [r8 + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [r8 + 0x10], rax
mov eax, dword [0x18051b260]
add eax, dword [0x18051b264]
imul eax, eax, 0x3fbe242f
and eax, 0x96f85696
mov ecx, 0x8963433e
xor edx, edx
div ecx
cmp eax, 0xbc7e3139
ja 0x180205b4d
jmp 0x180205a45
mov eax, dword [0x18051b268]
imul eax, dword [0x18051b26c]
mov ecx, 0x7e0a8dc3
xor edx, edx
div ecx
mov ecx, 0x1b122d75
xor edx, edx
div ecx
and eax, 0x1282a18d
mov byte [rbx], 1
cmp r12, 3
sete cl
cmp eax, 0xf53c65db
jae 0x180205a45
test cl, 1
mov rcx, qword [rbp]
jne 0x180205ae6
jmp 0x180205ac0
mov byte [r15], al
lea rsp, [rbp + 8]
lea esp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rsi], r12
mov qword [rsi + 8], r14
mov rax, qword [r13]
add byte [r8 - 0x77], r9b
adc byte [rcx - 0x75], r9b
or byte [r8 - 0x77], r9b
sbb byte [rcx - 0x75], r9b
invalid
invalid
mov eax, dword [rbp + 0x10]
mov qword [rsi + 0x20], rax
mov al, 1
jmp 0x180205a85
ud2
mov rax, qword [r8]
mov qword [r13], rax
mov rax, qword [r8 + 8]
mov qword [r13 + 8], rax
mov rax, qword [r8 + 0x10]
mov qword [r13 + 0x10], rax
sub rsp, 0x20
call fcn.180203d90
add rsp, 0x20
jmp 0x180205a99
mov qword [rsi], 3
mov al, 3
jmp 0x180205a85
pop rax
mov dword [rbp + rbp*4 - 0x7ad76b2d], esp
jmp 0x18020568c
xlatb
fld qword [rdi]
loopne 0x180205ab1
ficom dword [rdi - 0x4291623]
invalid
jmp qword [rdx + rbp]
and al, 0x2a
stosd dword [rdi], eax
xor eax, 0xc724a0b1
pop rcx
mov byte [rax - 0x37b168f], dh
invalid
invalid
mov byte [rax + 0x117eeb8], al
jg 0x180205b0a
adc edx, dword [rcx - 0x5f]
ja 0x180205b12
std
invalid
push 0xffffffffffffffcc
mov dh, 0x84
test al, 0xe
ret
xchg edx, eax
outsb dx, byte [rsi]
push rsp
mov al, 0x15
out 0x11, al
mov ah, 0xc6
add eax, dword [rcx]
jmp 0x180205a43