Function at 0x140042430
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 - 0x140]
sub rsp, 0x240
movaps xmmword [rsp + 0x230], xmm6
mov rax, qword [0x140074040]
xor rax, rsp
mov qword [rbp + 0x120], rax
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x58], r8
mov r12, rdx
mov r14, rcx
mov qword [rsp + 0x60], rcx
mov qword [rsp + 0x60], rdx
xor ebx, ebx
mov dword [rsp + 0x24], ebx
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 r15, qword [r12 + 0x10]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r15
cmp rax, 0x1c
jb 0x140042e4b
mov r13, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x1400424d0
mov r13, qword [r12]
xorps xmm0, xmm0
movups xmmword [rsp + 0x70], xmm0
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], rbx
lea rsi, [r15 + 0x1c]
mov ebx, 0xf
lea rdi, [rsp + 0x70]
cmp rsi, rbx
jbe 0x14004256d
mov rbx, rsi
or rbx, 0xf
cmp rbx, rcx
jbe 0x14004252f
mov rbx, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.1400551f4
test rax, rax
je 0x140042e3d
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140042568
mov eax, 0x16
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x140042548
xor edi, edi
jmp 0x140042568
cmp rcx, 0x1000
jb 0x140042560
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140042e51
jmp 0x140042510
call fcn.1400551f4
mov rdi, rax
mov qword [rsp + 0x70], rdi
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], rbx
movups xmm0, xmmword [str.C:WindowsSystem32drivers_]
movups xmmword [rdi], xmm0
movsd xmm0, qword [0x1400698c8]
movsd qword [rdi + 0x10], xmm0
mov eax, dword [0x1400698d0]
mov dword [rdi + 0x18], eax
lea rcx, [rdi + 0x1c]
mov r8, r15
mov rdx, r13
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + rsi], 0
lea rax, [rsp + 0x70]
cmp qword [rbp - 0x78], 0xf
cmova rax, qword [rsp + 0x70]
mov qword [rbp - 0x50], rax
mov rax, qword [rbp - 0x80]
mov qword [rbp - 0x48], rax
call fcn.140055d08
movaps xmm0, xmmword [rbp - 0x50]
movdqa xmmword [rbp - 0x50], xmm0
lea r8, [rbp - 0x50]
mov edx, eax
lea rcx, [rsp + 0x38]
call fcn.140040650
nop
lea rcx, [rsp + 0x38]
call fcn.140041860
movzx ebx, al
mov rdx, qword [rsp + 0x50]
cmp rdx, 7
jbe 0x140042635
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042630
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140042630
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055000
test bl, bl
jne 0x140042705
xorps xmm0, xmm0
movups xmmword [r14 + 0x40], xmm0
xorps xmm1, xmm1
movups xmmword [r14], xmm1
xor ebx, ebx
mov qword [r14 + 0x10], rbx
mov qword [r14 + 0x18], 0xf
mov byte [r14], bl
movups xmmword [r14 + 0x20], xmm0
mov qword [r14 + 0x30], rbx
mov qword [r14 + 0x38], 0xf
mov byte [r14 + 0x20], bl
mov rdx, qword [rbp - 0x78]
cmp rdx, 0xf
jbe 0x1400426ae
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400426a9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140042e3d
call fcn.140055000
mov qword [rbp - 0x80], rbx
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], 0
mov rdx, qword [r12 + 0x18]
cmp rdx, 0xf
jbe 0x1400426fb
inc rdx
mov rcx, qword [r12]
cmp rdx, 0x1000
jb 0x1400426f6
add rdx, 0x27
mov rax, qword [rcx - 8]
sub rcx, rax
add rcx, 0xfffffffffffffff8
cmp rcx, 0x1f
ja 0x140042e44
mov rcx, rax
call fcn.140055000
mov qword [r12 + 0x10], rbx
jmp 0x140042c5e
xor edx, edx
mov r8d, 0x110
lea rcx, [rbp + 0x10]
call fcn.140056643
lea rbx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0xf
cmova rbx, qword [rsp + 0x70]
lea rax, [0x140069e88]
mov qword [rbp + 0x10], rax
lea rcx, [rbp + 0xc0]
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 + 0x24], 0x1e
xor r9d, r9d
xor r8d, r8d
lea rdx, [rbp + 0x20]
lea rcx, [rbp + 0x10]
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 + 0x10]
movsxd rcx, dword [rax + 4]
lea rdi, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x10], rdi
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xc], edx
lea rcx, [rbp + 0x20]
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 + 0x20], rax
mov byte [rbp + 0x9c], 0
mov byte [rbp + 0x91], 0
lea rcx, [rbp + 0x20]
call qword [sym.imp.MSVCP140.dll_protected:_void___cdecl_std::basic_streambuf_char__struct_std::char_traits_char__::_Init_void____ptr64]
xor ecx, ecx
mov qword [rbp + 0xa0], rcx
mov rax, qword [0x140075908]
mov qword [rbp + 0x94], rax
mov qword [rbp + 0x88], rcx
mov r8d, 0x21
mov rdx, rbx
lea rcx, [rbp + 0x20]
call fcn.1400475b0
test rax, rax
jne 0x140042802
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea rax, [rbp + 0x10]
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 + 0x10]
movsxd rcx, dword [rax + 4]
mov qword [rbp + rcx + 0x10], rdi
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xc], edx
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rax
mov rax, qword [rbp + 0x10]
movsxd rbx, dword [rax + 4]
mov rbx, qword [rbp + rbx + 0x58]
test rbx, rbx
sete r15b
mov byte [rbp - 0x48], r15b
mov byte [rbp - 0x47], 0
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], 0
lea rax, [rbp - 0x70]
mov qword [rsp + 0x30], rax
mov rsi, qword [rbp - 0x48]
shr rsi, 8
mov r13b, 1
xor edi, edi
test rbx, rbx
je 0x1400428b0
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 0x140042885
movzx esi, al
jmp 0x140042887
xor ebx, ebx
mov r15b, 1
test r13b, r13b
jne 0x1400428a7
test rdi, rdi
je 0x1400428a2
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 0x1400428a4
xor edi, edi
mov r13b, 1
test rbx, rbx
jne 0x140042a35
test rdi, rdi
jne 0x140042a3e
mov eax, 0x5a4d
mov rcx, qword [rbp - 0x70]
xorps xmm0, xmm0
cmp word [rcx], ax
je 0x140042aa7
movups xmmword [r14 + 0x40], xmm0
xorps xmm1, xmm1
movups xmmword [r14], xmm1
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], 0
mov qword [r14 + 0x10], 0
mov qword [r14 + 0x18], 0xf
mov byte [r14], 0
movups xmmword [r14 + 0x20], xmm0
mov qword [r14 + 0x30], 0
mov qword [r14 + 0x38], 0xf
mov byte [r14 + 0x20], 0
mov rdx, qword [rbp - 0x60]
sub rdx, rcx
cmp rdx, 0x1000
mov rax, rcx
jb 0x140042944
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140042d9f
call fcn.140055000
xor ebx, ebx
xorps xmm0, xmm0
mov qword [rbp - 0x60], rbx
movdqu xmmword [rbp - 0x70], xmm0
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x10], rax
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xc], edx
lea rcx, [rbp + 0x20]
call fcn.140046de0
lea rcx, [rbp + 0x28]
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 + 0xc0]
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 - 0x78]
cmp rdx, 0xf
jbe 0x1400429da
inc rdx
mov rcx, qword [rsp + 0x70]
cmp rdx, 0x1000
mov rax, rcx
jb 0x1400429d5
mov rcx, qword [rcx - 8]
sub rax, rcx
add rdx, 0x27
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140042e3d
call fcn.140055000
mov byte [rsp + 0x70], 0
mov qword [rbp - 0x78], 0xf
mov qword [rbp - 0x80], rbx
mov rdx, qword [r12 + 0x18]
cmp rdx, 0xf
jbe 0x1400426fb
inc rdx
cmp rdx, 0x1000
mov rcx, qword [r12]
jb 0x140042a26
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140042e44
mov rcx, r8
call fcn.140055000
mov qword [r12 + 0x10], rbx
jmp 0x140042c5e
test rdi, rdi
jne 0x1400428b9
test r15b, r15b
jne 0x140042a5d
test rbx, rbx
je 0x140042a5b
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 0x140042a5b
movzx esi, al
jmp 0x140042a5d
xor ebx, ebx
mov byte [rsp + 0x20], sil
mov rax, qword [rbp - 0x68]
cmp rax, qword [rbp - 0x60]
je 0x140042a75
mov byte [rax], sil
inc qword [rbp - 0x68]
jmp 0x140042a87
lea r8, [rsp + 0x20]
mov rdx, qword [rbp - 0x68]
lea rcx, [rbp - 0x70]
call fcn.140049730
test rbx, rbx
je 0x140042885
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 0x140042872
jmp 0x140042885
movsxd rbx, dword [rcx + 0x3c]
add rbx, rcx
cmp dword [rbx], 0x4550
jne 0x1400428ce
movups xmmword [rsp + 0x38], xmm0
xor esi, esi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x50], rsi
mov r8, 0xffffffffffffffff
mov rax, qword [rsp + 0x58]
inc r8
cmp byte [rax + r8], sil
jne 0x140042ad7
mov rdx, rax
lea rcx, [rsp + 0x38]
call fcn.140042fc0
lea r8, [rsp + 0x38]
mov rdx, qword [rbp - 0x70]
lea rcx, [rbp - 0x50]
call fcn.1400422f0
mov eax, dword [rsp + 0x28]
mov rdi, qword [rbp - 0x50]
xorps xmm0, xmm0
cmp rax, rdi
jbe 0x140042ca1
movups xmmword [r14 + 0x40], xmm0
xorps xmm1, xmm1
movups xmmword [r14], xmm1
mov qword [r14 + 0x10], rsi
mov qword [r14 + 0x18], 0xf
mov byte [r14], sil
movups xmmword [r14 + 0x20], xmm0
mov qword [r14 + 0x30], rsi
mov qword [r14 + 0x38], 0xf
mov byte [r14 + 0x20], sil
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x140042b89
mov rdx, qword [rbp - 0x60]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042b78
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140042d9f
call fcn.140055000
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rsi
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x10], rax
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xc], edx
lea rcx, [rbp + 0x20]
call fcn.140046de0
lea rcx, [rbp + 0x28]
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 + 0xc0]
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 - 0x78]
cmp rdx, 0xf
jbe 0x140042c0c
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042c07
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140042e3d
call fcn.140055000
mov qword [rbp - 0x80], rsi
mov qword [rbp - 0x78], 0xf
mov byte [rsp + 0x70], 0
mov rdx, qword [r12 + 0x18]
cmp rdx, 0xf
jbe 0x140042c59
inc rdx
mov rcx, qword [r12]
cmp rdx, 0x1000
jb 0x140042c54
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140042e44
mov rcx, r8
call fcn.140055000
mov qword [r12 + 0x10], rsi
mov byte [r12], 0
mov qword [r12 + 0x18], 0xf
mov rax, r14
mov rcx, qword [rbp + 0x120]
xor rcx, rsp
call fcn.140054bb0
mov rbx, qword [rsp + 0x298]
movaps xmm6, xmmword [rsp + 0x230]
add rsp, 0x240
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
movups xmmword [rbp - 0x40], xmm0
movdqa xmm6, xmmword [0x14006a7a0]
movdqa xmmword [rbp - 0x30], xmm6
mov byte [rbp - 0x40], sil
movups xmmword [rbp - 0x20], xmm0
movdqa xmmword [rbp - 0x10], xmm6
mov byte [rbp - 0x20], sil
movups xmmword [rbp], xmm0
lea rdx, [rsp + 0x70]
cmp qword [rbp - 0x78], 0xf
cmova rdx, qword [rsp + 0x70]
mov r8, qword [rbp - 0x80]
lea rcx, [rbp - 0x40]
call fcn.1400476f0
lea rax, [rbp - 0x20]
cmp rax, r12
je 0x140042d12
mov rdx, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x140042cfc
mov rdx, qword [r12]
mov r8, qword [r12 + 0x10]
lea rcx, [rbp - 0x20]
call fcn.1400476f0
movdqa xmm6, xmmword [0x14006a7a0]
movzx ecx, word [rbx + 6]
mov dword [rbp + 8], ecx
mov rax, qword [rbp - 0x48]
mov dword [rbp], eax
mov dword [rbp + 4], edi
movaps xmm0, xmmword [rbp - 0x40]
movups xmmword [r14], xmm0
movaps xmm1, xmmword [rbp - 0x30]
movups xmmword [r14 + 0x10], xmm1
movdqa xmmword [rbp - 0x30], xmm6
mov byte [rbp - 0x40], 0
movaps xmm0, xmmword [rbp - 0x20]
movups xmmword [r14 + 0x20], xmm0
movaps xmm1, xmmword [rbp - 0x10]
movups xmmword [r14 + 0x30], xmm1
movdqa xmmword [rbp - 0x10], xmm6
mov byte [rbp - 0x20], 0
mov dword [r14 + 0x40], eax
mov dword [r14 + 0x44], edi
mov dword [r14 + 0x48], ecx
lea rcx, [rbp - 0x40]
call fcn.140042ed0
nop
mov rcx, qword [rbp - 0x70]
test rcx, rcx
je 0x140042db7
mov rdx, qword [rbp - 0x60]
sub rdx, rcx
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042da6
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140042da6
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140055000
xorps xmm0, xmm0
movdqu xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rsi
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea rax, vtable.std::basic_ifstream_char__struct_std::char_traits_char__.0
mov qword [rbp + rcx + 0x10], rax
mov rax, qword [rbp + 0x10]
movsxd rcx, dword [rax + 4]
lea edx, [rcx - 0xb0]
mov dword [rbp + rcx + 0xc], edx
lea rcx, [rbp + 0x20]
call fcn.140046de0
lea rcx, [rbp + 0x28]
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 + 0xc0]
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 - 0x78]
cmp rdx, 0xf
jbe 0x140042c0c
inc rdx
mov rcx, qword [rsp + 0x70]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140042c07
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x140042c07
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.14003fdc0
int3
call fcn.14003fd20
int3