Function at 0x140001d58
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x98]
sub rsp, 0x198
mov qword [rbp + 0x80], 0xfffffffffffffffe
xor r14d, r14d
mov dword [rbp + 0xe0], r14d
lea rax, [0x140031928]
mov qword [rsp + 0x70], rax
lea edi, [r14 + 1]
mov dword [rbp + 0xe0], edi
lea rax, vtable.std::basic_istream_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x20], rax
mov dword [rbp + 0x1c], 0x98
mov qword [rsp + 0x78], r14
lea rcx, [rbp + 0x20]
call fcn.140001b90
lea rax, [rbp - 0x80]
mov qword [rbp + 0x68], rax
mov qword [rbp + 0x70], r14
mov dl, 0x20
lea rcx, [rbp + 0x20]
call fcn.140003884
mov byte [rbp + 0x78], al
cmp qword [rbp + 0x68], r14
jne 0x140001df2
mov edx, dword [rbp + 0x30]
or edx, 4
xor r8d, r8d
lea rcx, [rbp + 0x20]
call fcn.140001aa8
nop
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rsp + rcx + 0x70], rax
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rsp + rcx + 0x6c], edx
lea rcx, [rbp - 0x80]
call fcn.140003778
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp - 0x80], rax
xor r8d, r8d
xor edx, edx
lea rcx, [rbp - 0x80]
call fcn.140003660
nop
cmp qword [rbp], r14
jne 0x140001ebb
mov r8d, 0x40
mov edx, edi
lea rcx, str.code.txt
call fcn.140005098
test rax, rax
je 0x140001ebb
mov r8d, edi
mov rdx, rax
lea rcx, [rbp - 0x80]
call fcn.140003660
nop
mov rax, qword [rbp - 0x20]
mov rbx, qword [rax + 8]
mov qword [rsp + 0x48], rbx
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 8]
nop
lea rcx, [rsp + 0x40]
call fcn.140003c40
mov rdx, rax
lea rcx, [rbp - 0x80]
call fcn.140003530
nop
test rbx, rbx
je 0x140001eb9
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x10]
test rax, rax
je 0x140001eb9
mov r8, qword [rax]
mov edx, edi
mov rcx, rax
call qword [r8]
nop
jmp 0x140001ee7
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea r9, [rsp + 0x70]
add rcx, r9
mov edx, dword [rcx + 0x10]
or edx, 2
mov eax, edx
or eax, 4
cmp qword [rcx + 0x48], r14
cmove edx, eax
xor r8d, r8d
call fcn.140001aa8
nop
mov rax, qword [rsp + 0x70]
movsxd rax, dword [rax + 4]
test byte [rbp + rax - 0x80], 6
je 0x140001f32
lea rdx, str.Error_opening_file
call fcn.140003a24
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140003884
mov dl, al
mov rcx, rbx
call fcn.140004294
mov rcx, rbx
call fcn.1400041e0
or r14d, 0xffffffff
jmp 0x140002241
mov qword [rsp + 0x30], r14
mov word [rsp + 0x38], 1
mov rax, qword [rbp + rax - 0x48]
mov qword [rsp + 0x40], rax
test rax, rax
sete byte [rsp + 0x48]
mov byte [rsp + 0x49], r14b
mov qword [rsp + 0x60], r14
mov qword [rsp + 0x68], 0xf
mov byte [rsp + 0x50], r14b
movaps xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm0
movaps xmm1, xmmword [rsp + 0x40]
movdqa xmmword [rsp + 0x40], xmm1
lea r8, [rsp + 0x30]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call fcn.140004458
nop
lea rsi, [rbp - 0x80]
cmp qword [rbp], r14
jne 0x140001fa2
mov rbx, r14
jmp 0x140001fc2
lea rcx, [rbp - 0x80]
call fcn.1400035b8
neg al
sbb rbx, rbx
and rbx, rsi
mov rcx, qword [rbp]
call fcn.14000a2e4
test eax, eax
cmovne rbx, r14
xor edx, edx
lea r8d, [rdx + 2]
lea rcx, [rbp - 0x80]
call fcn.140003660
test rbx, rbx
jne 0x140002001
mov rax, qword [rsp + 0x70]
movsxd rcx, dword [rax + 4]
lea r9, [rsp + 0x70]
add rcx, r9
mov edx, dword [rcx + 0x10]
or edx, 2
mov eax, edx
or eax, 4
cmp qword [rcx + 0x48], r14
cmove edx, eax
xor r8d, r8d
call fcn.140001aa8
mov r13, qword [rsp + 0x60]
shr r13, 1
mov rcx, r13
call fcn.140005efc
mov r10, rax
mov qword [rsp + 0x30], rax
mov r15, qword [rsp + 0x50]
test rax, rax
jne 0x14000205e
lea rdx, str.Memory_allocation_failed
call fcn.140003a24
mov rbx, rax
mov rcx, qword [rax]
movsxd rcx, dword [rcx + 4]
add rcx, rax
mov dl, 0xa
call fcn.140003884
mov dl, al
mov rcx, rbx
call fcn.140004294
mov rcx, rbx
call fcn.1400041e0
or r14d, 0xffffffff
jmp 0x140002208
mov r8, r14
test r13, r13
je 0x1400020fc
mov bl, 0x30
mov r11b, 5
mov r9, qword [rsp + 0x68]
lea rax, [rsp + 0x50]
cmp r9, 0x10
cmovae rax, r15
mov cl, byte [rax + r8*2]
mov al, cl
sub al, bl
cmp al, 9
ja 0x140002091
sub cl, bl
jmp 0x1400020ad
lea eax, [rcx - 0x61]
cmp al, r11b
ja 0x14000209e
sub cl, 0x57
jmp 0x1400020ad
lea eax, [rcx - 0x41]
cmp al, r11b
ja 0x1400020ab
sub cl, 0x37
jmp 0x1400020ad
mov cl, 0xff
lea rax, [rsp + 0x50]
cmp r9, 0x10
cmovae rax, r15
mov dl, byte [rax + r8*2 + 1]
mov al, dl
sub al, bl
cmp al, 9
ja 0x1400020cb
sub dl, bl
jmp 0x1400020e7
lea eax, [rdx - 0x61]
cmp al, r11b
ja 0x1400020d8
sub dl, 0x57
jmp 0x1400020e7
lea eax, [rdx - 0x41]
cmp al, r11b
ja 0x1400020e5
sub dl, 0x37
jmp 0x1400020e7
mov dl, 0xff
shl cl, 4
or cl, dl
mov byte [r8 + r10], cl
add r8, rdi
cmp r8, r13
jb 0x140002074
call fcn.140004650
jmp 0x140002106
mov rax, qword [rax]
mov rcx, qword [rax + 0x40]
cmp word [rcx + 0x18], r14w
jne 0x140002103
mov rsi, qword [rax + 0x10]
movsxd rax, dword [rsi + 0x3c]
mov ecx, dword [rax + rsi + 0x88]
add rcx, rsi
mov edi, dword [rcx + 0x1c]
add rdi, rsi
mov edx, dword [rcx + 0x20]
add rdx, rsi
mov qword [rbp + 0xf0], rdx
mov eax, dword [rcx + 0x24]
add rax, rsi
mov qword [rbp + 0xf8], rax
mov rbx, r14
mov ecx, dword [rcx + 0x18]
mov qword [rbp + 0xe0], rcx
test rcx, rcx
je 0x140002190
movzx eax, word [rax + rbx*2]
mov r12d, dword [rdi + rax*4]
add r12, rsi
mov ecx, dword [rdx + rbx*4]
add rcx, rsi
lea rdx, [0x140031888]
call fcn.140020680
test eax, eax
je 0x140002197
inc rbx
cmp rbx, qword [rbp + 0xe0]
mov rdx, qword [rbp + 0xf0]
mov rax, qword [rbp + 0xf8]
jb 0x140002155
mov r12, qword [rbp + 0xe0]
lea rdx, str.VirtualProtect
mov rcx, rsi
call r12
mov rbx, rax
lea rdx, str.CreateThread
mov rcx, rsi
call r12
mov rdi, rax
lea rdx, str.WaitForSingleObject
mov rcx, rsi
call r12
mov rsi, rax
lea r9, [rbp + 0xe8]
mov r8d, 0x40
mov edx, r13d
mov r12, qword [rsp + 0x30]
mov rcx, r12
call rbx
mov qword [rsp + 0x28], r14
mov dword [rsp + 0x20], r14d
xor r9d, r9d
mov r8, r12
xor edx, edx
xor ecx, ecx
call rdi
or edx, 0xffffffff
mov rcx, rax
call rsi
mov rcx, r12
call fcn.140005eb8
nop
mov rax, qword [rsp + 0x68]
cmp rax, 0x10
jb 0x140002241
lea rdx, [rax + 1]
mov rax, r15
cmp rdx, 0x1000
jb 0x140002238
add rdx, 0x27
mov r15, qword [r15 - 8]
sub rax, r15
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140002277
mov rcx, r15
call fcn.140005eb8
nop
lea rcx, [rbp + 0x20]
call fcn.1400023ac
nop
lea rax, vtable.std::ios_base.0
mov qword [rbp + 0x20], rax
lea rcx, [rbp + 0x20]
call fcn.140004e90
nop
mov eax, r14d
add rsp, 0x198
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.14000b4f0
nop
int3