Function at 0x140067450
Capabilities:
Parse pe header

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1a0]
sub rsp, 0x2a0
movaps xmmword [rsp + 0x290], xmm6
mov rax, qword [0x14009e680]
xor rax, rsp
mov qword [rbp + 0x180], rax
mov dword [rsp + 0x64], r9d
mov qword [rbp - 0x78], r8
mov r13, rdx
mov r15, rcx
mov qword [rbp - 0x48], rcx
mov qword [rbp - 0x48], rdx
xor edi, edi
mov dword [rsp + 0x60], edi
lea rcx, str.user32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
lea rcx, str.win32u.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryA]
mov rcx, qword [r13 + 0x10]
movabs rax, 0x7fffffffffffffff
sub rax, rcx
cmp rax, 0x1c
jb 0x140067eec
mov rax, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x1400674e8
mov rax, qword [r13]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], 0x1c
lea r9, str.C:WindowsSystem32drivers_
mov r8, r13
movzx edx, byte [rsp + 0x40]
lea rcx, [rbp - 0x28]
call fcn.14005a440
nop
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x68]
call fcn.1400581d0
nop
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 7
cmova rcx, qword [rbp - 0x68]
mov r9d, 0xffffffff
mov r8d, 3
lea rdx, [rbp + 0x160]
call fcn.140072874
mov edx, eax
test eax, eax
jne 0x1400675a3
mov ecx, dword [rbp + 0x170]
test cl, 1
mov eax, 0x1ff
mov r8d, 0x16d
cmovne eax, r8d
mov dword [rsp + 0x54], eax
mov eax, ecx
shr eax, 0xa
test al, 1
je 0x140067598
mov eax, dword [rbp + 0x174]
cmp eax, 0xa000000c
jne 0x14006758a
mov ecx, 4
jmp 0x1400675c6
cmp eax, 0xa0000003
jne 0x140067598
mov ecx, 0xa
jmp 0x1400675c6
shr ecx, 4
and ecx, 1
or ecx, 2
jmp 0x1400675c6
mov dword [rsp + 0x54], 0xffff
sub eax, 2
je 0x1400675c1
sub eax, 1
je 0x1400675c1
sub eax, 0x32
je 0x1400675c1
cmp eax, 0x46
mov ecx, edi
jne 0x1400675c6
mov ecx, 1
mov dword [rsp + 0x50], edx
lea rax, [0x14009e530]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
test ecx, ecx
je 0x1400676c4
cmp ecx, 1
sete bl
lea rcx, [rbp - 0x68]
call fcn.1400629f0
test bl, bl
je 0x1400676d3
xorps xmm0, xmm0
movups xmmword [r15 + 0x40], xmm0
xorps xmm1, xmm1
movups xmmword [r15], xmm1
mov qword [r15 + 0x10], rdi
mov qword [r15 + 0x18], 0xf
mov byte [r15], 0
movups xmmword [r15 + 0x20], xmm0
mov qword [r15 + 0x30], rdi
mov qword [r15 + 0x38], 0xf
mov byte [r15 + 0x20], 0
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x140067670
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14006766b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067ede
call fcn.140072f0c
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x1400676bb
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x1400676b6
add rdx, 0x27
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x140067ee5
mov rcx, rax
call fcn.140072f0c
mov qword [r13 + 0x10], rdi
jmp 0x140067d07
mov bl, 1
test edx, edx
jne 0x140067ef2
jmp 0x1400675ef
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x50]
call fcn.140074120
lea rbx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rbx, qword [rbp - 0x28]
lea rax, [0x140084a48]
mov qword [rbp + 0x50], rax
lea rcx, [rbp + 0x100]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::constructor_void____ptr64]
nop
mov dword [rsp + 0x60], 6
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x60]
lea rcx, [rbp + 0x50]
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::constructor_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64__bool____ptr64]
nop
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea rsi, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x50], rsi
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x4c], edx
lea rcx, [rbp + 0x60]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::constructor_void____ptr64]
lea rax, vtable.std::basic_filebuf_char__struct_std::char_traits_char__.0
mov qword [rbp + 0x60], rax
mov byte [rbp + 0xdc], 0
mov byte [rbp + 0xd1], 0
lea rcx, [rbp + 0x60]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
mov qword [rbp + 0xe0], rdi
mov rax, qword [0x1400a0210]
mov qword [rbp + 0xd4], rax
mov qword [rbp + 0xc8], rdi
mov r9d, 0x40
mov r8d, 0x21
mov rdx, rbx
lea rcx, [rbp + 0x60]
call fcn.14006b740
test rax, rax
jne 0x1400677d2
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x50]
add rcx, rax
xor r8d, r8d
mov edx, 2
call qword [sym.imp.MSVCP140.dll_public:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::setstate_int__bool____ptr64]
nop
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x50], rsi
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x4c], edx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rax
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x50]
add rcx, rax
call qword [sym.imp.MSVCP140.dll_public:_class_std::basic_streambuf_char__struct_std::char_traits_char______ptr64___cdecl_std::basic_ios_char__struct_std::char_traits_char__::rdbuf_void_const___ptr64]
mov rbx, rax
test rax, rax
sete r14b
mov byte [rsp + 0x58], r14b
mov byte [rsp + 0x59], 0
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rdi
lea rax, [rbp - 0x40]
mov qword [rbp - 0x70], rax
mov rsi, qword [rsp + 0x58]
shr rsi, 8
mov r12b, 1
test rbx, rbx
je 0x14006788a
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 0x14006785f
movzx esi, al
jmp 0x140067861
xor ebx, ebx
mov r14b, 1
test r12b, r12b
jne 0x140067881
test rdi, rdi
je 0x14006787c
mov rcx, rdi
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 0x14006787e
xor edi, edi
mov r12b, 1
test rbx, rbx
jne 0x1400679ed
test rdi, rdi
jne 0x1400679f6
mov ebx, 0x5a4d
mov rcx, qword [rbp - 0x40]
xorps xmm0, xmm0
cmp word [rcx], bx
je 0x140067a65
movups xmmword [r15 + 0x40], xmm0
xorps xmm1, xmm1
movups xmmword [r15], xmm1
xor ebx, ebx
mov qword [r15 + 0x10], rbx
mov qword [r15 + 0x18], 0xf
mov byte [r15], bl
movups xmmword [r15 + 0x20], xmm0
mov qword [r15 + 0x30], rbx
mov qword [r15 + 0x38], 0xf
mov byte [r15 + 0x20], bl
mov rdx, qword [rbp - 0x30]
sub rdx, rcx
cmp rdx, 0x1000
mov rax, rcx
jb 0x140067906
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067e41
call fcn.140072f0c
xorps xmm0, xmm0
mov qword [rbp - 0x30], rbx
movdqu xmmword [rbp - 0x40], xmm0
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x50], rax
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x4c], edx
lea rcx, [rbp + 0x60]
call fcn.14005b370
lea rcx, [rbp + 0x68]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x100]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x140067999
inc rdx
mov rcx, qword [rbp - 0x28]
cmp rdx, 0x1000
mov rax, rcx
jb 0x140067994
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067ede
call fcn.140072f0c
mov byte [rbp - 0x28], 0
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rbx
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x1400679e4
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r13]
jb 0x1400679df
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140067ee5
mov rcx, r8
call fcn.140072f0c
mov qword [r13 + 0x10], rbx
jmp 0x140067d07
test rdi, rdi
jne 0x140067893
test r14b, r14b
jne 0x140067a11
test rbx, rbx
je 0x140067a2c
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 0x140067a2c
movzx esi, al
xor r14d, r14d
mov byte [rsp + 0x40], sil
mov rax, qword [rbp - 0x38]
cmp rax, qword [rbp - 0x30]
je 0x140067a34
mov byte [rax], sil
inc qword [rbp - 0x38]
jmp 0x140067a46
xor r14d, r14d
mov ebx, r14d
jmp 0x140067a14
lea r8, [rsp + 0x40]
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x40]
call fcn.1400589f0
test rbx, rbx
je 0x140067a5d
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
jne 0x14006784c
mov rbx, r14
jmp 0x140067861
movsxd r12, dword [rcx + 0x3c]
add r12, rcx
cmp dword [r12], 0x4550
jne 0x1400678a8
movups xmmword [rsp + 0x68], xmm0
xor esi, esi
mov qword [rsp + 0x78], rsi
mov qword [rbp - 0x80], rsi
mov r8, 0xffffffffffffffff
mov rax, qword [rbp - 0x78]
inc r8
cmp byte [rax + r8], sil
jne 0x140067a95
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.1400147d0
mov r10, qword [rbp - 0x40]
cmp word [r10], bx
je 0x140067ace
mov rbx, rsi
mov rdi, rsi
lea rcx, [rsp + 0x68]
call fcn.140015020
mov r10, qword [rbp - 0x40]
jmp 0x140067baf
movsxd rcx, dword [r10 + 0x3c]
add rcx, r10
cmp dword [rcx], 0x4550
jne 0x140067ab5
movzx ebx, word [rcx + 6]
movzx edi, word [rcx + 0x14]
add rdi, rcx
movzx r9d, si
mov r14, qword [rbp - 0x80]
mov rsi, qword [rsp + 0x68]
xor eax, eax
cmp ax, bx
jae 0x140067b53
nop dword [rax]
lea r8, [rsp + 0x68]
cmp r14, 0xf
cmova r8, rsi
movzx eax, r9w
lea rcx, [rax + rax*4]
lea r11, [rcx*8]
lea rax, [rdi + 0x18]
add rax, r11
sub r8, rax
nop word [rax + rax]
movzx edx, byte [rax]
movzx ecx, byte [rax + r8]
sub edx, ecx
jne 0x140067b43
inc rax
test ecx, ecx
jne 0x140067b30
test edx, edx
je 0x140067b8b
inc r9w
cmp r9w, bx
jb 0x140067b00
xor eax, eax
mov rbx, rax
mov rdi, rax
cmp r14, 0xf
jbe 0x140067bad
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140067ba1
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067ba1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov ebx, dword [rdi + r11 + 0x20]
mov edi, dword [rdi + r11 + 0x24]
lea rcx, [rsp + 0x68]
call fcn.140015020
jmp 0x140067ba9
mov rcx, rsi
call fcn.140072f0c
mov r10, qword [rbp - 0x40]
xor esi, esi
mov eax, dword [rsp + 0x64]
xorps xmm0, xmm0
cmp rax, rbx
jbe 0x140067d49
movups xmmword [r15 + 0x40], xmm0
xorps xmm1, xmm1
movups xmmword [r15], xmm1
mov qword [r15 + 0x10], rsi
mov qword [r15 + 0x18], 0xf
mov byte [r15], 0
movups xmmword [r15 + 0x20], xmm0
mov qword [r15 + 0x30], rsi
mov qword [r15 + 0x38], 0xf
mov byte [r15 + 0x20], 0
test r10, r10
je 0x140067c36
mov rdx, qword [rbp - 0x30]
sub rdx, r10
mov rax, r10
cmp rdx, 0x1000
jb 0x140067c22
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067e41
mov rcx, r10
call fcn.140072f0c
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rsi
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x50], rax
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x4c], edx
lea rcx, [rbp + 0x60]
call fcn.14005b370
lea rcx, [rbp + 0x68]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x100]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x140067cb8
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067cb3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067ede
call fcn.140072f0c
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x140067d03
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x140067cfe
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140067ee5
mov rcx, r8
call fcn.140072f0c
mov qword [r13 + 0x10], rsi
mov byte [r13], 0
mov qword [r13 + 0x18], 0xf
mov rax, r15
mov rcx, qword [rbp + 0x180]
xor rcx, rsp
call fcn.140072fb0
mov rbx, qword [rsp + 0x2f8]
movaps xmm6, xmmword [rsp + 0x290]
add rsp, 0x2a0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movups xmmword [rbp], xmm0
movdqa xmm6, xmmword [0x140076c60]
movdqa xmmword [rbp + 0x10], xmm6
mov byte [rbp], 0
movups xmmword [rbp + 0x20], xmm0
movdqa xmmword [rbp + 0x30], xmm6
mov byte [rbp + 0x20], 0
movups xmmword [rbp + 0x40], xmm0
lea rdx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rdx, qword [rbp - 0x28]
mov r8, qword [rbp - 0x18]
lea rcx, [rbp]
call fcn.140063030
lea rax, [rbp + 0x20]
cmp rax, r13
je 0x140067db6
mov rdx, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x140067da1
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
lea rcx, [rbp + 0x20]
call fcn.140063030
movdqa xmm6, xmmword [0x140076c60]
movzx eax, word [r12 + 6]
mov dword [rbp + 0x48], eax
mov dword [rbp + 0x40], edi
mov dword [rbp + 0x44], ebx
movaps xmm0, xmmword [rbp]
movups xmmword [r15], xmm0
movaps xmm1, xmmword [rbp + 0x10]
movups xmmword [r15 + 0x10], xmm1
movdqa xmmword [rbp + 0x10], xmm6
mov byte [rbp], 0
movaps xmm0, xmmword [rbp + 0x20]
movups xmmword [r15 + 0x20], xmm0
movaps xmm1, xmmword [rbp + 0x30]
movups xmmword [r15 + 0x30], xmm1
movdqa xmmword [rbp + 0x30], xmm6
mov byte [rbp + 0x20], 0
mov dword [r15 + 0x40], edi
mov dword [r15 + 0x44], ebx
mov dword [r15 + 0x48], eax
lea rcx, [rbp]
call fcn.14005b5f0
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x140067e59
mov rdx, qword [rbp - 0x30]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067e48
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067e48
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140072f0c
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], rsi
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x50], rax
mov rax, qword [rbp + 0x50]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0x4c], edx
lea rcx, [rbp + 0x60]
call fcn.14005b370
lea rcx, [rbp + 0x68]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_istream_char__struct_std::char_traits_char__::destructor_void____ptr64]
lea rcx, [rbp + 0x100]
call qword [sym.imp.MSVCP140.dll_public_virtual:_void___cdecl_std::basic_ios_char__struct_std::char_traits_char__::destructor_void____ptr64]
nop
mov rdx, qword [rbp - 0x10]
cmp rdx, 0xf
jbe 0x140067cb8
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067cb3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067cb3
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
nop
call fcn.140015230
nop
lea r8, [rbp - 0x68]
lea rdx, [rsp + 0x50]
lea rcx, str.exists
call fcn.140062800
int3