Function at 0x1804160a0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push rsi
push rdi
push rbx
sub rsp, 0x18
lea rbp, [rsp + 0x10]
mov rsi, rcx
mov eax, 0x10
call fcn.180698e80
sub rsp, rax
mov rdi, rsp
sub rsp, 0x20
mov rcx, rsi
call fcn.18063b300
add rsp, 0x20
test al, 1
jne 0x180416329
sub rsp, 0x20
mov rcx, rsi
call fcn.18063b3a0
add rsp, 0x20
test al, 1
jne 0x1804160f5
jmp 0x180416433
mov rcx, rsi
add rcx, 0x20
mov eax, dword [0x18079b348]
xor edx, edx
div dword [0x18079b34c]
sub eax, 0x661babe4
and eax, 0x47125240
add eax, 0xa944c71
cmp eax, 0x8cf3d8e8
je 0x180416440
mov eax, dword [0x18079b350]
and eax, dword [0x18079b354]
imul eax, eax, 0x4cfa5604
add eax, 0xebdadbad
and eax, 0x7bfaad0a
cmp eax, 0x201d508b
jb 0x180416440
jmp 0x18041614d
mov rax, qword [rcx]
lock dec qword [rax]
sete al
test al, 1
je 0x180416217
mov eax, dword [0x18079b358]
and eax, dword [0x18079b35c]
imul eax, eax, 0x7e2e239b
sub eax, 0xe74d3409
imul eax, eax, 0x4d75ff29
cmp eax, 0x6c09f2a
jb 0x180416451
mov eax, dword [0x18079b360]
mov edx, dword [0x18079b364]
imul eax, edx
add eax, 0x363d8b25
or eax, 0x6d7cdb9a
mov edx, 0x80c77315
imul rax, rdx
shr rax, 0x3e
cmp eax, 0xf6dede35
ja 0x180416451
jmp 0x1804161ba
sub rsp, 0x20
call fcn.1804be730
add rsp, 0x20
mov eax, dword [0x18079b368]
imul eax, dword [0x18079b36c]
add eax, 0x244f2736
add eax, 0x2c9af76f
imul eax, eax, 0xd325e52
cmp eax, 0x42c3db18
je 0x180416462
jmp 0x1804161f1
mov eax, dword [0x18079b370]
imul eax, dword [0x18079b374]
sub eax, 0x8458e1ce
and eax, 0xeec52e90
imul eax, eax, 0x2b0c0264
cmp eax, 0x8506cdbb
je 0x1804161f1
jmp 0x180416217
mov rcx, rsi
add rcx, 0x30
sub rsp, 0x20
call fcn.1803f5ec0
add rsp, 0x20
mov rcx, rsi
add rcx, 0xf0
mov eax, dword [0x18079b378]
sub eax, dword [0x18079b37c]
xor eax, 0xeaadf691
sub eax, 0x558e057e
mov r8d, 0x7f24e411
xor edx, edx
div r8d
cmp eax, 0xf197e593
je 0x18041646f
jmp 0x180416263
mov eax, dword [0x18079b380]
xor edx, edx
div dword [0x18079b384]
mov r8d, 0x3f7d3b5a
xor edx, edx
div r8d
or eax, 0xd3266099
or eax, 0x51229016
mov rdx, qword [rcx]
cmp rdx, 0
sete r8b
cmp eax, 0xc01f6bb
je 0x180416263
jmp 0x18041629a
test r8b, 1
jne 0x180416309
jmp 0x1804162a2
mov rcx, qword [rsi + 0xf8]
mov rax, qword [rdx + 0x18]
sub rsp, 0x20
call rax
add rsp, 0x20
mov eax, dword [0x18079b388]
and eax, dword [0x18079b38c]
and eax, 0xbc1c2230
and eax, 0x1581c474
xor eax, 0xbd86f203
cmp eax, 0x1bd43aa
jbe 0x180416480
jmp 0x1804162df
mov eax, dword [0x18079b390]
imul eax, dword [0x18079b394]
xor eax, 0x72d03e54
mov ecx, 0x4abb6882
xor edx, edx
div ecx
imul eax, eax, 0x26cdc59f
cmp eax, 0x728090e0
jae 0x1804162df
jmp 0x180416309
sub rsp, 0x20
mov rcx, rsi
mov edx, 0x100
mov r8d, 0x80
call fcn.1804cafa0
add rsp, 0x20
jmp 0x180416433
mov r14, rsi
add r14, 0x28
mov rbx, qword [rsi + 0x28]
mov eax, dword [0x18079b398]
sub eax, dword [0x18079b39c]
xor eax, 0xb7b9ac8d
add eax, 0x8bd4a0cd
mov ecx, 0xedabda13
xor edx, edx
div ecx
cmp eax, 0x5d8c3d
je 0x18041648d
jmp 0x180416360
mov r15d, dword [0x18079b3a0]
imul r15d, dword [0x18079b3a4]
and r15d, 0xbe8d8ef8
xor r15d, 0xa24233a4
or r15d, 0x7a230c8
sub rsp, 0x20
mov rcx, rbx
call fcn.18063f660
add rsp, 0x20
mov qword [rdi], rax
cmp r15d, 0x15bbb494
je 0x180416360
jmp 0x1804163a2
mov qword [rdi + 8], rdx
mov rbx, rsi
add rbx, 0x30
sub rsp, 0x20
mov rcx, rbx
call fcn.18034ee30
add rsp, 0x20
mov byte [rsi + 0xd8], 5
sub rsp, 0x20
mov rcx, rdi
call fcn.18063f700
add rsp, 0x20
mov rdi, qword [r14]
sub rsp, 0x20
mov rcx, rdi
call fcn.18063f660
add rsp, 0x20
mov qword [rbp - 8], rax
mov qword [rbp], rdx
sub rsp, 0x20
mov rcx, rbx
call fcn.18034ee30
add rsp, 0x20
mov qword [rsi + 0x30], 1
mov qword [rsi + 0x38], 0
mov qword [rsi + 0x48], rdi
mov byte [rsi + 0xd8], 4
lea rcx, [rbp - 8]
sub rsp, 0x20
call fcn.18063f700
mov rcx, rsi
call fcn.180411440
add rsp, 0x20
lea rsp, [rbp + 8]
pop rbx
pop rdi
pop rsi
pop r14
pop r15
pop rbp
ret
mov eax, 0x5c3bdce2
ret
invalid
mov ebp, 0xfe60d1df
scasb al, byte [rdi]
invalid
stc
invalid
or al, 0xdc
mov ebx, 0x63dc207c
out 0xe9, eax
push rax
invalid
outsb dx, byte [rsi]
enter 0x2879, 0xfffffffffffffff0
and eax, 0xfea4299c
xor al, 0xc4
sub rsp, 0x20
mov rcx, rbx
call fcn.18063f660
add rsp, 0x20
mov qword [rdi], rax
jmp 0x18041635e