Function at 0x18008e550
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xec0]
sub rsp, 0xfc0
mov rax, qword [0x1800b88d0]
xor rax, rsp
mov qword [rbp + 0xeb0], rax
mov rax, qword [rbp + 0xf28]
mov r11, rcx
mov r15, qword [rbp + 0xf20]
mov qword [rbp - 0x68], rax
mov rax, qword [rbp + 0xf30]
mov qword [rsp + 0x78], rax
lea eax, [rdx - 7]
mov qword [rbp - 0x78], r9
mov qword [rbp - 0x60], r8
mov qword [rsp + 0x68], rcx
mov qword [rbp - 0x58], r15
mov dword [rsp + 0x38], eax
cmp edx, eax
jbe 0x18008ea39
movzx r8d, word [rsp + 0x30]
lea r9d, [rdx - 0x43]
movzx esi, word [rsp + 0x30]
movzx r14d, word [rsp + 0x30]
movzx eax, word [rsp + 0x30]
mov r12d, dword [rsp + 0x64]
movzx edi, word [rsp + 0x30]
movzx r13d, word [rsp + 0x30]
movzx ebx, word [rsp + 0x30]
mov ecx, dword [rsp + 0x38]
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x40], r8d
mov qword [rbp - 0x70], rsi
mov qword [rsp + 0x70], r14
mov dword [rsp + 0x48], eax
xor edx, edx
mov r10d, 0xffff8000
cmp r9d, 9
ja case.default.0x18008e632
mov eax, r9d
lea r9, [0x180000000]
mov ecx, dword [r9 + rax*4 + 0x8ea68]
add rcx, r9
jmp rcx
mov r10d, dword [r15]
movzx r9d, dx
test r10d, r10d
jle 0x18008e6ac
mov r14, qword [rsp + 0x78]
nop word [rax + rax]
mov edx, 0x65
movsx r8, r9w
nop dword [rax]
cmp edx, 0x65
jne 0x18008e68c
movsx r12d, word [r14 + r8*2]
movsx ecx, word [r11 + r8*2]
lea eax, [rcx + r12]
sub r12d, ecx
shl eax, 0xa
mov dword [rbp + r8*4 - 0x50], eax
mov eax, r12d
shl eax, 0xa
mov dword [rbp + r8*4 + 0x370], eax
add edx, 0x586
cmp edx, 0x586
jbe 0x18008e660
inc r9w
movsx eax, r9w
cmp eax, r10d
jl 0x18008e650
mov r14, qword [rsp + 0x70]
mov r9, qword [rbp - 0x68]
lea rax, [0x1800ac578]
mov qword [rsp + 0x28], rax
lea rdx, [rsp + 0x30]
lea rax, [rbp + 0x730]
mov dword [rsp + 0x30], r10d
mov r8d, 0x82
mov qword [rsp + 0x20], rax
lea rcx, [rbp - 0x50]
call fcn.180087c90
mov eax, dword [r15]
lea rdx, [rsp + 0x30]
mov r9, qword [rbp - 0x60]
lea rcx, [rbp + 0x370]
mov dword [rsp + 0x30], eax
mov r8d, 0x82
lea rax, [0x1800ac344]
mov qword [rsp + 0x28], rax
lea rax, [rbp + 0xaf0]
mov qword [rsp + 0x20], rax
call fcn.180087c90
jmp 0x18008e9f8
mov eax, dword [rsp + 0x64]
mov ecx, eax
test eax, eax
jle 0x18008e758
mov r9, qword [rbp - 0x80]
nop
movzx eax, word [r9]
add r9, 2
cwd
xor ax, dx
sub ax, dx
cmp ax, r8w
cmovg r8w, ax
dec ecx
test ecx, ecx
jg 0x18008e730
mov dword [rsp + 0x40], r8d
mov qword [rbp - 0x80], r9
movsx eax, r8w
lea rcx, [rsp + 0x30]
imul eax, eax
mov edx, 0x10c
mov dword [rsp + 0x30], eax
call fcn.180075400
mov rsi, rax
mov qword [rbp - 0x70], rax
jmp 0x18008e9f8
mov eax, dword [r15]
lea r8, [rsp + 0x40]
xor edx, edx
mov dword [rsp + 0x40], eax
mov ecx, 0x100
call fcn.180093f10
mov r14, rax
mov qword [rsp + 0x70], rax
mov rax, qword [rsp + 0x78]
mov r8d, 0xffffffff
mov qword [rbp - 0x80], rax
mov dword [rsp + 0x40], r8d
jmp 0x18008e9fd
mov eax, dword [r11]
mov dword [rsp + 0x64], eax
jmp case.0x18008e632.2
cmp dword [r15], 0
movzx ecx, dx
mov word [rsp + 0x3c], dx
jle case.0x18008e632.2
xor esi, esi
movzx r14d, dx
nop dword [rax + rax]
mov eax, 0x66
mov dword [rsp + 0x30], eax
nop dword [rax]
sub eax, 0x66
je 0x18008e9aa
cmp eax, 0x23
jne 0x18008e9c1
mov dword [rsp + 0x50], r12d
mov r15d, 0xf7
nop dword [rax]
mov eax, r15d
sub eax, 0xc4
je 0x18008e879
sub eax, 0x33
je 0x18008e857
sub eax, 0x88
je 0x18008e83a
sub eax, 0x33
je 0x18008e834
cmp eax, 0xbb
je 0x18008e8ac
jmp 0x18008e898
movzx edi, r13w
jmp 0x18008e898
mov rcx, qword [rsp + 0x50]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea rcx, [rsp + 0x50]
mov qword [rsp + 0x50], rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x18008e88d
movzx r13d, word [rsp + 0x50]
cmp r12d, 0x7fff
jle 0x18008e86e
mov r13d, 0x7fff
jmp 0x18008e898
cmp r12d, r10d
jge 0x18008e898
movzx r13d, r10w
jmp 0x18008e898
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
xor edx, edx
mov qword [rsp + 0x58], rdx
xor esi, esi
mov r12d, dword [rsp + 0x50]
mov r10d, 0xffff8000
add r15d, 0xbb
cmp r15d, 0x49e
jb 0x18008e810
mov rcx, qword [rbp - 0x78]
mov r15d, 0xf7
mov edx, dword [rsp + 0x48]
movsx rax, r14w
inc r14w
mov word [rcx + rax*2], di
movsx rax, word [rsp + 0x3c]
mov r12d, dword [rbp + rax*4 + 0x730]
add r12d, 0x200
sar r12d, 0xa
mov ecx, r12d
mov dword [rsp + 0x58], ecx
mov eax, r15d
sub eax, 0xc4
je 0x18008e95b
sub eax, 0x33
je 0x18008e930
sub eax, 0x88
je 0x18008e913
sub eax, 0x33
je 0x18008e90e
cmp eax, 0xbb
je 0x18008e98d
jmp 0x18008e973
movzx ebx, dx
jmp 0x18008e973
mov rcx, qword [rsp + 0x58]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x58], rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
jmp 0x18008e96b
movzx edx, word [rsp + 0x58]
mov dword [rsp + 0x48], edx
cmp ecx, 0x7fff
jle 0x18008e94c
mov edx, 0x7fff
mov dword [rsp + 0x48], edx
jmp 0x18008e973
cmp ecx, r10d
jge 0x18008e973
movzx edx, r10w
mov dword [rsp + 0x48], edx
jmp 0x18008e973
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov qword [rsp + 0x60], rsi
mov edx, dword [rsp + 0x48]
mov ecx, dword [rsp + 0x58]
add r15d, 0xbb
mov r10d, 0xffff8000
cmp r15d, 0x49e
jb 0x18008e8e6
mov rcx, qword [rbp - 0x78]
mov r10d, 0xffff8000
movsx rax, r14w
inc r14w
mov word [rcx + rax*2], bx
movzx ecx, word [rsp + 0x3c]
jmp 0x18008e9c1
movsx rax, cx
mov r12d, dword [rbp + rax*4 + 0xaf0]
add r12d, 0x200
sar r12d, 0xa
mov eax, dword [rsp + 0x30]
add eax, 0x23
mov dword [rsp + 0x30], eax
cmp eax, 0xac
jb 0x18008e7f0
mov r15, qword [rbp - 0x58]
inc cx
movsx eax, cx
mov word [rsp + 0x3c], cx
cmp eax, dword [r15]
jl 0x18008e7e0
mov rsi, qword [rbp - 0x70]
mov r14, qword [rsp + 0x70]
mov r8d, dword [rsp + 0x40]
mov r11, qword [rsp + 0x68]
mov ecx, dword [rsp + 0x38]
mov edx, dword [rsp + 0x60]
dec edx
mov dword [rsp + 0x60], edx
lea eax, [rdx + 0x43]
cmp eax, ecx
jbe 0x18008ea39
mov r9d, edx
jmp 0x18008e60b
test r8w, r8w
je 0x18008ea34
movzx eax, r14w
sub ax, si
cmp si, r14w
cmovle dx, ax
movzx eax, dx
jmp 0x18008ea3e
movzx eax, word [rsp + 0x30]
mov rcx, qword [rbp + 0xeb0]
xor rcx, rsp
call fcn.1800a5da0
mov rbx, qword [rsp + 0x1008]
add rsp, 0xfc0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret