Function at 0x1800087d0
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
mov edx, 0x208
mov r15d, dword [rbp + r12*4 - 4]
add r15, r14
call fcn.1800079db
mov rcx, r15
call fcn.18000773b
mov r9d, eax
test eax, eax
je 0x180008906
cmp eax, 6
jbe 0x180008895
mov ecx, eax
lea rdx, [rsp + rcx*2 + 0x870]
lea r10, [r15 + rcx]
sub rdx, r10
lea r11, [rcx + rcx]
cmp rdx, r11
jg 0x180008820
neg rdx
cmp rdx, rcx
jle 0x180008895
xor edx, edx
mov r9d, eax
mov r11d, 1
xor r10d, r10d
shr r9d, 1
je 0x180008868
inc edx
lea r11d, [rax + r10]
movsx ecx, byte [r11 + r15]
mov word [rsp + r11*2 + 0x870], cx
lea r11d, [rax + r10 - 1]
movsx r8d, byte [r11 + r15]
cmp eax, dword [rcx - 0x7d]
ret 0x66fe
mov dword [rsp + r11*2 + 0x870], r8d
cmp edx, r9d
jb 0x180008833
lea r11d, [rdx + rdx + 1]
lea r9d, [r11 - 1]
cmp r9d, eax
jae 0x180008888
neg r11d
add r11d, eax
inc r11d
movsx r9d, byte [r11 + r15]
mov word [rsp + r11*2 + 0x870], r9w
mov dword [rsp + r11*2 + 0x870], r9d
lea r9d, [rax + 1]
sub eax, r9d
lea r9d, [rax + 1]
jmp 0x180008906
xor r10d, r10d
mov r11d, eax
mov edx, 1
xor ecx, ecx
shr r11d, 1
je 0x1800088e6
inc r10d
lea r9d, [rax + rcx]
movsx edx, byte [r9 + r15]
mov word [rsp + r9*2 + 0x870], dx
lea r9d, [rax + rcx - 1]
movsx r8d, byte [r9 + r15]
add ecx, 0xfffffffe
mov word [rsp + r9*2 + 0x870], r8w
cmp r10d, r11d
jb 0x1800088a7
lea r9d, [r10 + r10]
neg r9d
lea edx, [r10 + r10 + 1]
add r9d, eax
lea r10d, [rdx - 1]
cmp r10d, eax
jae 0x180008906
sub eax, edx
mov r9d, eax
lea r10d, [rax + 1]
movsx r11d, byte [r10 + r15]
mov word [rsp + r10*2 + 0x870], r11w
lea rcx, [rsp + 0x870]
movsx r15d, byte [r9 + r15]
mov word [rsp + r9*2 + 0x870], r15w
call fcn.18000777b
mov r9d, eax
xor r10d, r10d
test r9d, r9d
jbe 0x18000898f
mov eax, r9d
xor edx, edx
mov ecx, dword [rdi + 0xe0]
mov r15d, 1
shr eax, 1
je 0x180008973
imul r10d, ecx
lea r11d, [rdx + rdx]
movsxd r11, r11d
inc edx
movzx r15d, word [rsp + r11*2 + 0x870]
add r10d, r15d
imul r10d, ecx
movzx r11d, word [rsp + r11*2 + 0x872]
add r10d, r11d
cmp edx, eax
jb 0x180008941
lea r15d, [rdx + rdx + 1]
lea r11d, [r15 - 1]
cmp r11d, r9d
jae 0x18000898f
imul ecx, r10d
movsxd r15, r15d
movzx r10d, word [rsp + r15*2 + 0x86e]
add r10d, ecx
movzx r9d, word [r13 + r12*2 - 2]
mov r9d, dword [rsi + r9*4]
add r9, r14
cmp ebx, r10d
jne 0x1800087c5
mov rbp, qword [rsp + 0xc80]
xor r13d, r13d
mov rbx, qword [rsp + 0x48]
mov qword [rbp + 0x50], r9
movsxd rax, dword [rbx + 0x3c]
mov r15, qword [rsp + 0x40]
mov r12, qword [r15 + 0x30]
mov r9d, dword [rax + rbx + 0x88]
mov edx, dword [rdi + 0x44]
mov ebp, edx
mov eax, dword [r9 + rbx + 0x20]
add rax, rbx
mov r15d, dword [r9 + rbx + 0x1c]
mov rsi, rax
mov r14d, dword [r9 + rbx + 0x24]
add r15, rbx
mov qword [rsp + 0xc88], r12
add r14, rbx
inc r13
lea rcx, [rsp + 0xa78]
mov edx, 0x208
mov r12d, dword [rsi + r13*4 - 4]
add r12, rbx
call fcn.1800079db
mov rcx, r12
call fcn.18000773b
mov r9d, eax
test eax, eax
je 0x180008b37
cmp eax, 6
jbe 0x180008ac6
mov ecx, eax
lea rdx, [rsp + rcx*2 + 0xa78]
lea r10, [r12 + rcx]
sub rdx, r10
lea r11, [rcx + rcx]
cmp rdx, r11
jg 0x180008a51
neg rdx
cmp rdx, rcx
jle 0x180008ac6
xor edx, edx
mov r9d, eax
mov r11d, 1
xor r10d, r10d
shr r9d, 1
je 0x180008a99
inc edx
lea r11d, [rax + r10]
movsx ecx, byte [r11 + r12]
mov word [rsp + r11*2 + 0xa78], cx
lea r11d, [rax + r10 - 1]
movsx r8d, byte [r11 + r12]
add r10d, 0xfffffffe
mov word [rsp + r11*2 + 0xa78], r8w
cmp edx, r9d
jb 0x180008a64
lea r11d, [rdx + rdx + 1]
lea r9d, [r11 - 1]
cmp r9d, eax
jae 0x180008ab9
neg r11d
add r11d, eax
inc r11d
movsx r9d, byte [r11 + r12]
mov word [rsp + r11*2 + 0xa78], r9w
lea r9d, [rax + 1]
sub eax, r9d
lea r9d, [rax + 1]
jmp 0x180008b37
xor r10d, r10d
mov r11d, eax
mov edx, 1
xor ecx, ecx
shr r11d, 1
je 0x180008b17
inc r10d
lea r9d, [rax + rcx]
movsx edx, byte [r9 + r12]
mov word [rsp + r9*2 + 0xa78], dx
lea r9d, [rax + rcx - 1]
movsx r8d, byte [r9 + r12]
add ecx, 0xfffffffe
mov word [rsp + r9*2 + 0xa78], r8w
cmp r10d, r11d
jb 0x180008ad8
lea r9d, [r10 + r10]
neg r9d
lea edx, [r10 + r10 + 1]
add r9d, eax
lea r10d, [rdx - 1]
cmp r10d, eax
jae 0x180008b37
sub eax, edx
mov r9d, eax
lea r10d, [rax + 1]
movsx r11d, byte [r10 + r12]
mov word [rsp + r10*2 + 0xa78], r11w
lea rcx, [rsp + 0xa78]
movsx r12d, byte [r9 + r12]
mov word [rsp + r9*2 + 0xa78], r12w
call fcn.18000777b
mov r10d, eax
xor ecx, ecx
test r10d, r10d
jbe 0x180008bc1
mov eax, r10d
xor edx, edx
mov r9d, dword [rdi + 0xe0]
mov r12d, 1
shr eax, 1
je 0x180008ba4
imul ecx, r9d
lea r11d, [rdx + rdx]
movsxd r11, r11d
inc edx
movzx r12d, word [rsp + r11*2 + 0xa78]
add ecx, r12d
imul ecx, r9d
movzx r11d, word [rsp + r11*2 + 0xa7a]
add ecx, r11d
cmp edx, eax
jb 0x180008b72
lea r12d, [rdx + rdx + 1]
lea r11d, [r12 - 1]
cmp r11d, r10d
jae 0x180008bc1
imul r9d, ecx
movsxd r12, r12d
movzx ecx, word [rsp + r12*2 + 0xa76]
add ecx, r9d
movzx r9d, word [r14 + r13*2 - 2]
mov r9d, dword [r15 + r9*4]
add r9, rbx
cmp ebp, ecx
jne 0x1800089f6
movsxd rbx, dword [rdi + 0x68]
xor r13d, r13d
mov eax, dword [rdi]
mov r12, qword [rsp + 0xc88]
xor eax, dword [rdi + 0xcc]
lea rdx, [r12 + rbx]
mov r15d, dword [rdx]
mov r14d, dword [rdx + 4]
mov qword [rsp + 0xca8], r9
mov rbp, qword [rsp + 0xc80]
mov rsi, qword [rsp + 0xca0]
cmp r15d, eax
je 0x1800091be
mov ecx, 0x40
mov rdx, r15
call rsi
mov r13, rax
mov rcx, r13
lea rdx, [r12 + rbx + 8]
mov r8d, r15d
call fcn.1800076bb
test r15d, r15d
jbe 0x180008ce5
lea eax, [r15 + 3]
sar eax, 1
shr eax, 0x1e
lea eax, [rax + r15 + 3]
sar eax, 2
movsxd r9, eax
cmp r9, 4
jl 0x1800098aa
mov rdx, r13
and rdx, 0xf
test edx, edx
je 0x180008c79
test dl, 3
jne 0x1800098aa
neg edx
add edx, 0x10
shr edx, 2
mov ebx, edx
lea r10, [rbx + 4]
cmp r9, r10
jl 0x1800098aa
mov r10d, eax
sub r10d, edx
and r10d, 3
sub eax, r10d
movsxd rax, eax
test edx, edx
mov edx, 0
jbe 0x180008cae
xor dword [r13 + rdx*4], r14d
inc rdx
cmp rdx, rbx
jb 0x180008ca1
movd xmm0, r14d
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r13 + rbx*4]
pxor xmm1, xmm0
movdqu xmmword [r13 + rbx*4], xmm1
add rbx, 4
cmp rbx, rax
jb 0x180008cb8
cmp rax, r9
jae 0x180008ce5
xor eax, eax
invalid
and dh, ah
invalid