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

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r15
sub rsp, 0xa0
mov rax, qword [section..data]
xor rax, rsp
mov qword [rsp + 0x90], rax
mov rax, qword gs:[0x58]
mov rsi, rcx
mov qword [rsp + 0x48], rcx
xor r9d, r9d
mov ecx, dword [0x180014820]
mov r12d, 0x148
mov r15, qword [rax + rcx*8]
mov ecx, 0x2ac
mov eax, dword [rcx + r15]
test al, 1
jne 0x18000a4a2
movups xmm0, xmmword [0x180012228]
or eax, 1
mov qword [r15 + r12], r9
lea r8, [r15 + r12]
mov dword [rcx + r15], eax
mov eax, dword [0x180012238]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], eax
mov edx, r9d
xor eax, eax
mov dword [r8 + 8], r9d
mov byte [r8 + 0xc], r9b
mov dword [r8 + 0x10], eax
lea rax, [rsp + 0x30]
sub r8, rax
movaps xmmword [rsp + 0x20], xmm0
nop dword [rax]
mov eax, dword [rcx]
inc edx
mov dword [rcx + r8 + 0x10], eax
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x18000a490
lea r10, [r12 + r15]
mov qword [rsp + 0x50], r10
cmp byte [r10 + 0xc], r9b
jne 0x18000a512
lea rcx, [r10 + 0x10]
mov r8d, r9d
nop dword [rax + rax]
mov eax, dword [r10 + 4]
mov edx, dword [r10]
lea r9d, [rax + 1]
cmp edx, r9d
je 0x18000a4f7
lea r9d, [rax + 2]
cmp edx, r9d
je 0x18000a4f7
cmp edx, eax
je 0x18000a4ff
lea r9d, [rax + 4]
cmp edx, r9d
jne 0x18000a4f0
add eax, 3
xor dword [rcx], eax
inc dword [r10]
jmp 0x18000a4c0
add eax, 5
cmp edx, eax
jne 0x18000a505
xor dword [rcx], r9d
inc dword [r10]
jmp 0x18000a4c0
lea eax, [r8 + 0x33]
xor dword [rcx], eax
inc r8d
add rcx, 4
cmp r8d, 1
jb 0x18000a4c0
mov eax, dword [r10 + 0x10]
mov byte [r10 + 0xc], 1
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov ebx, dword [rcx + r10 + 0x88]
add rbx, r10
cmp rbx, r10
je 0x18000a5a7
mov r9d, dword [rbx + 0x18]
test r9d, r9d
je 0x18000a5a7
mov edi, dword [rbx + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x32f70d70
lea rcx, [rdi + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x18000a5a2
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x10dbd33
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x18000a580
cmp r8d, 0x14b02265
je 0x18000a5ac
test r9d, r9d
jne 0x18000a560
mov rax, qword [rax]
jmp 0x18000a530
mov ecx, dword [rbx + 0x24]
add rcx, r10
movzx edx, word [rcx + r9*2]
mov ecx, dword [rbx + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
lea rcx, [rsp + 0x60]
add rax, r10
call rax
mov rbp, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x70]
cmp rsi, 0x40000000
jbe 0x18000a5eb
lea rax, [rsi - 0x40000000]
cmp rbp, rax
cmovb rbp, rax
mov rbx, qword [0x1800148a8]
lea rdi, [rsi + 0x40000000]
cmp rcx, rdi
cmovbe rdi, rcx
sub rdi, 0xfff
mov qword [rsp + 0x40], rdi
test rbx, rbx
je 0x18000a62e
cmp rbx, rbp
jb 0x18000a626
cmp rbx, rdi
jae 0x18000a626
cmp qword [rbx + 8], 0
jne 0x18000aa6f
mov rbx, qword [rbx]
test rbx, rbx
jne 0x18000a611
mov qword [rsp + 0xd8], r13
mov r13d, 0x40
mov qword [rsp + 0xe0], r14
mov r14, rsi
cmp rsi, rbp
jb 0x18000a83b
lea rsi, [r12 + r15]
nop dword [rax]
nop dword [rax + rax]
mov r8d, dword [rsp + 0x88]
mov rdx, rbp
mov rcx, r14
call fcn.180009f20
mov r14, rax
test rax, rax
je 0x18000a82d
mov ecx, 0x2ac
xor r9d, r9d
mov eax, dword [rcx + r15]
test al, 1
jne 0x18000a6f2
movups xmm0, xmmword [0x180012228]
or eax, 1
mov qword [rsi], r9
mov dword [rcx + r15], eax
mov r8, rsi
mov eax, dword [0x180012238]
lea rcx, [rsp + 0x30]
mov dword [rsp + 0x30], eax
mov edx, r9d
xor eax, eax
mov dword [rsi + 8], r9d
mov byte [rsi + 0xc], r9b
mov dword [r12 + r15 + 0x10], eax
lea rax, [rsp + 0x30]
sub r8, rax
movaps xmmword [rsp + 0x20], xmm0
nop dword [rax]
nop word [rax + rax]
mov eax, dword [rcx]
inc edx
mov dword [r8 + rcx + 0x10], eax
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x18000a6e0
cmp byte [rsi + 0xc], 0
jne 0x18000a74e
lea rcx, [rsi + 0x10]
nop dword [rax]
mov eax, dword [rsi + 4]
mov edx, dword [rsi]
lea r8d, [rax + 1]
cmp edx, r8d
je 0x18000a734
lea r8d, [rax + 2]
cmp edx, r8d
je 0x18000a734
cmp edx, eax
je 0x18000a73b
lea r8d, [rax + 4]
cmp edx, r8d
jne 0x18000a72d
add eax, 3
xor dword [rcx], eax
inc dword [rsi]
jmp 0x18000a700
add eax, 5
cmp edx, eax
jne 0x18000a741
xor dword [rcx], r8d
inc dword [rsi]
jmp 0x18000a700
lea eax, [r9 + 0x33]
xor dword [rcx], eax
inc r9d
add rcx, 4
cmp r9d, 1
jb 0x18000a700
mov eax, dword [rsi + 0x10]
mov byte [rsi + 0xc], 1
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x18000a7e7
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x18000a7e7
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0x44712e0a
lea rcx, [rbx + r9*4]
mov edx, dword [rcx + r10]
add rdx, r10
movzx ecx, byte [rdx]
inc rdx
test cl, cl
je 0x18000a7e2
nop
movsx ecx, cl
lea rdx, [rdx + 1]
xor ecx, r8d
imul r8d, ecx, 0x10dbd33
movzx ecx, byte [rdx - 1]
test cl, cl
jne 0x18000a7c0
cmp r8d, 0xcca157b2
je 0x18000a7ec
test r9d, r9d
jne 0x18000a7a0
mov rax, qword [rax]
jmp 0x18000a770
mov ecx, dword [rdi + 0x24]
mov r8d, 0x3000
add rcx, r10
movzx edx, word [rcx + r9*2]
mov r9d, r13d
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov edx, 0x1000
add rax, r10
mov rcx, r14
call rax
mov rbx, rax
test rax, rax
jne 0x18000aa1e
cmp r14, rbp
jae 0x18000a660
jmp 0x18000a836
test rbx, rbx
jne 0x18000aa1e
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x48]
cmp rbp, rdi
ja 0x18000aa5f
lea rsi, [r12 + r15]
nop dword [rax]
mov r8d, dword [rsp + 0x88]
mov rdx, rdi
mov rcx, rbp
call fcn.18000a180
mov rbp, rax
test rax, rax
je 0x18000aa5f
mov ecx, 0x2ac
xor r9d, r9d
mov eax, dword [rcx + r15]
test al, 1
jne 0x18000a8e2
movups xmm0, xmmword [0x180012228]
or eax, 1
mov qword [rsi], r9
mov dword [rcx + r15], eax
mov r8, rsi
mov eax, dword [0x180012238]
xor ecx, ecx
mov dword [rsp + 0x30], eax
mov edx, r9d
mov rax, qword [rsp + 0x50]
mov dword [rsi + 8], r9d
mov byte [rsi + 0xc], r9b
movaps xmmword [rsp + 0x20], xmm0
mov dword [rax + 0x10], ecx
lea rax, [rsp + 0x30]
sub r8, rax
lea rcx, [rsp + 0x30]
nop dword [rax]
nop dword [rax + rax]
mov eax, dword [rcx]
inc edx
mov dword [rcx + r8 + 0x10], eax
lea rcx, [rcx + 4]
cmp edx, 1
jb 0x18000a8d0
cmp byte [rsi + 0xc], 0
jne 0x18000a93e
lea rcx, [rsi + 0x10]
mov r8d, r9d
nop
mov eax, dword [rsi + 4]
mov edx, dword [rsi]
lea r9d, [rax + 1]
cmp edx, r9d
je 0x18000a924
lea r9d, [rax + 2]
cmp edx, r9d
je 0x18000a924
cmp edx, eax
je 0x18000a92b
lea r9d, [rax + 4]
cmp edx, r9d
jne 0x18000a91d
add eax, 3
xor dword [rcx], eax
inc dword [rsi]
jmp 0x18000a8f0
add eax, 5
cmp edx, eax
jne 0x18000a931
xor dword [rcx], r9d
inc dword [rsi]
jmp 0x18000a8f0
lea eax, [r8 + 0x33]
xor dword [rcx], eax
inc r8d
add rcx, 4
cmp r8d, 1
jb 0x18000a8f0
mov eax, dword [rsi + 0x10]
mov byte [rsi + 0xc], 1
mov rcx, qword gs:[rax]
mov rax, qword [rcx + 0x18]
mov rax, qword [rax + 0x10]
nop dword [rax]
nop word [rax + rax]
mov r10, qword [rax + 0x30]
movsxd rcx, dword [r10 + 0x3c]
mov edi, dword [rcx + r10 + 0x88]
add rdi, r10
cmp rdi, r10
je 0x18000a9d7
mov r9d, dword [rdi + 0x18]
test r9d, r9d
je 0x18000a9d7
mov ebx, dword [rdi + 0x20]
nop dword [rax]
nop dword [rax + rax]
dec r9d
mov r8d, 0xa27de431
lea rcx, [rbx + r9*4]
mov ecx, dword [rcx + r10]
add rcx, r10
movzx edx, byte [rcx]
inc rcx
test dl, dl
je 0x18000a9d2
nop
movsx edx, dl
lea rcx, [rcx + 1]
xor edx, r8d
imul r8d, edx, 0x10dbd33
movzx edx, byte [rcx - 1]
test dl, dl
jne 0x18000a9b0
cmp r8d, 0x77231c5
je 0x18000a9dc
test r9d, r9d
jne 0x18000a990
mov rax, qword [rax]
jmp 0x18000a960
mov ecx, dword [rdi + 0x24]
mov r8d, 0x3000
add rcx, r10
movzx edx, word [rcx + r9*2]
mov r9d, r13d
mov ecx, dword [rdi + 0x1c]
add rcx, r10
mov eax, dword [rcx + rdx*4]
mov edx, 0x1000
add rax, r10
mov rcx, rbp
call rax
mov rbx, rax
test rax, rax
jne 0x18000aa1e
mov rdi, qword [rsp + 0x40]
cmp rbp, rdi
jbe 0x18000a850
jmp 0x18000aa5f
xor r9d, r9d
lea rcx, [rbx + 0x40]
mov dword [rbx + 0x10], r9d
nop dword [rax]
mov qword [rcx], r9
mov rax, rcx
mov qword [rbx + 8], rcx
add r13, 0x40
add rcx, 0x40
mov r9, rax
cmp r13, 0xfc0
jbe 0x18000aa30
mov rax, qword [0x1800148a8]
mov qword [rbx], rax
mov qword [0x1800148a8], rbx
mov r14, qword [rsp + 0xe0]
mov r13, qword [rsp + 0xd8]
mov rax, rbx
mov rcx, qword [rsp + 0x90]
xor rcx, rsp
call fcn.180010210
mov rbx, qword [rsp + 0xe8]
add rsp, 0xa0
pop r15
pop r12
pop rdi
pop rsi
pop rbp
ret