Function at 0x18037e0f0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x28
lea rbp, [rsp + 0x20]
mov rsi, rcx
mov eax, dword [0x18078c560]
xor eax, dword [0x18078c564]
add eax, 0x307235e0
sub eax, 0x4b0ad629
and eax, 0xb5c84b21
cmp eax, 0x46444ffa
jb 0x18037ecc5
jmp 0x18037e130
mov edx, dword [0x18078c568]
mov eax, dword [0x18078c56c]
add edx, eax
xor edx, 0x804b60
and edx, 0xa0a54b64
mov eax, 0xb3a3f09b
imul rdx, rax
shr rdx, 0x38
mov eax, 0x10
call fcn.180698e80
sub rsp, rax
mov rcx, rsp
mov eax, 0x30
call fcn.180698e80
sub rsp, rax
mov r8, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov r14, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov rbx, rsp
cmp edx, 0xa6f9da9d
jae 0x18037e130
jmp 0x18037e1a1
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov rdi, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov r15, rsp
mov r12, rsi
add r12, 0x59
movzx eax, byte [rsi + 0x59]
test eax, eax
je 0x18037e23a
jmp 0x18037e1d2
mov ecx, eax
sub ecx, 1
je 0x18037ec1e
jmp 0x18037e1df
sub eax, 3
je 0x18037e6bb
jmp 0x18037e1ea
mov eax, dword [0x18078c570]
or eax, dword [0x18078c574]
xor eax, 0x7e3c579f
sub eax, 0x9797f4e4
imul eax, eax, 0xb6ed53ca
cmp eax, 0xab9fa09
je 0x18037ecd6
mov eax, dword [0x18078c578]
imul eax, dword [0x18078c57c]
and eax, 0x5307e7a4
add eax, 0xe2aff4f1
or eax, 0x49a3f184
cmp eax, 0x5b55cafc
je 0x18037ecd6
ud2
mov eax, dword [0x18078c580]
xor edx, edx
div dword [0x18078c584]
sub eax, 0xad9b664d
and eax, 0x9803962c
and eax, 0x3d5289ad
cmp eax, 0x14194085
ja 0x18037ece3
mov eax, dword [0x18078c588]
imul eax, dword [0x18078c58c]
mov r9d, 0xdd02d9cd
xor edx, edx
div r9d
and eax, 0x5ab33a6c
and eax, 0xe05337c
mov r9, qword [rsi + 0x48]
mov rdx, qword [rsi + 0x50]
mov qword [rsi], rdx
mov dl, byte [rsi + 0x58]
cmp eax, 0x12dcead8
jae 0x18037ece3
mov byte [rbp + 7], dl
mov qword [rbp - 0x10], r9
jmp 0x18037e2a6
mov qword [rcx], rsi
lea rax, [fcn.180665920]
mov qword [rcx + 8], rax
lea rax, [0x1806c45b0]
mov qword [r8], rax
mov qword [r8 + 8], 1
mov qword [r8 + 0x20], 0
mov qword [r8 + 0x10], rcx
mov qword [r8 + 0x18], 1
sub rsp, 0x20
mov rcx, r14
mov rdx, r8
call fcn.180686890
add rsp, 0x20
mov rax, qword [r14]
mov qword [rsi + 8], rax
mov rax, qword [r14 + 8]
mov qword [rsi + 0x10], rax
mov rax, qword [r14 + 0x10]
mov qword [rsi + 0x18], rax
mov r9, qword [rsi + 0x10]
mov r14, qword [rsi + 0x18]
cmp r14, 0
setl cl
mov qword [rbp - 0x18], r12
mov eax, dword [0x18078c590]
xor edx, edx
div dword [0x18078c594]
xor eax, 0xb91180cd
sub eax, 0x9667c917
xor eax, 0x3bb40b91
cmp eax, 0xced77d4c
jae 0x18037ecf7
mov eax, dword [0x18078c598]
xor eax, dword [0x18078c59c]
sub eax, 0xf4d6c8bb
or eax, 0x34d02805
and eax, 0x6d1f46f5
cmp eax, 0xc6229d69
je 0x18037ecf7
xor r13d, r13d
test cl, 1
jne 0x18037e515
jmp 0x18037e373
cmp r14, 0
sete cl
mov eax, dword [0x18078c5a0]
add eax, dword [0x18078c5a4]
or eax, 0xf509cbda
mov r8d, 0xcacab312
xor edx, edx
div r8d
sub eax, 0x540ca185
cmp eax, 0x7504246a
je 0x18037ed04
mov eax, dword [0x18078c5a8]
xor edx, edx
div dword [0x18078c5ac]
xor eax, 0x3ff74950
xor eax, 0xac6344e5
sub eax, 0xac185e6
cmp eax, 0xf8dfa12a
je 0x18037ed04
mov r12d, 1
test cl, 1
jne 0x18037e57e
jmp 0x18037e3df
mov eax, dword [0x18078c5b0]
and eax, dword [0x18078c5b4]
imul eax, eax, 0x53b7791d
imul eax, eax, 0x514e0a5e
sub eax, 0x4f9b4c0b
cmp eax, 0xd8952434
jae 0x18037ed15
mov eax, dword [0x18078c5b8]
and eax, dword [0x18078c5bc]
or eax, 0xcb8f144f
xor eax, 0x82253831
or eax, 0xcf48aafb
mov cl, byte [0x1807afe04]
cmp eax, 0x112055d8
jb 0x18037ed15
mov qword [rbp - 8], r9
jmp 0x18037e439
sub rsp, 0x20
mov rcx, r14
mov edx, 1
call fcn.1804caf90
add rsp, 0x20
mov r12, rax
mov eax, dword [0x18078c5c0]
or eax, dword [0x18078c5c4]
mov ecx, 0xf182dc4d
xor edx, edx
div ecx
mov ecx, 0xe55e46c6
xor edx, edx
div ecx
xor eax, 0xf332992d
cmp eax, 0xf1c6e8b5
jb 0x18037ed2c
mov eax, dword [0x18078c5c8]
imul eax, dword [0x18078c5cc]
sub eax, 0xbaf8d625
mov ecx, 0x87e6ec9c
xor edx, edx
div ecx
and eax, 0xf15a987e
cmp r12, 0
sete cl
cmp eax, 0x2a8875a6
je 0x18037ed2c
mov r13d, 1
test cl, 1
mov r9, qword [rbp - 8]
jne 0x18037e515
jmp 0x18037e4c2
mov eax, dword [0x18078c5d0]
and eax, dword [0x18078c5d4]
sub eax, 0xf4b6d8ce
mov ecx, 0x976d99c2
xor edx, edx
div ecx
or eax, 0x2087a78e
cmp eax, 0xf8440bc7
jae 0x18037ed39
jmp 0x18037e4ee
mov eax, dword [0x18078c5d8]
imul eax, dword [0x18078c5dc]
imul eax, eax, 0x501cba52
imul eax, eax, 0x471be497
rcl byte [rdi + 0x35471be4], 0x24
invalid
loope 0x18037e4d5
cmp eax, 0xeb046c1f
je 0x18037e4ee
jmp 0x18037e57e
mov eax, dword [0x18078c5e0]
xor edx, edx
div dword [0x18078c5e4]
mov ecx, 0x663a9836
xor edx, edx
div ecx
xor eax, 0xce71b2cc
xor eax, 0xe40b43bf
cmp eax, 0x4bb8f057
jae 0x18037ed4a
jmp 0x18037e543
sub rsp, 0x20
mov rcx, r12
mov rdx, r9
mov r8, r14
call fcn.1806a7400
add rsp, 0x20
mov al, byte [rbp + 7]
mov byte [rbx + 0x18], al
mov byte [rbx + 0x19], 0x63
mov qword [rbx], r14
mov qword [rbx + 8], r12
mov qword [rbx + 0x10], r14
sub rsp, 0x20
mov rcx, rdi
mov rdx, rbx
mov edx, ebx
jmp 0x18037e6bd
mov eax, dword [0x18078c6e0]
xor eax, dword [0x18078c6e4]
xor eax, 0x169692cc
xor eax, 0xdeffbbe6
mov ecx, 0x29fc23a5
xor edx, edx
div ecx
cmp eax, 0x159745b7
je 0x18037ee6f
jmp 0x18037ec4a
mov eax, dword [0x18078c6e8]
imul eax, dword [0x18078c6ec]
and eax, 0xee798f40
jns 0x18037ec4a
mov ecx, 0x43d4d4c6
xor edx, edx
div ecx
imul eax, eax, 0xf5a8a5ed
ud2
jb 0x18037ec5a
add byte [rcx - 0x40], bpl
lodsb al, byte [rsi]
jnp 0x18037ec3d
add eax, 0x572a0084
or eax, 0x83bbc203
cmp eax, 0x4d74278c
jb 0x18037ee82
mov eax, dword [0x18078c6f8]
or eax, dword [0x18078c6fc]
add eax, 0xee32258a
add byte [0x16e6a1238], al
sub eax, 0xcbbb6dcb
sub eax, 0xd07242a3
cmp eax, 0xcea2aa14
jae 0x18037ee82
ud2
std
imul edi, eax, 0x28
test al, 0xf5
clc
xchg esi, eax
stc
cmpsd dword [rsi], dword [rdi]
push 0x77
jmp 0x18037e12e
out 0xd5, al
invalid
sbb al, 0x54
fild word [rdi]
jge 0x18037eca7
loopne 0x18037ed14
mov rax, qword [rsi + 0x50]
mov qword [rsi], rax
jmp 0x18037e262
jno 0x18037ec7e
adc byte [rbp - 0x45], cl
cwde
mov ebp, 0xf63be959
invalid
mov dl, 0x29
sbb al, 8
rcr word [rcx], 0x4e
int 0xc6
test al, 7
jmp 0x18037e3a6
jmp qword [rbx - 0x38]
invalid
invalid
push rsp
xchg edx, eax
sub dword [rsi], 0x7b
invalid
mov byte [rcx + rax*4], ah
mov al, 0xec
outsb dx, byte [rsi]
mov eax, 0xec8348bf
and byte [rcx + rcx*4 - 0x17], cl
mov rdx, r14
call fcn.18063bc30
add rsp, 0x20
jmp 0x18037e541
movabs eax, dword [0xc5f743a5ccb542c4]
leave
pushfq
jno 0x18037ee8b
or ebp, ecx
invalid
invalid
invalid