Function at 0x180487200
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rsi, rcx
mov eax, dword [0x1807a7430]
imul eax, dword [0x1807a7434]
imul eax, eax, 0xd3bfa0f0
xor eax, 0x138388dc
or eax, 0xe68b1926
cmp eax, 0x8b4a7bd4
jbe 0x1804874ea
jmp 0x180487239
mov eax, dword [0x1807a7438]
add eax, dword [0x1807a743c]
xor eax, 0x25e165c5
and eax, 0x82c80cfa
imul ebp, eax, 0xe4e3ddff
mov rbx, qword [rsi]
mov rcx, rsi
call fcn.18045b5e0
mov rdi, qword [rsi]
cmp ebp, 0x799dd533
jbe 0x180487239
jmp 0x18048726d
mov eax, dword [0x1807a7440]
and eax, dword [0x1807a7444]
xor eax, 0x35352c7c
add eax, 0xcfc788e8
add eax, 0xd9eee76
cmp eax, 0x74b26591
ja 0x180487503
jmp 0x180487295
mov ecx, dword [0x1807a7448]
add ecx, dword [0x1807a744c]
xor ecx, 0xe35ca0c4
and ecx, 0x90a40b98
and ecx, 0xcf76033c
mov r15, rsi
add r15, 0x10
mov rax, qword [rsi + 0x10]
mov r14, qword [rsi + 0x18]
cmp ecx, 0x735f2717
je 0x180487295
jmp 0x1804872cc
mov rcx, rbx
sub rcx, r14
cmp rax, rcx
jbe 0x180487489
mov r8, rbx
sub r8, rax
sub r14, r8
cmp r8, r14
setbe cl
mov rdx, rdi
sub rdx, rbx
cmp rdx, r14
setb dl
or cl, dl
test cl, 1
jne 0x180487302
jmp 0x1804873c7
sub rdi, r8
mov rcx, qword [rsi + 8]
imul rax, rax, 0x70
mov rdx, rcx
add rdx, rax
imul rax, rdi, 0x70
add rcx, rax
imul r8, r8, 0x70
call fcn.1806a7400
mov eax, dword [0x1807a7450]
sub eax, dword [0x1807a7454]
add eax, 0xa0eb392
or eax, 0x25f9f73f
add eax, 0xb8775059
cmp eax, 0x778c9657
jb 0x180487510
jmp 0x18048734b
mov eax, dword [0x1807a7458]
or eax, dword [0x1807a745c]
mov ecx, 0xab4f8b02
xor edx, edx
div ecx
sub eax, 0xf6dd01c4
add eax, 0x432f3ffa
mov qword [r15], rdi
cmp eax, 0x64d79c07
je 0x18048734b
jmp 0x180487376
mov eax, dword [0x1807a7460]
add eax, dword [0x1807a7464]
or eax, 0x58195395
xor eax, 0x302bc516
or eax, 0x7208c112
cmp eax, 0x8fb45bed
ja 0x180487524
mov eax, dword [0x1807a7468]
xor eax, dword [0x1807a746c]
or eax, 0xfbb702cc
and eax, 0x580d61f2
or eax, 0xe21db3f4
cmp eax, 0x6a1dd058
jb 0x180487524
jmp 0x180487489
add rsi, 8
mov eax, dword [0x1807a7470]
and eax, dword [0x1807a7474]
imul eax, eax, 0xb1ea2015
xor eax, 0xf60d2a4
xor eax, 0xe7813581
cmp eax, 0x57a05fa2
jb 0x180487531
mov eax, dword [0x1807a7478]
add eax, dword [0x1807a747c]
xor eax, 0x2521c3e9
add eax, 0x48bd6548
add eax, 0x395420bb
mov rdi, qword [rsi]
cmp eax, 0x29fc27f7
jb 0x180487531
jmp 0x18048741d
mov eax, dword [0x1807a7480]
sub eax, dword [0x1807a7484]
add eax, 0x69d363e
and eax, 0xd792540d
mov ecx, 0x976340da
xor edx, edx
div ecx
cmp eax, 0x8e15eaee
je 0x18048753e
mov esi, dword [0x1807a7488]
sub esi, dword [0x1807a748c]
add esi, 0x11b8a98e
xor esi, 0x66737e06
add esi, 0x3bfedb11
imul rax, rbx, 0x70
mov rcx, rdi
add rcx, rax
imul r8, r14, 0x70
mov rdx, rdi
call fcn.1806a7400
cmp esi, 0xcfc4590
jb 0x18048753e
jmp 0x180487489
mov eax, dword [0x1807a7490]
xor eax, dword [0x1807a7494]
imul eax, eax, 0x52b764c3
add eax, 0xf2668aa9
sub eax, 0xdf8abde8
cmp eax, 0x23e32e32
jb 0x180487561
mov eax, dword [0x1807a7498]
xor edx, edx
div dword [0x1807a749c]
mov ecx, 0xdb9097e6
xor edx, edx
div ecx
imul eax, eax, 0xd49df524
or eax, 0x326601d3
cmp eax, 0x6b41681d
jae 0x180487561
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
sub eax, 0xda7e45c1
fld dword [rdx + rbx*2]
fcmovu st(0), st(1)
add al, 0x5a
pop r11
invalid
in eax, dx
cwde
js 0x18048751d
fst qword [rax + rdi - 0x27c1699]
invalid
jbe 0x1804874ee
cmp bpl, byte [r15]
movabs dword [0x89494c3e7b2678a1], eax
invalid
movabs eax, dword [0x3f89494c3e7b2678]
mov dword [rdi], edi
jmp 0x180487349
jg 0x180487516
jle 0x180487562
invalid
mov al, 0x64
mov ecx, 0xe6f90b
cdq
jmp 0x1804873f2
xor al, 5
cmc
invalid
fnstsw word [rsi - 0x33a9da46]
mov esi, 0xcc5625ba
or eax, 0xffff42e9
dec esp
int3