Function at 0x18037f540
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x58
lea rbp, [rsp + 0x50]
mov rsi, rcx
mov eax, dword [0x18078c7c0]
or eax, dword [0x18078c7c4]
imul eax, eax, 0x5f2b119c
and eax, 0x3b8d713c
sub eax, 0x3f66660
cmp eax, 0x600fc44f
je 0x18037fcae
mov eax, dword [0x18078c7c8]
mov ecx, dword [0x18078c7cc]
sub eax, ecx
or eax, 0x36960b07
imul edx, eax, 0xcc265ca3
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov r13, rsp
mov r12, rsi
add r12, 0x41
mov cl, byte [rsi + 0x41]
cmp edx, 0x56b4c683
jbe 0x18037fcae
jmp 0x18037f5c0
mov eax, dword [0x18078c7d0]
or eax, dword [str.D1jx]
imul eax, eax, 0xacfcfe46
imul eax, eax, 0xb61af8b2
mov r8d, 0x19f50de7
xor edx, edx
div r8d
cmp eax, 0xcf852d3e
jae 0x18037fcbf
mov eax, dword [0x18078c7d8]
or eax, dword [0x18078c7dc]
add eax, 0xcac6b5db
sub eax, 0x36577017
mov r8d, 0xb8188eda
xor edx, edx
div r8d
movzx edx, cl
cmp eax, 0x31031ff2
jae 0x18037fcbf
test edx, edx
je 0x18037f689
jmp 0x18037f623
mov eax, edx
sub eax, 1
je 0x18037fc0b
jmp 0x18037f630
sub edx, 3
je case.0x18034a4bd.280
jmp 0x18037f63b
mov eax, dword [0x18078c7e0]
xor edx, edx
div dword [0x18078c7e4]
xor eax, 0x7e514a23
sub eax, 0xe1f24398
sub eax, 0x7db9faa9
cmp eax, 0xd295f60a
ja 0x18037fccc
jmp 0x18037f665
mov eax, dword [0x18078c7e8]
add eax, dword [0x18078c7ec]
and eax, 0xe77821fa
xor eax, 0x32cbe9da
sub eax, 0xb639e0c7
cmp eax, 0xe0788aee
je 0x18037f665
ud2
mov r10, qword [rsi + 0x38]
mov rax, rsi
add rax, 0x40
mov r9b, byte [rax]
mov r15, qword [rsi]
mov rdi, qword [rsi + 8]
xor ecx, ecx
cmp rdi, 0
jl 0x18037f84d
mov eax, dword [0x18078c7f0]
and eax, dword [0x18078c7f4]
sub eax, 0x7597fd7
imul eax, eax, 0x968ee798
add eax, 0xd5a5d185
cmp eax, 0x5659b632
jb 0x18037fcdd
jmp 0x18037f6d3
mov eax, dword [0x18078c7f8]
sub eax, dword [0x18078c7fc]
sub eax, 0xec5e99b0
mov ecx, 0x459a7e1c
xor edx, edx
div ecx
imul eax, eax, 0x4118efaa
cmp rdi, 0
sete cl
cmp eax, 0xc909240d
ja 0x18037f6d3
jmp 0x18037f703
mov eax, dword [0x18078c800]
xor edx, edx
div dword [0x18078c804]
mov r8d, 0x4bdcf242
xor edx, edx
div r8d
and eax, 0x4ab31f92
or eax, 0x6aa58211
cmp eax, 0x8cf35daf
je 0x18037fcee
mov eax, dword [0x18078c808]
add eax, dword [0x18078c80c]
xor eax, 0xa173d924
sub eax, 0xbfb1d8be
mov r8d, 0xc2b60596
xor edx, edx
div r8d
cmp eax, 0xf7202d49
jae 0x18037fcee
mov r14d, 1
test cl, 1
mov qword [rbp - 0x30], r10
jne 0x18037f859
jmp 0x18037f772
mov bl, r9b
mov al, byte [0x1807afe04]
sub rsp, 0x20
mov rcx, rdi
mov edx, 1
call fcn.1804caf90
add rsp, 0x20
mov r14, rax
mov eax, dword [0x18078c810]
or eax, dword [0x18078c814]
add eax, 0x559e8158
xor eax, 0xa2de4b12
sub eax, 0xd98842e
cmp eax, 0xf0c2d168
mov r9b, bl
jae 0x18037fcfb
mov eax, dword [0x18078c8b0]
sub eax, dword [0x18078c8b4]
add eax, 0x6bc1e6dc
add eax, 0x3455f36c
xor eax, 0x3a84f0d2
cmp eax, 0x8281887e
jle 0x18037fbb1
invalid
invalid
ja 0x18037fdff
add dword [rax], eax
invalid
mov eax, dword [0x18078c8b8]
add eax, dword [0x18078c8bc]
movsb byte [rdi], byte [rsi]
xchg ebx, esi
lodsd eax, dword [rsi]
or byte [rax - 0x364516bb], 0xef
out dx, eax
test byte [rbx - 0x2597c66a], dl
jl 0x18037fd0e
jmp 0x18037f5ee
cdq
pop rsi
push rbx
invalid
push rsi
sub esp, ebp
push rbx
mov dh, 0xcc
xchg byte [rax + 0x70], ch
invalid
stc
invalid