Function at 0x140066bf0
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 [0x14009d680]
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 0x14006768c
mov rax, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x140066c88
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.1400598a0
nop
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x68]
call fcn.1400572e0
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.140072024
mov edx, eax
test eax, eax
jne 0x140066d43
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 0x140066d38
mov eax, dword [rbp + 0x174]
cmp eax, 0xa000000c
jne 0x140066d2a
mov ecx, 4
jmp 0x140066d66
cmp eax, 0xa0000003
jne 0x140066d38
mov ecx, 0xa
jmp 0x140066d66
shr ecx, 4
and ecx, 1
or ecx, 2
jmp 0x140066d66
mov dword [rsp + 0x54], 0xffff
sub eax, 2
je 0x140066d61
sub eax, 1
je 0x140066d61
sub eax, 0x32
je 0x140066d61
cmp eax, 0x46
mov ecx, edi
jne 0x140066d66
mov ecx, 1
mov dword [rsp + 0x50], edx
lea rax, [0x14009d530]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
test ecx, ecx
je 0x140066e64
cmp ecx, 1
sete bl
lea rcx, [rbp - 0x68]
call fcn.140062170
test bl, bl
je 0x140066e73
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 0x140066e10
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140066e0b
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006767e
call fcn.1400727c0
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x140066e5b
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x140066e56
add rdx, 0x27
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x140067685
mov rcx, rax
call fcn.1400727c0
mov qword [r13 + 0x10], rdi
jmp 0x1400674a7
mov bl, 1
test edx, edx
jne 0x140067692
jmp 0x140066d8f
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x50]
call fcn.1400738d0
lea rbx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rbx, qword [rbp - 0x28]
lea rax, [0x140084958]
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 [0x14009f210]
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.14006aee0
test rax, rax
jne 0x140066f72
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 0x14006702a
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 0x140066fff
movzx esi, al
jmp 0x140067001
xor ebx, ebx
mov r14b, 1
test r12b, r12b
jne 0x140067021
test rdi, rdi
je 0x14006701c
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 0x14006701e
xor edi, edi
mov r12b, 1
test rbx, rbx
jne 0x14006718d
test rdi, rdi
jne 0x140067196
mov ebx, 0x5a4d
mov rcx, qword [rbp - 0x40]
xorps xmm0, xmm0
cmp word [rcx], bx
je 0x140067205
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 0x1400670a6
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400675e1
call fcn.1400727c0
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.14005a930
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 0x140067139
inc rdx
mov rcx, qword [rbp - 0x28]
cmp rdx, 0x1000
mov rax, rcx
jb 0x140067134
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006767e
call fcn.1400727c0
mov byte [rbp - 0x28], 0
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rbx
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x140067184
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r13]
jb 0x14006717f
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140067685
mov rcx, r8
call fcn.1400727c0
mov qword [r13 + 0x10], rbx
jmp 0x1400674a7
test rdi, rdi
jne 0x140067033
test r14b, r14b
jne 0x1400671b1
test rbx, rbx
je 0x1400671cc
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 0x1400671cc
movzx esi, al
xor r14d, r14d
mov byte [rsp + 0x40], sil
mov rax, qword [rbp - 0x38]
cmp rax, qword [rbp - 0x30]
je 0x1400671d4
mov byte [rax], sil
inc qword [rbp - 0x38]
jmp 0x1400671e6
xor r14d, r14d
mov ebx, r14d
jmp 0x1400671b4
lea r8, [rsp + 0x40]
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x40]
call fcn.140057c00
test rbx, rbx
je 0x1400671fd
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 0x140066fec
mov rbx, r14
jmp 0x140067001
movsxd r12, dword [rcx + 0x3c]
add r12, rcx
cmp dword [r12], 0x4550
jne 0x140067048
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 0x140067235
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140057580
mov r10, qword [rbp - 0x40]
cmp word [r10], bx
je 0x14006726e
mov rbx, rsi
mov rdi, rsi
lea rcx, [rsp + 0x68]
call fcn.14005a9a0
mov r10, qword [rbp - 0x40]
jmp 0x14006734f
movsxd rcx, dword [r10 + 0x3c]
add rcx, r10
cmp dword [rcx], 0x4550
jne 0x140067255
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 0x1400672f3
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 0x1400672e3
inc rax
test ecx, ecx
jne 0x1400672d0
test edx, edx
je 0x14006732b
inc r9w
cmp r9w, bx
jb 0x1400672a0
xor eax, eax
mov rbx, rax
mov rdi, rax
cmp r14, 0xf
jbe 0x14006734d
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140067341
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067341
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.14005a9a0
jmp 0x140067349
mov rcx, rsi
call fcn.1400727c0
mov r10, qword [rbp - 0x40]
xor esi, esi
mov eax, dword [rsp + 0x64]
xorps xmm0, xmm0
cmp rax, rbx
jbe 0x1400674e9
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 0x1400673d6
mov rdx, qword [rbp - 0x30]
sub rdx, r10
mov rax, r10
cmp rdx, 0x1000
jb 0x1400673c2
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400675e1
mov rcx, r10
call fcn.1400727c0
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.14005a930
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 0x140067458
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067453
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006767e
call fcn.1400727c0
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x1400674a3
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x14006749e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140067685
mov rcx, r8
call fcn.1400727c0
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.1400728e0
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 [0x140084f60]
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.1400627d0
lea rax, [rbp + 0x20]
cmp rax, r13
je 0x140067556
mov rdx, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x140067541
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
lea rcx, [rbp + 0x20]
call fcn.1400627d0
movdqa xmm6, xmmword [0x140084f60]
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.14005ac80
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1400675f9
mov rdx, qword [rbp - 0x30]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400675e8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400675e8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.1400727c0
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.14005a930
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 0x140067458
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067453
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067453
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.140062200
nop
lea r8, [rbp - 0x68]
lea rdx, [rsp + 0x50]
lea rcx, str.exists
call fcn.140061f80
int3