Function at 0x14008ced0
Capabilities:
Check if file exists

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x980
mov qword [rsp + 0xc8], 0xfffffffffffffffe
mov rax, qword [0x140398250]
xor rax, rsp
mov qword [rsp + 0x970], rax
mov esi, r9d
mov r14d, r8d
mov rdi, rdx
mov qword [rsp + 0x60], rdx
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0xb0], rdx
xor r8d, r8d
lea rdx, str.CBaseFuncSub::FS_IsDriverSuppotFromInf
lea rcx, [rsp + 0xb8]
call fcn.1400075a0
nop
xor r12d, r12d
mov ebx, r12d
mov dword [rsp + 0x40], ebx
mov dword [rsp + 0x54], ebx
mov dword [rsp + 0x50], r12d
mov qword [rsp + 0x68], r12
test rdi, rdi
je 0x14008d6fe
cmp esi, 1
jne 0x14008cf87
cmp r14d, 3
jne 0x14008cf87
mov rcx, qword [0x1403b9750]
mov rax, qword [rcx]
call qword [rax + 0x50]
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0xd0]
mov ecx, 5
test eax, eax
cmovne r14d, ecx
cmp r14d, 0x400
cmove r14d, r12d
test r14d, r14d
je 0x14008cf9a
dec r14d
call fcn.140102a14
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14008cfba
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x80], rbx
call fcn.140102a14
mov rdx, rax
mov ecx, r12d
test rax, rax
setne cl
test ecx, ecx
jne 0x14008cfef
mov ecx, 0x80004005
call fcn.140005210
int3
mov rax, qword [rax]
mov rcx, rdx
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
lea rax, [0x1402dc4e0]
test rax, 0xffffffffffff0000
jne 0x14008d031
movzx edi, ax
mov ecx, edi
call fcn.1401027e8
test rax, rax
je 0x14008d043
mov r8d, edi
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140005b00
jmp 0x14008d043
xor r8d, r8d
mov rdx, rax
lea rcx, [rsp + 0x48]
call fcn.140005d50
jmp 0x14008d048
mov rdi, qword [rsp + 0x60]
lea rcx, [0x1402ddbb8]
call fcn.140023e50
lea rcx, [rsp + 0x48]
test eax, eax
je 0x14008d0cd
mov r8d, 3
lea rdx, [0x1402ddbb8]
call fcn.140005d50
lea rdx, [0x1402e8c50]
mov rcx, rdi
call fcn.140245e24
lea rcx, [rsp + 0x48]
test rax, rax
je 0x14008d0a2
mov r8d, 2
lea rdx, [0x1402f9b7c]
call fcn.140005f90
mov r13d, 1
jmp 0x14008d0b7
mov r13d, 1
mov r8d, r13d
lea rdx, [0x1402e8580]
call fcn.140005f90
mov r8d, r14d
lea rdx, [0x1402dc3ec]
lea rcx, [rsp + 0x48]
call fcn.1400a1e70
jmp 0x14008d0e2
mov r8d, r14d
lea rdx, [0x1402dc3ec]
call fcn.14000de40
mov r13d, 1
mov qword [rsp + 0xf0], 7
mov qword [rsp + 0xe8], r12
mov word [rsp + 0xd8], r12w
xor eax, eax
or r15, 0xffffffffffffffff
mov rcx, r15
mov rsi, qword [rsp + 0x48]
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0xd8]
call fcn.140001f40
nop
mov rdi, qword [rsp + 0x90]
lea rdx, [rsp + 0xd8]
lea rcx, [rdi + 0x38]
call fcn.1400672a0
mov qword [rsp + 0xa8], rax
mov rcx, qword [rdi + 0x40]
cmp rax, rcx
je 0x14008d1f4
lea rdx, [rax + 0x18]
mov r9, qword [rdx + 0x10]
cmp qword [rdx + 0x18], 8
jb 0x14008d16b
mov rdx, qword [rdx]
lea rdi, [rsp + 0xd8]
mov r11, qword [rsp + 0xf0]
cmp r11, 8
cmovae rdi, qword [rsp + 0xd8]
mov r8, r9
mov r10, qword [rsp + 0xe8]
cmp r10, r9
cmovb r8, r10
test r8, r8
je 0x14008d1c3
nop
movzx eax, word [rdx]
cmp word [rdi], ax
jne 0x14008d1b7
add rdi, 2
add rdx, 2
dec r8
jne 0x14008d1a0
jmp 0x14008d1c3
mov r8d, r13d
cmp word [rdi], ax
cmovb r8d, r15d
jmp 0x14008d1c6
mov r8d, r12d
movsxd rax, r8d
test r8d, r8d
jne 0x14008d1e1
cmp r10, r9
jae 0x14008d1d8
mov eax, r15d
jmp 0x14008d1e1
mov eax, r12d
cmp r10, r9
setne al
test eax, eax
sets al
test al, al
jne 0x14008d1fc
lea rdi, [rsp + 0xa8]
jmp 0x14008d20c
mov r11, qword [rsp + 0xf0]
mov qword [rsp + 0xa0], rcx
lea rdi, [rsp + 0xa0]
mov rdi, qword [rdi]
cmp r11, 8
jb 0x14008d222
mov rcx, qword [rsp + 0xd8]
call fcn.1401026ec
mov qword [rsp + 0xf0], 7
mov qword [rsp + 0xe8], r12
mov word [rsp + 0xd8], r12w
mov rax, qword [rsp + 0x90]
cmp rdi, qword [rax + 0x40]
je 0x14008d338
mov rax, qword [rdi + 0x40]
mov r14, qword [rax + 0x10]
mov r13, r12
test r14d, r14d
je 0x14008d6bc
nop word [rax + rax]
mov rax, qword [rdi + 0x40]
test r13, r13
js 0x14008d332
cmp r13, qword [rax + 0x10]
jge 0x14008d332
mov rax, qword [rax + 8]
mov rdx, qword [rax + r13*8]
lea rcx, [rdx - 0x18]
lea rsi, [rbx - 0x18]
cmp rcx, rsi
je 0x14008d2f4
cmp dword [rsi + 0x10], 0
jl 0x14008d2db
mov rax, qword [rsi]
cmp qword [rcx], rax
jne 0x14008d2db
call fcn.140006190
mov rbx, rax
mov ecx, r15d
lock xadd dword [rsi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x14008d2cd
mov rcx, qword [rsi]
mov r8, qword [rcx]
mov rdx, rsi
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
add rbx, 0x18
mov qword [rsp + 0x80], rbx
jmp 0x14008d2f4
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x80]
call fcn.140005d50
mov rbx, qword [rsp + 0x80]
mov rdx, rbx
mov rcx, qword [rsp + 0x60]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x14008d323
inc r12d
inc r13
cmp r12d, r14d
jb 0x14008d270
mov rsi, qword [rsp + 0x48]
mov ebx, dword [rsp + 0x40]
jmp 0x14008d6bf
mov ebx, 1
mov rsi, qword [rsp + 0x48]
jmp 0x14008d6bf
call fcn.140102ffc
int3
mov dword [rsp + 0x58], r12d
mov dword [rsp + 0x70], r12d
mov word [rsp + 0x130], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x132]
call fcn.14024b970
mov word [rsp + 0x550], r12w
xor edx, edx
mov r8d, 0x206
lea rcx, [rsp + 0x552]
call fcn.14024b970
mov qword [rsp + 0x78], r12
mov r13d, r12d
mov rbx, qword [rsp + 0x60]
nop dword [rax + rax]
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdi, qword [rax]
mov dword [rsp + 0x30], 1
mov dword [rsp + 0x28], r13d
lea rcx, [rsp + 0x760]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x340]
mov r8d, r14d
mov rdx, rbx
mov rcx, rax
call qword [rdi + 0x328]
mov dword [rsp + 0x88], eax
test eax, eax
jne 0x14008d3f5
lea rdx, [0x1402dc4e0]
lea rcx, [rsp + 0x760]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x14008d404
inc r13d
cmp r13d, 2
jae 0x14008d506
jmp 0x14008d390
cmp word [rsp + 0x340], 0
jne 0x14008d425
lea rdx, [rsp + 0x760]
lea rcx, [rsp + 0x340]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
mov ebx, r12d
test r13d, r13d
sete bl
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rdi, qword [rax]
lea r9, [rsp + 0x50]
lea r8, [rsp + 0x68]
lea rdx, [rsp + 0x340]
mov rcx, rax
call qword [rdi + 0x98]
mov r13d, eax
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rdi, qword [rax]
mov dword [rsp + 0x30], r12d
mov dword [rsp + 0x28], ebx
lea rcx, [rsp + 0x550]
mov qword [rsp + 0x20], rcx
lea r9, [rsp + 0x130]
mov r8d, r14d
mov r14, qword [rsp + 0x60]
mov rdx, r14
mov rcx, rax
call qword [rdi + 0x328]
mov dword [rsp + 0x58], eax
cmp word [rsp + 0x130], 0
jne 0x14008d4c3
lea rdx, [rsp + 0x550]
lea rcx, [rsp + 0x130]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea rcx, [rsp + 0x130]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x14008d511
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rdi, qword [rax]
lea r9, [rsp + 0x70]
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x130]
mov rcx, rax
call qword [rdi + 0x98]
mov dword [rsp + 0x58], eax
jmp 0x14008d511
mov r13d, dword [rsp + 0x88]
mov r14, rbx
test r13d, r13d
jne 0x14008d666
lea ecx, [r13 + 0x28]
call fcn.1401026a0
mov qword [rsp + 0x60], rax
test rax, rax
je 0x14008d53a
mov rcx, rax
call fcn.140105848
mov r13, rax
jmp 0x14008d53d
mov r13, r12
test r13, r13
je 0x14008d652
mov ebx, r12d
nop dword [rax]
cmp ebx, dword [rsp + 0x50]
jae 0x14008d599
mov edi, ebx
mov rdx, qword [rsp + 0x68]
mov rdx, qword [rdx + rdi*8]
mov rcx, r14
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 + 0x54], ecx
mov rax, qword [rsp + 0x68]
mov r8, qword [rax + rdi*8]
mov rdx, qword [r13 + 0x10]
mov rcx, r13
call fcn.140105f30
inc ebx
jmp 0x14008d550
cmp dword [rsp + 0x58], 0
jne 0x14008d5c4
mov edi, r12d
cmp edi, dword [rsp + 0x70]
jae 0x14008d5c4
mov ecx, edi
mov rax, qword [rsp + 0x78]
mov r8, qword [rax + rcx*8]
mov rdx, qword [r13 + 0x10]
mov rcx, r13
call fcn.140105f30
inc edi
jmp 0x14008d5a3
mov qword [rsp + 0x118], 7
mov qword [rsp + 0x110], r12
mov word [rsp + 0x100], r12w
xor eax, eax
mov rcx, r15
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
mov rdx, rsi
lea rcx, [rsp + 0x100]
call fcn.140001f40
mov qword [rsp + 0x128], r13
mov rdi, qword [rsp + 0x90]
lea rdx, [rsp + 0x100]
lea rcx, [rdi + 0x38]
call fcn.1400c19c0
mov r8, rax
lea rdx, [rsp + 0x90]
lea rcx, [rdi + 0x38]
call fcn.1400a20e0
nop
cmp qword [rsp + 0x118], 8
jb 0x14008d652
mov rcx, qword [rsp + 0x100]
call fcn.1401026ec
nop
jmp 0x14008d666
mov ebx, dword [rsp + 0x40]
cmp qword [rsp + 0x68], 0
je 0x14008d692
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rdi, qword [rax]
mov rdx, qword [rsp + 0x68]
mov rcx, rax
call qword [rdi + 0x40]
mov qword [rsp + 0x68], r12
cmp qword [rsp + 0x78], 0
je 0x14008d6bf
mov rcx, qword [0x1403b9758]
mov rax, qword [rcx]
call qword [rax + 0x28]
mov rdi, qword [rax]
mov rdx, qword [rsp + 0x78]
mov rcx, rax
call qword [rdi + 0x40]
mov qword [rsp + 0x78], r12
jmp 0x14008d6bf
mov ebx, r13d
lea rdx, [rsi - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x14008d6db
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x80]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
dec r15d
test r15d, r15d
jg 0x14008d6fe
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov r9d, ebx
lea r8, str.return___08x
mov edx, 2
lea rcx, [rsp + 0xb8]
call fcn.140007780
nop
lea rcx, [rsp + 0xb8]
call fcn.140007730
mov eax, ebx
mov rcx, qword [rsp + 0x970]
xor rcx, rsp
call fcn.140245660
add rsp, 0x980
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret