Function at 0x140066e10
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 [0x14009d6c0]
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 0x1400678bc
mov rax, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x140066ea8
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.140059810
nop
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x68]
call fcn.1400571c0
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.1400724ac
mov edx, eax
test eax, eax
jne 0x140066f63
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 0x140066f58
mov eax, dword [rbp + 0x174]
cmp eax, 0xa000000c
jne 0x140066f4a
mov ecx, 4
jmp 0x140066f8d
cmp eax, 0xa0000003
jne 0x140066f58
mov ecx, 0xa
jmp 0x140066f8d
shr ecx, 4
and ecx, 1
or ecx, 2
jmp 0x140066f8d
mov dword [rsp + 0x54], 0xffff
sub eax, 2
je 0x140066f88
sub eax, 1
je 0x140066f88
sub eax, 0x32
je 0x140066f88
sub eax, 0x46
je 0x140066f88
cmp eax, 0x90
mov ecx, edi
jne 0x140066f8d
mov ecx, 1
mov dword [rsp + 0x50], edx
lea rax, [0x14009d548]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
test ecx, ecx
je 0x14006708b
cmp ecx, 1
sete bl
lea rcx, [rbp - 0x68]
call fcn.140062290
test bl, bl
je 0x14006709a
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 0x140067037
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067032
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400678ae
call fcn.140072c50
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x140067082
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x14006707d
add rdx, 0x27
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x1400678b5
mov rcx, rax
call fcn.140072c50
mov qword [r13 + 0x10], rdi
jmp 0x1400676d7
mov bl, 1
test edx, edx
jne 0x1400678c2
jmp 0x140066fb6
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x50]
call fcn.140073d60
lea rbx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rbx, qword [rbp - 0x28]
lea rax, [0x140084988]
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 [0x14009f250]
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.14006b260
test rax, rax
jne 0x140067199
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 0x140067251
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 0x140067226
movzx esi, al
jmp 0x140067228
xor ebx, ebx
mov r14b, 1
test r12b, r12b
jne 0x140067248
test rdi, rdi
je 0x140067243
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 0x140067245
xor edi, edi
mov r12b, 1
test rbx, rbx
jne 0x1400673b4
test rdi, rdi
jne 0x1400673bd
mov ebx, 0x5a4d
mov rcx, qword [rbp - 0x40]
xorps xmm0, xmm0
cmp word [rcx], bx
je 0x14006742c
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 0x1400672cd
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067811
call fcn.140072c50
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.14005a8a0
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 0x140067360
inc rdx
mov rcx, qword [rbp - 0x28]
cmp rdx, 0x1000
mov rax, rcx
jb 0x14006735b
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400678ae
call fcn.140072c50
mov byte [rbp - 0x28], 0
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rbx
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x1400673ab
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r13]
jb 0x1400673a6
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400678b5
mov rcx, r8
call fcn.140072c50
mov qword [r13 + 0x10], rbx
jmp 0x1400676d7
test rdi, rdi
jne 0x14006725a
test r14b, r14b
jne 0x1400673d8
test rbx, rbx
je 0x1400673f3
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 0x1400673f3
movzx esi, al
xor r14d, r14d
mov byte [rsp + 0x40], sil
mov rax, qword [rbp - 0x38]
cmp rax, qword [rbp - 0x30]
je 0x1400673fb
mov byte [rax], sil
inc qword [rbp - 0x38]
jmp 0x14006740d
xor r14d, r14d
mov ebx, r14d
jmp 0x1400673db
lea r8, [rsp + 0x40]
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x40]
call fcn.140057ae0
test rbx, rbx
je 0x140067424
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 0x140067213
mov rbx, r14
jmp 0x140067228
movsxd r12, dword [rcx + 0x3c]
add r12, rcx
cmp dword [r12], 0x4550
jne 0x14006726f
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]
nop dword [rax]
inc r8
cmp byte [rax + r8], sil
jne 0x140067460
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.140057460
mov r10, qword [rbp - 0x40]
cmp word [r10], bx
je 0x140067499
mov rbx, rsi
mov rdi, rsi
lea rcx, [rsp + 0x68]
call fcn.14005a910
mov r10, qword [rbp - 0x40]
jmp 0x14006757f
movsxd rcx, dword [r10 + 0x3c]
add rcx, r10
cmp dword [rcx], 0x4550
jne 0x140067480
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 0x140067523
nop word [rax + 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 0x140067513
inc rax
test ecx, ecx
jne 0x140067500
test edx, edx
je 0x14006755b
inc r9w
cmp r9w, bx
jb 0x1400674d0
xor eax, eax
mov rbx, rax
mov rdi, rax
cmp r14, 0xf
jbe 0x14006757d
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x140067571
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067571
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.14005a910
jmp 0x140067579
mov rcx, rsi
call fcn.140072c50
mov r10, qword [rbp - 0x40]
xor esi, esi
mov eax, dword [rsp + 0x64]
xorps xmm0, xmm0
cmp rax, rbx
jbe 0x140067719
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 0x140067606
mov rdx, qword [rbp - 0x30]
sub rdx, r10
mov rax, r10
cmp rdx, 0x1000
jb 0x1400675f2
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067811
mov rcx, r10
call fcn.140072c50
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.14005a8a0
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 0x140067688
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067683
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400678ae
call fcn.140072c50
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x1400676d3
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x1400676ce
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400678b5
mov rcx, r8
call fcn.140072c50
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.140072d70
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 [0x140084f90]
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.1400628a0
lea rax, [rbp + 0x20]
cmp rax, r13
je 0x140067786
mov rdx, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x140067771
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
lea rcx, [rbp + 0x20]
call fcn.1400628a0
movdqa xmm6, xmmword [0x140084f90]
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.14005abf0
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x140067829
mov rdx, qword [rbp - 0x30]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067818
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067818
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140072c50
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.14005a8a0
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 0x140067688
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067683
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067683
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.140062320
nop
lea r8, [rbp - 0x68]
lea rdx, [rsp + 0x50]
lea rcx, str.exists
call fcn.1400620a0
int3