Function at 0x180487b70
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x28
mov rdi, r9
mov rbx, r8
mov rsi, rdx
mov r14, rcx
mov eax, dword [0x1807a7560]
imul eax, dword [0x1807a7564]
mov ecx, 0x2ec88d28
xor edx, edx
div ecx
mov ecx, 0xff1631f9
xor edx, edx
div ecx
mov ecx, 0xb323e504
xor edx, edx
div ecx
cmp eax, 0x338b9f17
jae 0x18048802e
jmp 0x180487bc1
mov eax, dword [0x1807a7568]
sub eax, dword [0x1807a756c]
and eax, 0x27bc6a1d
or eax, 0x88f7917
and eax, 0x5f2e3ba7
mov r12, rsi
add r12, 0x29
cmp eax, 0xc9663df5
ja 0x180487bc1
jmp 0x180487bec
mov r13, rsi
add r13, 8
mov cl, byte [r12]
jmp 0x180487bf9
add cl, 0xfe
movzx edx, cl
inc rdx
xor eax, eax
sub cl, 2
cmovb rax, rdx
test rax, rax
je 0x180487c23
jmp 0x180487c12
sub rax, 1
je 0x180487ca6
jmp 0x180487c1e
jmp 0x180487d20
mov eax, dword [0x1807a7570]
or eax, dword [0x1807a7574]
mov ecx, 0xcbe0dd48
xor edx, edx
div ecx
sub eax, 0x3e321f10
imul eax, eax, 0xc5f0006
cmp eax, 0x166b321e
jb 0x18048803b
mov eax, dword [0x1807a7578]
add eax, dword [0x1807a757c]
mov ecx, 0x84504061
xor edx, edx
div ecx
xor eax, 0xdadc8189
imul ebp, eax, 0x9f8c617a
mov rcx, rsi
mov rdx, r14
mov r8, rbx
mov r9, rdi
call fcn.18044d590
mov r15, rdx
cmp ebp, 0x7f4453c4
jae 0x18048803b
jmp 0x180487c90
mov rcx, rax
add rcx, 0xffffffffffffffff
cmp rcx, 2
jae 0x180487d7c
jmp 0x180487f69
mov rcx, qword [rdi]
mov rdx, r14
call fcn.18063acb0
mov r15, rdx
mov ecx, dword [0x1807a7580]
add ecx, dword [0x1807a7584]
or ecx, 0x6c37f9ba
and ecx, 0xe739653c
sub ecx, 0x9d983e9
cmp ecx, 0xda41d710
jae 0x180488059
jmp 0x180487ce0
mov edx, dword [0x1807a7588]
sub edx, dword [0x1807a758c]
add edx, 0xcb74a68b
xor edx, 0x68aa0575
sub edx, 0xfb6024ed
cmp rax, 0
sete cl
cmp edx, 0x6b0c41f6
jb 0x180487ce0
mov eax, 2
test cl, 1
jne 0x180487f7d
jmp 0x180487f69
mov r15, qword [rsi]
mov eax, dword [0x1807a7590]
or eax, dword [0x1807a7594]
sub eax, 0xdd8330f0
or eax, 0x50dc0630
or eax, 0x360903fd
cmp eax, 0x9bd0a0e6
jbe 0x180488066
jmp 0x180487d4b
mov eax, dword [0x1807a7598]
imul eax, dword [0x1807a759c]
imul eax, eax, 0x56cb498b
mov ecx, 0x2128bc10
xor edx, edx
div ecx
and eax, 0xbfa3a1f9
cmp eax, 0xb586f54
ja 0x180487d4b
jmp 0x180487d75
xor eax, eax
jmp 0x180487f69
mov al, byte [r12]
cmp al, 2
setb r8b
mov eax, dword [0x1807a75a0]
sub eax, dword [0x1807a75a4]
mov ecx, 0x897e863c
xor edx, edx
div ecx
mov ecx, 0x7231eedf
xor edx, edx
div ecx
add eax, 0x29c2dd5c
cmp eax, 0x29c79c3
jbe 0x180488073
mov eax, dword [0x1807a75a8]
imul eax, dword [0x1807a75ac]
add eax, 0x254f1088
and eax, 0x1a3e6190
mov ecx, 0x3fdce26f
xor edx, edx
div ecx
cmp eax, 0x22a9765d
jae 0x180488073
mov cl, 2
test r8b, 1
jne 0x180487dec
jmp 0x180487f0b
mov r8, qword [r13]
cmp r8, 0
sete r9b
mov eax, dword [0x1807a75b0]
or eax, dword [0x1807a75b4]
and eax, 0x20cdab6f
imul eax, eax, 0xa498da39
and eax, 0xafe3191b
cmp eax, 0x8ab543fe
je 0x180488080
jmp 0x180487e21
mov eax, dword [0x1807a75b8]
xor eax, dword [str.G_J]
xor eax, 0xf5e34f9c
mov ecx, 0x2ae9854b
xor edx, edx
div ecx
sub eax, 0xcc11b638
cmp eax, 0x7dec8d48
ja 0x180487e21
mov cl, 2
test r9b, 1
je 0x180487e54
jmp 0x180487f0b
mov eax, dword [0x1807a75c0]
xor eax, dword [0x1807a75c4]
mov ecx, 0x89d284ae
xor edx, edx
div ecx
or eax, 0x8bb12025
sub eax, 0x81f7dfc3
cmp eax, 0xccb9fd
jb 0x18048808d
mov eax, dword [0x1807a75c8]
and eax, dword [0x1807a75cc]
or eax, 0x7a14f0e
sub eax, 0x104e2fd4
mov ecx, 0xef47e417
xor edx, edx
div ecx
mov rcx, qword [rsi]
cmp eax, 0xed4aa830
ja 0x18048808d
jmp 0x180487ead
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov eax, dword [0x1807a75d0]
sub eax, dword [0x1807a75d4]
and eax, 0x71e96dbf
xor eax, 0x8ec8b6f2
and eax, 0x6848899f
cmp eax, 0x959d1fac
ja 0x18048809a
mov eax, dword [0x1807a75d8]
xor eax, dword [0x1807a75dc]
and eax, 0x7cf34af9
sub eax, 0x47a77ced
sub eax, 0xcd2a431d
cmp eax, 0x94c5a04c
ja 0x18048809a
mov cl, 2
jmp 0x180487f0b
mov eax, dword [0x1807a75e0]
add eax, dword [0x1807a75e4]
sub eax, 0xff9f8e95
mov r8d, 0x5bbf508b
xor edx, edx
div r8d
and eax, 0xe82c4b8d
cmp eax, 0xe0d79bce
ja 0x1804880ab
mov eax, dword [0x1807a75e8]
or eax, dword [0x1807a75ec]
or eax, 0xff357608
xor eax, 0x58afd5f7
add eax, 0x1e9c2883
mov qword [rsi], r15
mov byte [r12], cl
cmp eax, 0xec2429c0
jae 0x1804880ab
jmp 0x180487bf9
mov rdx, r15
add rsp, 0x28
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r15, 0
sete cl
mov eax, 1
test cl, 1
jne 0x180487f90
jmp 0x180487f69
mov r15, qword [rsi]
mov al, byte [r12]
cmp al, 2
setb al
mov cl, 3
test al, 1
jne 0x180487fa7
jmp 0x180487f0b
mov r8, qword [r13]
mov eax, dword [0x1807a75f0]
and eax, dword [0x1807a75f4]
imul eax, eax, 0xde6d52c3
imul eax, eax, 0x9c3cea60
xor eax, 0x3fcd50c
cmp eax, 0x8cbf29dc
jae 0x1804880c3
mov eax, dword [0x1807a75f8]
sub eax, dword [0x1807a75fc]
mov ecx, 0x10ca5dd4
xor edx, edx
div ecx
add eax, 0xc380227
mov ecx, 0x532803dc
xor edx, edx
div ecx
cmp r8, 0
sete dl
cmp eax, 0x83b9c173
je 0x1804880c3
jmp 0x18048800a
mov cl, 3
test dl, 1
je 0x180488016
jmp 0x180487f0b
mov rcx, r15
mov rdx, r8
mov r8d, 1
call fcn.1804cafa0
mov cl, 3
jmp 0x180487f0b
stosb byte [rdi], al
nop
insd dword [rdi], dx
jp 0x180488031
fimul word [rax - 0x47b16f1]
invalid
push rdi
sbb al, byte [rdx + 0x54]
xchg esp, eax
cmp eax, 0x8948ceb0
int1
mov rdx, r14
mov r8, rbx
mov r9, rdi
call fcn.18044d590
jmp 0x180487c4e
cmp al, 0x55
cld
invalid
loope 0x180487ffd
mov ah, 0xd6
or eax, 0x78e9b757
cld
invalid
retf 0x5522
invalid
std
invalid
out dx, eax
fimul word [rcx - 0x2d5e77c0]
lodsd eax, dword [rsi]
jmp 0x180487e1f
call 0x18b893ca7
jmp 0x18048809b
mov dword [rdx], ebx
ja 0x18048807d
sbb dh, byte [rdi - 0x21]
mov ebp, 0x4f263cda
pop rcx
scasb al, byte [rdi]
imul cl
invalid
mov esi, 0x171e84e4
pushfq
sti
mov ch, 1
or bl, ch
xchg ebx, eax
mov qword [rsi], r15
mov byte [r12], cl
jmp 0x180487f37
mov esp, 0x81981793
sti
ja 0x180488050
invalid