Function at 0x1400675a0
Capabilities:
Check if file exists

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x990
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rsp + 0x980], rax
mov r12d, r8d
mov dword [rsp + 0x88], r8d
mov r15, rdx
mov qword [rsp + 0x70], rdx
mov rdi, rcx
mov qword [rsp + 0x98], rdx
lea rdx, str.GetInfInformation::MultiIsDriverSupportFromInf
lea rcx, [rsp + 0xf0]
call fcn.14001abe0
nop
lea rax, [0x1402a8360]
mov rbx, qword [0x1402a8360]
cmp rbx, rax
je 0x140067644
test byte [rbx + 0x1c], 1
je 0x140067644
lea r9, [0x1402bbdb0]
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x23
lea r8, [0x140256c80]
mov rcx, qword [rbx + 0x10]
call fcn.140001ad0
mov rbx, qword [0x1402a8360]
xor esi, esi
mov r14d, esi
mov dword [rsp + 0x40], esi
mov dword [rsp + 0x44], esi
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x560]
call fcn.1401e7e40
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x350]
call fcn.1401e7e40
mov dword [rsp + 0x4c], esi
mov qword [rsp + 0x68], rsi
test r15, r15
je 0x140067dd7
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x140067ed9
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x60], rax
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x140067ee4
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
add rax, 0x18
mov qword [rsp + 0x50], rax
lea rcx, [0x140251dfc]
cmp rcx, 0x10000
jae 0x140067701
movzx edx, cx
lea rcx, [rsp + 0x50]
call fcn.1400041d0
mov r13, 0xffffffffffffffff
jmp 0x14006772b
mov r13, 0xffffffffffffffff
mov rax, r13
nop dword [rax + rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x140067710
mov r8d, eax
mov rdx, rcx
lea rcx, [rsp + 0x50]
call fcn.140004e60
nop
mov r8d, r12d
lea rdx, [0x1402524b4]
lea rcx, [rsp + 0x50]
call fcn.140018e20
xorps xmm0, xmm0
movups xmmword [rsp + 0xa8], xmm0
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xc0], rsi
mov rbx, qword [rsp + 0x50]
mov r8, r13
inc r8
cmp word [rbx + r8*2], 0
jne 0x140067762
mov rdx, rbx
lea rcx, [rsp + 0xa8]
call fcn.140005520
lea rax, [rdi + 8]
mov qword [rsp + 0x78], rax
mov rax, qword [rax]
mov r10, qword [rax + 8]
mov r12, rax
mov r15, qword [rsp + 0xc0]
mov rdi, qword [rsp + 0xb8]
mov r14, qword [rsp + 0xa8]
cmp byte [r10 + 0x19], 0
jne 0x14006784d
nop dword [rax]
nop word [rax + rax]
lea rax, [rsp + 0xa8]
cmp r15, 8
cmovae rax, r14
lea r9, [r10 + 0x20]
cmp qword [r10 + 0x38], 8
jb 0x1400677df
mov r9, qword [r10 + 0x20]
mov r11, qword [r10 + 0x30]
mov rcx, r11
cmp rdi, r11
cmovb rcx, rdi
test rcx, rcx
je 0x140067809
sub r9, rax
movzx edx, word [rax + r9]
cmp dx, word [rax]
jne 0x140067819
add rax, 2
sub rcx, 1
jne 0x1400677f5
cmp r11, rdi
mov r11d, 1
jae 0x140067828
mov eax, r13d
jmp 0x14006782d
mov r11d, 1
mov eax, r11d
cmovb eax, r13d
jmp 0x14006782d
mov eax, esi
seta al
shr eax, 0x1f
test al, al
je 0x14006783a
mov r10, qword [r10 + 0x10]
jmp 0x140067840
mov r12, r10
mov r10, qword [r10]
cmp byte [r10 + 0x19], 0
je 0x1400677c0
jmp 0x140067853
mov r11d, 1
cmp byte [r12 + 0x19], 0
jne 0x1400678ce
lea rax, [r12 + 0x20]
cmp qword [r12 + 0x38], 8
jb 0x14006786d
mov rax, qword [r12 + 0x20]
lea r9, [rsp + 0xa8]
cmp r15, 8
cmovae r9, r14
mov r10, qword [r12 + 0x30]
mov rcx, rdi
cmp r10, rdi
cmovb rcx, r10
test rcx, rcx
je 0x1400678a8
sub r9, rax
movzx edx, word [rax + r9]
cmp dx, word [rax]
jne 0x1400678b2
add rax, 2
sub rcx, 1
jne 0x140067894
cmp rdi, r10
jae 0x1400678bb
mov eax, r13d
jmp 0x1400678c0
mov eax, r11d
cmovb eax, r13d
jmp 0x1400678c0
mov eax, esi
seta al
shr eax, 0x1f
test al, al
jne 0x1400678ce
mov rdi, qword [rsp + 0x78]
jmp 0x1400678d6
mov rdi, qword [rsp + 0x78]
mov r12, qword [rdi]
cmp r15, 8
jb 0x140067911
lea rdx, [r15*2 + 2]
mov rax, r14
cmp rdx, 0x1000
jb 0x140067909
add rdx, 0x27
mov r14, qword [r14 - 8]
sub rax, r14
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140067eef
mov rcx, r14
call fcn.1400079c0
mov qword [rsp + 0xb8], rsi
mov qword [rsp + 0xc0], 7
mov word [rsp + 0xa8], si
cmp r12, qword [rdi]
je 0x140067a79
mov rax, qword [r12 + 0x40]
mov r15d, dword [rax + 0x10]
test r15d, r15d
je 0x140067a07
mov rdi, rsi
nop dword [rax + rax]
mov rax, qword [r12 + 0x40]
test rdi, rdi
js 0x140067ef5
cmp rdi, qword [rax + 0x10]
jge 0x140067ef5
lfence
mov rax, qword [rax + 8]
lea r8, [rax + rdi*8]
mov rcx, qword [r8]
sub rcx, 0x18
mov rdx, qword [rsp + 0x60]
lea rbx, [rdx - 0x18]
cmp rcx, rbx
je 0x1400679e5
cmp dword [rbx + 0x10], 0
jl 0x1400679cc
mov rax, qword [rbx]
cmp qword [rcx], rax
jne 0x1400679cc
call fcn.140004d00
mov r14, rax
mov ecx, r13d
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x1400679c1
lfence
mov rcx, qword [rbx]
mov rax, qword [rcx]
mov rdx, rbx
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
lea rdx, [r14 + 0x18]
mov qword [rsp + 0x60], rdx
jmp 0x1400679e5
lfence
mov rdx, qword [r8]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x60]
call fcn.140004e60
mov rdx, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x140067a6c
inc esi
inc rdi
cmp esi, r15d
jb 0x140067950
mov rbx, qword [rsp + 0x50]
mov r14d, dword [rsp + 0x40]
lea rsi, [0x1402a8360]
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140067a38
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r13d
sub r13d, 1
jg 0x140067a60
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov rbx, qword [0x1402a8360]
jmp 0x140067dde
mov r14d, 1
mov rbx, qword [rsp + 0x50]
jmp 0x140067a0c
mov dword [rsp + 0x48], esi
mov dword [rsp + 0x58], esi
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x140]
call fcn.1401e7e40
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x770]
call fcn.1401e7e40
mov r12, rsi
mov qword [rsp + 0x80], rsi
mov edi, esi
mov r15, qword [rsp + 0x70]
nop dword [rax]
mov rax, qword [0x1402bc020]
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], edi
lea rcx, [rsp + 0x560]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x350]
mov r8d, dword [rsp + 0x88]
mov rdx, r15
lea rcx, [0x1402bc020]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov r14d, eax
test eax, eax
jne 0x140067b24
lea rdx, [0x140251dfc]
lea rcx, [rsp + 0x560]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x140067b31
inc edi
cmp edi, 2
jae 0x140067c4b
jmp 0x140067ac0
cmp word [rsp + 0x350], r12w
jne 0x140067b52
lea rdx, [rsp + 0x560]
lea rcx, [rsp + 0x350]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov rcx, qword [0x1402bbf58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
lea r9, [rsp + 0x4c]
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x350]
call fcn.140190740
mov r14d, 0x80010030
test eax, eax
cmove r14d, esi
mov edx, esi
test edi, edi
sete dl
mov rax, qword [0x1402bc020]
mov dword [rsp + 0x30], esi
mov dword [rsp + 0x28], edx
lea rdx, [rsp + 0x770]
mov qword [rsp + 0x20], rdx
lea r9, [rsp + 0x140]
mov r8d, dword [rsp + 0x88]
mov rdx, r15
lea rcx, [0x1402bc020]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov dword [rsp + 0x48], eax
cmp word [rsp + 0x140], r12w
jne 0x140067bf5
lea rdx, [rsp + 0x770]
lea rcx, [rsp + 0x140]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x140]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140067c4b
mov rcx, qword [0x1402bbf58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
lea r9, [rsp + 0x58]
lea r8, [rsp + 0x80]
lea rdx, [rsp + 0x140]
call fcn.140190740
mov edi, 0x80010030
test eax, eax
cmove edi, esi
mov dword [rsp + 0x48], edi
mov r12, qword [rsp + 0x80]
test r14d, r14d
jne 0x140067d60
lea ecx, [r14 + 0x28]
call fcn.1401baa78
mov qword [rsp + 0x88], rax
test rax, rax
je 0x140067c77
mov rcx, rax
call fcn.1401c8bf0
mov r15, rax
jmp 0x140067c7a
mov r15, rsi
test r15, r15
je 0x140067d60
mov r14d, esi
cmp r14d, dword [rsp + 0x4c]
jae 0x140067cd1
mov eax, r14d
mov rcx, qword [rsp + 0x68]
lea rdi, [rcx + rax*8]
mov rdx, qword [rdi]
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
mov ecx, dword [rsp + 0x40]
test eax, eax
mov eax, 1
cmove ecx, eax
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x44], ecx
mov r8, qword [rdi]
mov rdx, qword [r15 + 0x10]
mov rcx, r15
call fcn.1401c91a0
inc r14d
jmp 0x140067c86
cmp dword [rsp + 0x48], 0
jne 0x140067cfa
mov edi, dword [rsp + 0x58]
nop dword [rax]
cmp esi, edi
jae 0x140067cfa
mov eax, esi
mov r8, qword [r12 + rax*8]
mov rdx, qword [r15 + 0x10]
mov rcx, r15
call fcn.1401c91a0
inc esi
jmp 0x140067ce0
xorps xmm0, xmm0
movups xmmword [rsp + 0xc8], xmm0
xorps xmm1, xmm1
movdqu xmmword [rsp + 0xd8], xmm1
mov r8, r13
inc r8
cmp word [rbx + r8*2], 0
jne 0x140067d14
mov rdx, rbx
lea rcx, [rsp + 0xc8]
call fcn.140005520
mov qword [rsp + 0xe8], r15
lea r8, [rsp + 0xc8]
lea rdx, [rsp + 0x88]
mov rcx, qword [rsp + 0x78]
call fcn.140069860
nop
lea rcx, [rsp + 0xc8]
call fcn.1400048a0
nop
mov r14d, dword [rsp + 0x40]
lea rsi, [0x1402a8360]
mov rdi, qword [rsp + 0x68]
test rdi, rdi
je 0x140067d92
mov rcx, qword [0x1402bbf58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rdx, rdi
call fcn.14018ea30
test r12, r12
je 0x140067a13
mov rcx, qword [0x1402bbf58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rdx, r12
call fcn.14018ea30
jmp 0x140067a13
lea rsi, [0x1402a8360]
mov al, 1
mov byte [rsp + 0xf8], al
lea rdi, [0x1402bbdb0]
cmp rbx, rsi
je 0x140067e34
test byte [rbx + 0x1c], al
je 0x140067e34
mov r9, rdi
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x24
mov dword [rsp + 0x20], r14d
lea r8, [0x140256c80]
mov rcx, qword [rbx + 0x10]
call fcn.140001b40
movzx eax, byte [rsp + 0xf8]
mov rbx, qword [0x1402a8360]
lea rcx, vtable.WppTrace.0
mov qword [rsp + 0xf0], rcx
test al, al
jne 0x140067e99
cmp rbx, rsi
je 0x140067e99
test byte [rbx + 0x1c], 1
je 0x140067e99
lea rcx, [rsp + 0x100]
cmp qword [rsp + 0x118], 8
cmovae rcx, qword [rsp + 0x100]
cmp qword [0x1402bbdc8], 8
cmovae rdi, qword [0x1402bbdb0]
mov edx, 0xa
mov qword [rsp + 0x20], rcx
mov r9, rdi
lea r8, [0x140252818]
mov rcx, qword [rbx + 0x10]
call fcn.140006c90
lea rcx, [rsp + 0x120]
call fcn.1400048a0
lea rcx, [rsp + 0x100]
call fcn.1400048a0
mov eax, r14d
mov rcx, qword [rsp + 0x980]
xor rcx, rsp
call fcn.1401e2900
add rsp, 0x990
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
call fcn.1401ec41c
int3
call fcn.1401bb848
int3