Function at 0x18037ee90
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x38
lea rbp, [rsp + 0x30]
mov rsi, rcx
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov rdi, rsp
mov eax, 0x20
call fcn.180698e80
sub rsp, rax
mov r14, rsp
mov r13, rsi
add r13, 0x41
mov cl, byte [rsi + 0x41]
movzx eax, cl
test cl, cl
je 0x18037ef40
jmp 0x18037eedb
mov ecx, eax
sub ecx, 1
je 0x18037f402
jmp 0x18037eee8
sub eax, 3
je 0x18037f248
jmp 0x18037eef3
mov eax, dword [0x18078c700]
add eax, dword [0x18078c704]
and eax, 0xeb03f314
and eax, 0x82fc2f7b
xor eax, 0x34a25ac4
cmp eax, 0xa6d1bcbd
jae 0x18037f453
jmp 0x18037ef1b
mov eax, dword [0x18078c708]
imul eax, dword [0x18078c70c]
and eax, 0x2806f5da
or eax, 0xa9bc29be
add eax, 0xe883b1f8
cmp eax, 0x47c301ac
jb 0x18037ef1b
ud2
mov rcx, qword [rsi + 0x38]
mov dl, byte [rsi + 0x40]
mov r8, qword [rsi]
mov rax, rsi
add rax, 8
mov rbx, qword [rax]
xor r12d, r12d
cmp rbx, 0
jl 0x18037f0fb
mov byte [rbp + 7], dl
mov qword [rbp - 8], rcx
mov eax, dword [0x18078c710]
or eax, dword [0x18078c714]
or eax, 0xca1dabd7
or eax, 0x453c938f
and eax, 0x7d6060f3
cmp eax, 0x364f243
je 0x18037f464
jmp 0x18037ef90
mov eax, dword [0x18078c718]
add eax, dword [0x18078c71c]
mov ecx, 0xf9030177
xor edx, edx
div ecx
add eax, 0x96765e8f
or eax, 0x4a8c7d83
cmp rbx, 0
sete cl
cmp eax, 0x4989eff3
jbe 0x18037ef90
jmp 0x18037efbf
mov eax, dword [0x18078c720]
sub eax, dword [0x18078c724]
or eax, 0x215fa98b
or eax, 0xb6dc5957
xor eax, 0xbebb6c22
cmp eax, 0xfac5cdb5
ja 0x18037f471
jmp 0x18037efe7
mov eax, dword [0x18078c728]
xor eax, dword [0x18078c72c]
imul eax, eax, 0xd564bebb
imul eax, eax, 0xed75dcd3
or eax, 0x39a53160
cmp eax, 0x4c5d2ea0
jb 0x18037efe7
mov r15d, 1
test cl, 1
jne 0x18037f15f
jmp 0x18037f01c
mov r12, r8
mov al, byte [0x1807afe04]
sub rsp, 0x20
mov rcx, rbx
mov edx, 1
call fcn.1804caf90
add rsp, 0x20
mov r15, rax
cmp r15, 0
sete al
mov ecx, dword [0x18078c730]
or ecx, dword [0x18078c734]
or ecx, 0xe35ca183
sub ecx, 0x5f60dbfa
and ecx, 0x96285fb2
cmp ecx, 0xe8f6c5e0
mov r8, r12
jae 0x18037f482
jmp 0x18037f073
mov ecx, dword [0x18078c738]
and ecx, dword [0x18078c73c]
xor ecx, 0x62d67093
imul ecx, ecx, 0x6927a2b3
or ecx, 0xfcf19c19
cmp ecx, 0xe048187c
jbe 0x18037f073
mov r12d, 1
test al, 1
jne 0x18037f0fb
jmp 0x18037f0a5
mov eax, dword [0x18078c740]
xor eax, dword [0x18078c744]
imul eax, eax, 0xa433d910
add eax, 0xa3f71fa
xor eax, 0x1540b863
cmp eax, 0x341349d4
jb 0x18037f493
jmp 0x18037f0ce
mov eax, dword [0x18078c748]
xor edx, edx
div dword [0x18078c74c]
sub eax, 0xdfad2cb2
imul eax, eax, 0xa4c29ca9
mov ecx, 0x930c0bb9
xor edx, edx
div ecx
cmp eax, 0x30329bba
je 0x18037f0ce
jmp 0x18037f0f9
jmp 0x18037f15f
mov eax, dword [0x18078c750]
xor eax, dword [0x18078c754]
sub eax, 0x4a4c37e4
xor eax, 0xdeb59c53
imul eax, eax, 0x996012a9
cmp eax, 0xac454e52
jb 0x18037f4a0
jmp 0x18037f124
mov esi, dword [0x18078c758]
sub esi, dword [0x18078c75c]
and esi, 0x81968b57
or esi, 0xfa709317
add esi, 0x8b166d5c
sub rsp, 0x20
mov rcx, r12
mov rdx, rbx
call fcn.18063bc30
add rsp, 0x20
cmp esi, 0xf5e42214
ja 0x18037f124
ud2
sub rsp, 0x20
mov rcx, r15
mov rdx, r8
mov r8, rbx
call fcn.1806a7400
add rsp, 0x20
mov al, byte [rbp + 7]
mov byte [rbp - 0x10], al
mov byte [rbp - 0xf], 0x63
mov qword [rbp - 0x28], rbx
mov qword [rbp - 0x20], r15
mov qword [rbp - 0x18], rbx
lea rdx, [rbp - 0x28]
sub rsp, 0x20
mov rcx, rdi
call fcn.1804c9d40
add rsp, 0x20
cmp qword [rdi], 8
je 0x18037f1ff
mov eax, dword [0x18078c760]
imul eax, dword [0x18078c764]
add eax, 0x51ee3fa7
and eax, 0x6def7ed6
imul eax, eax, 0x65939081
cmp eax, 0xd93c6379
je 0x18037f4c4
mov eax, dword [0x18078c768]
xor edx, edx
div dword [0x18078c76c]
mov ecx, 0x2c49117a
xor edx, edx
div ecx
add eax, 0x78ceeaf4
add eax, 0xdf44ff5a
ud2
add rdi, 8
mov rax, qword [rdi]
mov qword [r14], rax
mov rax, qword [rdi + 8]
mov qword [r14 + 8], rax
mov rax, qword [rdi + 0x10]
mov qword [r14 + 0x10], rax
mov rax, qword [r14]
mov qword [rsi + 0x10], rax
mov rax, qword [r14 + 8]
mov qword [rsi + 0x18], rax
mov rax, qword [r14 + 0x10]
mov qword [rsi + 0x20], rax
mov rax, qword [rbp - 8]
mov qword [rsi + 0x28], rax
mov rax, rsi
add rax, 0x30
mov byte [rax], 0
mov byte [rsi + 0x31], 2
jmp 0x18037f24a
jmp 0x18037f24a
mov rdi, rsi
add rdi, 0x10
sub rsp, 0x20
mov rcx, rdi
call fcn.18035b480
add rsp, 0x20
mov rax, rsi
add rax, 0x30
mov al, byte [rax]
cmp al, 0
jne 0x18037f39a
mov rdi, qword [rdi]
cmp rdi, 0
sete al
mov ecx, dword [0x18078c770]
add ecx, dword [0x18078c774]
imul ecx, ecx, 0x32e234d4
sub ecx, 0x22eb3a1c
add ecx, 0x89bcae80
cmp ecx, 0x90799167
je 0x18037f4d3
jmp 0x18037f2a8
mov ecx, dword [0x18078c778]
and ecx, dword [0x18078c77c]
xor ecx, 0x442d029a
imul ecx, ecx, 0x1d507d02
xor ecx, 0x548a19d7
cmp ecx, 0x29716218
jbe 0x18037f2a8
test al, 1
jne 0x18037f39a
jmp 0x18037f2d8
mov eax, dword [0x18078c780]
xor eax, dword [0x18078c784]
add eax, 0x8d1a855d
or eax, 0x35a1d079
mov ecx, 0xf3b56eb
xor edx, edx
div ecx
cmp eax, 0x126e3b9
je 0x18037f4e0
jmp 0x18037f304
mov eax, dword [0x18078c788]
add eax, dword [0x18078c78c]
sub eax, 0x4335cf4a
or eax, 0x67659afc
or eax, 0x7c6fc77d
mov rbx, qword [rsi + 0x18]
cmp eax, 0x29f2b381
je 0x18037f304
jmp 0x18037f32c
mov eax, dword [0x18078c790]
imul eax, dword [0x18078c794]
add eax, 0x51bcfc15
add eax, 0x70bb32cb
mov ecx, 0xdcfd6500
xor edx, edx
div ecx
cmp eax, 0xf89950c9
jae 0x18037f4ed
jmp 0x18037f359
mov eax, dword [0x18078c798]
or eax, dword [0x18078c79c]
add eax, 0x5e3b8131
and eax, 0x3fc68b86
imul esi, eax, 0x15699def
sub rsp, 0x20
mov rcx, rbx
mov rdx, rdi
mov r8d, 1
call fcn.1804cafa0
add rsp, 0x20
cmp esi, 0x9ed5dfbf
jae 0x18037f359
jmp 0x18037f398
jmp 0x18037f39a
mov byte [r13], 1
mov eax, dword [0x18078c7a0]
and eax, dword [0x18078c7a4]
mov ecx, 0xab0afa94
xor edx, edx
div ecx
or eax, 0x487c47d6
add eax, 0x113144c0
cmp eax, 0xc2c8323c
je 0x18037f513
jmp 0x18037f3cb
mov eax, dword [0x18078c7a8]
or eax, dword [0x18078c7ac]
mov ecx, 0x221c4f06
xor edx, edx
div ecx
and eax, 0xec1668bb
sub eax, 0x29e6ce21
cmp eax, 0xe4b4690f
je 0x18037f3cb
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
ud2
movabs byte [0xcd275ac71c9c5f78], al
and eax, 0xfab5e938
invalid
xchg ecx, eax
mov cl, 0x74
sahf
and eax, 0xe904d692
sbb eax, 0xe8fffffb
or esi, edi
invalid
call 0x10b0eeb81
ret
lea edx, [rax + 0x1b]
sub ch, cl
invalid
fldenv [rdi]
clc
rcr byte [rdi - 7], 1
invalid
jns 0x18037f50e
mov esp, 0xbf207552
pop rdx
jmp 0x18037f0cc
sub al, 0xfc
invalid
test edx, ebp
xor eax, 0x3ce0eaae
mov bl, byte [rbx + rax]
xchg byte [rsi], dl
sub rsp, 0x20
mov rcx, r12
mov rdx, rbx
call fcn.18063bc30
add rsp, 0x20
jmp 0x18037f122
test al, 0x9d
jno 0x18037f49c
sbb al, 0x62
std
test al, 0xf
or ebp, ecx
cli
cld
invalid
cmc
jle 0x18037f479
xchg esp, eax
invalid
imul r15, r11, 0xffffffffbcfdf9a8
sub cl, 0x15
invalid
add edi, dword [rsi]
xchg esp, eax
sal bl, 1
clc
int3
jmp 0x18037f357
in eax, 0x9e
invalid