Function at 0x18008e900
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x60
call fcn.1800805c0
lea rdx, [rsp + 0x20]
lea rcx, [0x1800c4cd0]
call fcn.180088ce0
mov rbx, qword [rax + 8]
sub rbx, qword [rax]
sar rbx, 3
mov rcx, qword [rsp + 0x20]
test rcx, rcx
je 0x18008ce4b
mov rax, qword [rsp + 0x30]
sub rax, rcx
sar rax, 3
lea rdx, [rax*8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18008ce46
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18008ce46
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.18009b00c
cmp rbx, 1
jb 0x18008ce56
call fcn.18002fb70
cmp byte [0x1800c4a0c], 0
je 0x18008cf3e
cmp dword [0x1800c4c1c], 0
jne 0x18008cf3e
lea rcx, [0x1800c4c1c]
call fcn.180034450
mov eax, dword [0x1800c4c1c]
cmp eax, 1
jne 0x18008cf24
xor ebx, ebx
cmp qword [0x180a4f140], rbx
je 0x18008cf15
lea ecx, [rax + 7]
call fcn.18009ac60
mov rsi, rax
mov qword [rax], rbx
mov rdi, qword [0x180a4f140]
mov rdx, rdi
call fcn.1800890f0
test al, al
jne 0x18008cf15
test rdi, rdi
je 0x18008cf15
mov qword [rsi], rdi
mov edi, dword [0x180a4f148]
movsxd rdx, dword [0x1800c31b0]
shl rdx, 5
add rdx, qword [0x1800c53d0]
lea rcx, [rsp + 0x20]
call fcn.18000f980
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.180082d60
nop
cmp qword [rax + 0x18], 0xf
jbe 0x18008cef9
mov rax, qword [rax]
mov r9d, edi
mov r8b, 1
mov rdx, rax
mov rcx, rsi
call fcn.180080940
nop
lea rcx, [rsp + 0x40]
call fcn.18000fac0
mov dword [0x180a4f148], ebx
mov byte [0x1800c4a0c], 0
jmp 0x18008cf31
cmp eax, 2
jne 0x18008cf3e
xor ebx, ebx
mov byte [0x1800c4a0c], bl
mov dword [0x1800c4c1c], ebx
mov qword [0x180a4f140], rbx
call fcn.180084310
call fcn.18000e070
call fcn.180093e70
call fcn.18008fdb0
movzx eax, byte [0x1800c4c04]
test al, al
je 0x18008cf89
cmp qword [0x1800c4c30], 0
je 0x18008cf85
cmp byte [0x1800c4a0f], 0
jne 0x18008cf85
mov dl, 1
call fcn.180085cb0
mov byte [0x1800c4a0f], 1
movzx eax, byte [0x1800c4c04]
test al, al
jne 0x18008cfa0
cmp byte [0x1800c4a0f], 0
je 0x18008cfa0
xor edx, edx
call fcn.180085cb0
mov byte [0x1800c4a0f], 0
movzx eax, byte [0x1800c4c06]
test al, al
je 0x18008d019
cmp byte [0x1800c4c05], 0
jne 0x18008d015
lea rbx, [0x1800c5668]
cmp qword [0x1800c5680], 0xf
cmova rbx, qword [0x1800c5668]
cmp qword [0x1800c4c38], 0
jne 0x18008cfe9
call fcn.180088bb0
mov rcx, rax
call fcn.180088ee0
mov qword [0x1800c4c38], rax
mov ecx, 8
call fcn.18009ac60
mov rcx, qword [0x1800c4c38]
mov qword [rax], rcx
xor r9d, r9d
mov r8b, 1
mov rdx, rbx
mov rcx, rax
call fcn.180080940
movzx eax, byte [0x1800c4c06]
test al, al
jne 0x18008d07c
cmp byte [0x1800c4c05], 0
je 0x18008d07c
lea rbx, [0x1800c5648]
cmp qword [0x1800c5660], 0xf
cmova rbx, qword [0x1800c5648]
cmp qword [0x1800c4c38], 0
jne 0x18008d057
call fcn.180088bb0
mov rcx, rax
call fcn.180088ee0
mov qword [0x1800c4c38], rax
mov ecx, 8
call fcn.18009ac60
mov rcx, qword [0x1800c4c38]
mov qword [rax], rcx
xor r9d, r9d
mov r8b, 1
mov rdx, rbx
mov rcx, rax
call fcn.180080940
mov rbx, qword [rsp + 0x78]
mov rsi, qword [rsp + 0x80]
add rsp, 0x60
pop rdi
jmp 0x18008e900
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0x57]
sub rsp, 0xf0
mov rax, qword [0x1800c3040]
xor rax, rsp
mov qword [rbp + 0x4f], rax
mov rax, qword [0x1800c49c0]
mov rcx, qword [rax]
test rcx, rcx
je 0x18008ea9d
mov rdx, qword [rcx + 8]
test rdx, rdx
je 0x18008ea9d
mov rax, qword [0x180a4f0a8]
cmp qword [rdx + rax], 0
je 0x18008ea9d
cmp byte [0x1800c4c2c], 0
je 0x18008ea9d
lea rax, section..text
mov qword [rbp + 0x17], rax
mov rax, qword [sym.imp.USER32.dll_GetAsyncKeyState]
mov qword [rbp + 0x1f], rax
xor eax, eax
mov qword [rbp + 0x27], rax
xor ebx, ebx
mov qword [rsp + 0x28], rbx
lea rax, [rbp + 0x17]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
xor edx, edx
lea ecx, [rbx + 0x45]
call fcn.180096e10
test ax, ax
jns 0x18008ea9d
movdqa xmm0, xmmword [0x1800b0ac0]
movdqa xmmword [rbp - 0x69], xmm0
movdqa xmm1, xmmword [0x1800b1040]
movdqa xmmword [rbp - 0x59], xmm1
movdqa xmm0, xmmword [0x1800b0a90]
movdqa xmmword [rbp - 0x49], xmm0
movdqa xmm1, xmmword [0x1800b0820]
movdqa xmmword [rbp - 0x39], xmm1
movdqa xmm0, xmmword [0x1800b0560]
movdqa xmmword [rbp - 0x29], xmm0
movdqa xmm1, xmmword [0x1800b05c0]
movdqa xmmword [rbp - 0x19], xmm1
movdqa xmm0, xmmword [str.:cxtorjO]
movdqa xmmword [rbp - 9], xmm0
mov dword [rbp + 7], 0x1000a12
mov eax, ebx
nop dword [rax]
lea ecx, [rax - 0x4e]
xor byte [rbp + rax - 0x69], cl
inc rax
cmp rax, 0x72
jb 0x18008ea10
mov byte [rbp + 0xa], bl
xorps xmm0, xmm0
movups xmmword [rbp + 0x2f], xmm0
mov qword [rbp + 0x3f], rbx
mov qword [rbp + 0x47], rbx
lea rax, [rbp - 0x69]
mov r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp byte [rax + r8], bl
jne 0x18008ea40
lea rdx, [rbp - 0x69]
lea rcx, [rbp + 0x2f]
call fcn.18000fe70
nop
lea rdi, [rbp + 0x2f]
cmp qword [rbp + 0x47], 0xf
cmova rdi, qword [rbp + 0x2f]
call fcn.180088bb0
mov rcx, rax
call fcn.180088ee0
mov rbx, rax
mov ecx, 8
call fcn.18009ac60
mov qword [rax], rbx
xor r9d, r9d
mov r8b, 1
mov rdx, rdi
mov rcx, rax
call fcn.180080940
nop
lea rcx, [rbp + 0x2f]
call fcn.18000fac0
mov rcx, qword [rbp + 0x4f]
xor rcx, rsp
call fcn.18009ab20
lea r11, [rsp + 0xf0]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret