Function at 0x14005f6c0
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 [0x140090380]
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 0x14006015c
mov rax, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x14005f758
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.140056860
nop
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rbp - 0x68]
call fcn.1400547d0
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.14006cd3c
mov edx, eax
test eax, eax
jne 0x14005f813
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 0x14005f808
mov eax, dword [rbp + 0x174]
cmp eax, 0xa000000c
jne 0x14005f7fa
mov ecx, 4
jmp 0x14005f836
cmp eax, 0xa0000003
jne 0x14005f808
mov ecx, 0xa
jmp 0x14005f836
shr ecx, 4
and ecx, 1
or ecx, 2
jmp 0x14005f836
mov dword [rsp + 0x54], 0xffff
sub eax, 2
je 0x14005f831
sub eax, 1
je 0x14005f831
sub eax, 0x32
je 0x14005f831
cmp eax, 0x46
mov ecx, edi
jne 0x14005f836
mov ecx, 1
mov dword [rsp + 0x50], edx
lea rax, [0x1400900f0]
mov qword [rsp + 0x58], rax
movaps xmm0, xmmword [rsp + 0x50]
movdqa xmmword [rsp + 0x50], xmm0
test ecx, ecx
je 0x14005f934
cmp ecx, 1
sete bl
lea rcx, [rbp - 0x68]
call fcn.14005dd70
test bl, bl
je 0x14005f943
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 0x14005f8e0
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005f8db
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006014e
call fcn.14006d3d4
mov qword [rbp - 0x18], rdi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x14005f92b
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x14005f926
add rdx, 0x27
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x140060155
mov rcx, rax
call fcn.14006d3d4
mov qword [r13 + 0x10], rdi
jmp 0x14005ff77
mov bl, 1
test edx, edx
jne 0x140060162
jmp 0x14005f85f
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x50]
call fcn.14006e5f8
lea rbx, [rbp - 0x28]
cmp qword [rbp - 0x10], 0xf
cmova rbx, qword [rbp - 0x28]
lea rax, [0x14007e098]
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 [0x140090b48]
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.140064170
test rax, rax
jne 0x14005fa42
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 0x14005fafa
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 0x14005facf
movzx esi, al
jmp 0x14005fad1
xor ebx, ebx
mov r14b, 1
test r12b, r12b
jne 0x14005faf1
test rdi, rdi
je 0x14005faec
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 0x14005faee
xor edi, edi
mov r12b, 1
test rbx, rbx
jne 0x14005fc5d
test rdi, rdi
jne 0x14005fc66
mov ebx, 0x5a4d
mov rcx, qword [rbp - 0x40]
xorps xmm0, xmm0
cmp word [rcx], bx
je 0x14005fcd5
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 0x14005fb76
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400600b1
call fcn.14006d3d4
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.1400571c0
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 0x14005fc09
inc rdx
mov rcx, qword [rbp - 0x28]
cmp rdx, 0x1000
mov rax, rcx
jb 0x14005fc04
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006014e
call fcn.14006d3d4
mov byte [rbp - 0x28], 0
mov qword [rbp - 0x10], 0xf
mov qword [rbp - 0x18], rbx
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x14005fc54
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r13]
jb 0x14005fc4f
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140060155
mov rcx, r8
call fcn.14006d3d4
mov qword [r13 + 0x10], rbx
jmp 0x14005ff77
test rdi, rdi
jne 0x14005fb03
test r14b, r14b
jne 0x14005fc81
test rbx, rbx
je 0x14005fc9c
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 0x14005fc9c
movzx esi, al
xor r14d, r14d
mov byte [rsp + 0x40], sil
mov rax, qword [rbp - 0x38]
cmp rax, qword [rbp - 0x30]
je 0x14005fca4
mov byte [rax], sil
inc qword [rbp - 0x38]
jmp 0x14005fcb6
xor r14d, r14d
mov ebx, r14d
jmp 0x14005fc84
lea r8, [rsp + 0x40]
mov rdx, qword [rbp - 0x38]
lea rcx, [rbp - 0x40]
call fcn.140054dd0
test rbx, rbx
je 0x14005fccd
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 0x14005fabc
mov rbx, r14
jmp 0x14005fad1
movsxd r12, dword [rcx + 0x3c]
add r12, rcx
cmp dword [r12], 0x4550
jne 0x14005fb18
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 0x14005fd05
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.1400147c0
mov r10, qword [rbp - 0x40]
cmp word [r10], bx
je 0x14005fd3e
mov rbx, rsi
mov rdi, rsi
lea rcx, [rsp + 0x68]
call fcn.1400149d0
mov r10, qword [rbp - 0x40]
jmp 0x14005fe1f
movsxd rcx, dword [r10 + 0x3c]
add rcx, r10
cmp dword [rcx], 0x4550
jne 0x14005fd25
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 0x14005fdc3
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 0x14005fdb3
inc rax
test ecx, ecx
jne 0x14005fda0
test edx, edx
je 0x14005fdfb
inc r9w
cmp r9w, bx
jb 0x14005fd70
xor eax, eax
mov rbx, rax
mov rdi, rax
cmp r14, 0xf
jbe 0x14005fe1d
lea rdx, [r14 + 1]
mov rax, rsi
cmp rdx, 0x1000
jb 0x14005fe11
add rdx, 0x27
mov rsi, qword [rsi - 8]
sub rax, rsi
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14005fe11
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.1400149d0
jmp 0x14005fe19
mov rcx, rsi
call fcn.14006d3d4
mov r10, qword [rbp - 0x40]
xor esi, esi
mov eax, dword [rsp + 0x64]
xorps xmm0, xmm0
cmp rax, rbx
jbe 0x14005ffb9
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 0x14005fea6
mov rdx, qword [rbp - 0x30]
sub rdx, r10
mov rax, r10
cmp rdx, 0x1000
jb 0x14005fe92
add rdx, 0x27
mov r10, qword [r10 - 8]
sub rax, r10
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400600b1
mov rcx, r10
call fcn.14006d3d4
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.1400571c0
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 0x14005ff28
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005ff23
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14006014e
call fcn.14006d3d4
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], 0xf
mov byte [rbp - 0x28], 0
mov rdx, qword [r13 + 0x18]
cmp rdx, 0xf
jbe 0x14005ff73
inc rdx
mov rcx, qword [r13]
cmp rdx, 0x1000
jb 0x14005ff6e
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140060155
mov rcx, r8
call fcn.14006d3d4
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.14006d660
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 [0x14007e670]
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.14005e3c0
lea rax, [rbp + 0x20]
cmp rax, r13
je 0x140060026
mov rdx, r13
cmp qword [r13 + 0x18], 0xf
jbe 0x140060011
mov rdx, qword [r13]
mov r8, qword [r13 + 0x10]
lea rcx, [rbp + 0x20]
call fcn.14005e3c0
movdqa xmm6, xmmword [0x14007e670]
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.140057420
nop
mov rcx, qword [rbp - 0x40]
test rcx, rcx
je 0x1400600c9
mov rdx, qword [rbp - 0x30]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400600b8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x1400600b8
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.14006d3d4
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.1400571c0
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 0x14005ff28
inc rdx
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14005ff23
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14005ff23
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.140014b40
nop
lea r8, [rbp - 0x68]
lea rdx, [rsp + 0x50]
lea rcx, str.exists
call fcn.14005dc00
int3