Function at 0x180204520
Capabilities:
Encode data using xor

Disassembly:
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x20
mov rsi, rcx
mov rax, rsi
add rax, 0x59
mov cl, byte [rax]
movzx eax, cl
test cl, cl
je 0x1802045a2
jmp 0x18020453f
sub eax, 3
je 0x18020472b
jmp case.0x18020489d.0
mov eax, dword [0x18051b0b0]
xor eax, dword [0x18051b0b4]
imul eax, eax, 0x87a5991f
add eax, 0xaa3fcd29
add eax, 0xfac82769
cmp eax, 0x20b66a54
jbe 0x18020495e
jmp 0x180204573
mov eax, dword [0x18051b0b8]
xor edx, edx
div dword [0x18051b0bc]
or eax, 0x3806f27b
sub eax, 0x54792a95
xor eax, 0xcdfd1f25
cmp eax, 0x9be8c51b
ja 0x180204573
add rsp, 0x20
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
ret
mov rcx, qword [rsi + 0x50]
mov r8, rcx
and r8, 3
mov eax, dword [0x18051b0c0]
and eax, dword [0x18051b0c4]
sub eax, 0x47a5a7e7
imul eax, eax, 0x61e13249
mov r9d, 0xf9a0c20
xor edx, edx
div r9d
cmp eax, 0xc77be162
ja 0x18020496b
jmp 0x1802045dc
mov eax, dword [0x18051b0c8]
or eax, dword [0x18051b0cc]
and eax, 0xb93c2707
and eax, 0x3a13f4d8
sub eax, 0x40f53a37
cmp eax, 0xabed7a3d
je 0x1802045dc
lea rax, [0x1804857f8]
movsxd rdx, dword [rax + r8*4]
add rdx, rax
jmp rdx
mov eax, dword [0x18051b0e8]
xor eax, dword [0x18051b0ec]
mov ecx, 0x67fc6e34
xor edx, edx
div ecx
mov ecx, 0xdcdc81fc
xor edx, edx
div ecx
mov ebp, eax
and ebp, 0xaadf660a
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.1802cbf20
cmp ebp, 0xf2541f9e
je 0x18020498d
jmp 0x180204711
jmp 0x180204713
mov rcx, rsi
mov edx, 0x18
mov r8d, 8
call fcn.1802cbf20
jmp case.0x18020489d.0
invalid
mov rax, rsi
add rax, 0x40
cmp byte [rax], 0
sete al
test al, 1
jne 0x18020473e
jmp 0x1802047b7
mov rax, rsi
add rax, 0x20
mov rdx, qword [rax]
cmp rdx, 0
sete al
test al, 1
jne 0x1802047b7
jmp 0x180204755
mov rcx, qword [rsi + 0x28]
mov r8d, 1
call fcn.1802cbf20
mov eax, dword [str.eu]
xor edx, edx
div dword [0x18051b0f4]
mov ecx, 0x71dd01f7
xor edx, edx
div ecx
imul eax, eax, 0xff93dda9
or eax, 0x56eab2e6
cmp eax, 0x16c19018
je 0x1802049a8
jmp 0x180204793
mov eax, dword [0x18051b0f8]
xor eax, dword [0x18051b0fc]
xor eax, 0x17a70461
xor eax, 0x79495fae
and eax, 0xbfd10859
cmp eax, 0x58ef9318
je 0x180204793
jmp 0x1802047b7
mov eax, dword [0x18051b100]
xor edx, edx
div dword [0x18051b104]
or eax, 0x690db0a2
imul eax, eax, 0x781acc6d
or eax, 0x91c72a8d
cmp eax, 0xd1c3e5fa
je 0x1802049b9
jmp 0x1802047e2
mov eax, dword [0x18051b108]
xor edx, edx
div dword [0x18051b10c]
sub eax, 0xb1d10f46
imul ecx, eax, 0x866ec377
or ecx, 0x8626d5fe
mov rax, rsi
add rax, 8
cmp ecx, 0xc24902c8
jbe 0x1802047e2
jmp 0x180204812
mov ecx, dword [0x18051b110]
imul ecx, dword [0x18051b114]
add ecx, 0x38426960
and ecx, 0x67ba8436
imul ecx, ecx, 0x7fd625d9
cmp ecx, 0x82ee5df1
ja 0x1802049c6
jmp 0x18020483f
mov ecx, dword [0x18051b118]
add ecx, dword [0x18051b11c]
add ecx, 0x7134c454
and ecx, 0x9e089dd2
imul ecx, ecx, 0x61d55aaf
cmp ecx, 0x6e07b86f
outsd dx, dword [rsi]
mov eax, 0xda776e07
jmp 0x180204867
mov rdx, qword [rax]
cmp rdx, 0
je case.default.0x18020489d
mov rax, rsi
add rax, 0x10
mov rcx, qword [rax]
mov r8d, 1
call fcn.1802cbf20
mov rax, qword [rsi]
mov rcx, rax
and rcx, 3
lea rdx, [0x1804857e8]
movsxd rcx, dword [rdx + rcx*4]
add rcx, rdx
jmp rcx
jo 0x180204968
invalid
cld
invalid
mov al, 0x12
xor ch, 0x9c
sub esp, dword [rdx]
lahf
invalid
idiv dword [rcx + rsi*4 - 0x218bcaf4]
push rdx
mov rcx, rdi
mov rdx, rbx
mov r8, r14
call fcn.1802cbf20
jmp 0x1802046cf
shr dword [rdx + 0x2d], 0x28
loope 0x180204995
outsd dx, dword [rsi]
test byte [rbx - 0x16ed529a], 0xd8
std
invalid
enter 0x579, 0xfffffffffffffffa
int3
sahf
mov esi, 0x7fac8381
invalid