Function at 0x140067160
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 0x140067c0c
mov rax, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x1400671f8
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.1400597e0
nop
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x68]
call fcn.140057230
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.14007260c
mov edx, eax
test eax, eax
jne 0x1400672b3
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 0x1400672a8
mov eax, dword [rbp + 0x174]
cmp eax, 0xa000000c
jne 0x14006729a
mov ecx, 4
jmp 0x1400672dd
cmp eax, 0xa0000003
jne 0x1400672a8
mov ecx, 0xa
jmp 0x1400672dd
shr ecx, 4
and ecx, 1
or ecx, 2
jmp 0x1400672dd
mov dword [rsp + 0x54], 0xffff
sub eax, 2
je 0x1400672d8
sub eax, 1
je 0x1400672d8
sub eax, 0x32
je 0x1400672d8
sub eax, 0x46
je 0x1400672d8
cmp eax, 0x90
mov ecx, edi
jne 0x1400672dd
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 0x1400673db
cmp ecx, 1
sete bl
lea rcx, [rbp - 0x68]
call fcn.140062520
test bl, bl
je 0x1400673ea
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 0x140067387
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067382
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067bfe
call fcn.140072e60
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x1400673d2
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x1400673cd
add rdx, 0x27
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x140067c05
mov rcx, rax
call fcn.140072e60
mov qword [r13 + 0x10], rdi
jmp 0x140067a27
mov bl, 1
test edx, edx
jne 0x140067c12
jmp 0x140067306
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x50]
call fcn.140073ec0
lea rbx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rbx, qword [rbp - 0x28]
lea rax, [0x140084a70]
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.14006b4a0
test rax, rax
jne 0x1400674e9
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 0x1400675a1
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 0x140067576
movzx esi, al
jmp 0x140067578
xor ebx, ebx
mov r14b, 1
test r12b, r12b
jne 0x140067598
test rdi, rdi
je 0x140067593
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 0x140067595
xor edi, edi
mov r12b, 1
test rbx, rbx
jne 0x140067704
test rdi, rdi
jne 0x14006770d
mov ebx, 0x5a4d
mov rcx, qword [rbp - 0x40]
xorps xmm0, xmm0
cmp word [rcx], bx
je 0x14006777c
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 0x14006761d
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067b61
call fcn.140072e60
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.14005a870
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 0x1400676b0
inc rdx
mov rcx, qword [rbp - 0x28]
cmp rdx, 0x1000
mov rax, rcx
jb 0x1400676ab
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067bfe
call fcn.140072e60
mov byte [rbp - 0x28], 0
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rbx
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x1400676fb
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r13]
jb 0x1400676f6
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140067c05
mov rcx, r8
call fcn.140072e60
mov qword [r13 + 0x10], rbx
jmp 0x140067a27
test rdi, rdi
jne 0x1400675aa
test r14b, r14b
jne 0x140067728
test rbx, rbx
je 0x140067743
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 0x140067743
movzx esi, al
xor r14d, r14d
mov byte [rsp + 0x40], sil
mov rax, qword [rbp - 0x38]
cmp rax, qword [rbp - 0x30]
je 0x14006774b
mov byte [rax], sil
inc qword [rbp - 0x38]
jmp 0x14006775d
xor r14d, r14d
mov ebx, r14d
jmp 0x14006772b
lea r8, [rsp + 0x40]
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x40]
call fcn.140057b50
test rbx, rbx
je 0x140067774
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 0x140067563
mov rbx, r14
jmp 0x140067578
movsxd r12, dword [rcx + 0x3c]
add r12, rcx
cmp dword [r12], 0x4550
jne 0x1400675bf
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 0x1400677b0
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.1400574d0
mov r10, qword [rbp - 0x40]
cmp word [r10], bx
je 0x1400677e9
mov rbx, rsi
mov rdi, rsi
lea rcx, [rsp + 0x68]
call fcn.14005a8e0
mov r10, qword [rbp - 0x40]
jmp 0x1400678cf
movsxd rcx, dword [r10 + 0x3c]
add rcx, r10
cmp dword [rcx], 0x4550
jne 0x1400677d0
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 0x140067873
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 0x140067863
inc rax
test ecx, ecx
jne 0x140067850
test edx, edx
je 0x1400678ab
inc r9w
cmp r9w, bx
jb 0x140067820
xor eax, eax
mov rbx, rax
mov rdi, rax
cmp r14, 0xf
jbe 0x1400678cd
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x1400678c1
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400678c1
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.14005a8e0
jmp 0x1400678c9
mov rcx, rsi
call fcn.140072e60
mov r10, qword [rbp - 0x40]
xor esi, esi
mov eax, dword [rsp + 0x64]
xorps xmm0, xmm0
cmp rax, rbx
jbe 0x140067a69
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 0x140067956
mov rdx, qword [rbp - 0x30]
sub rdx, r10
mov rax, r10
cmp rdx, 0x1000
jb 0x140067942
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067b61
mov rcx, r10
call fcn.140072e60
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.14005a870
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 0x1400679d8
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400679d3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067bfe
call fcn.140072e60
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x140067a23
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x140067a1e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140067c05
mov rcx, r8
call fcn.140072e60
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.140072d00
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 [0x140085090]
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.140062b80
lea rax, [rbp + 0x20]
cmp rax, r13
je 0x140067ad6
mov rdx, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x140067ac1
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
lea rcx, [rbp + 0x20]
call fcn.140062b80
movdqa xmm6, xmmword [0x140085090]
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.14005abc0
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x140067b79
mov rdx, qword [rbp - 0x30]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140067b68
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140067b68
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140072e60
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.14005a870
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 0x1400679d8
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400679d3
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400679d3
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.1400625b0
nop
lea r8, [rbp - 0x68]
lea rdx, [rsp + 0x50]
lea rcx, str.exists
call fcn.140062330
int3