Function at 0x1400683b0
Capabilities:
Check if file exists

Disassembly:
mov qword [rsp + 8], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x27]
sub rsp, 0xf0
mov rax, qword [0x1402a76c0]
xor rax, rsp
mov qword [rbp + 0x17], rax
mov qword [rbp - 0x69], r8
mov r13d, edx
lea rdx, str.GetInfInformation::GetUsingDriverNameFromSubFolderInf
lea rcx, [rbp - 0x39]
call fcn.14001abe0
nop
lea rax, [0x1402a8360]
lea r12, [0x1402bbdb0]
mov rcx, qword [0x1402a8360]
cmp rcx, rax
je 0x14006843a
test byte [rcx + 0x1c], 1
je 0x14006843a
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x27
lea r8, [0x140256c80]
mov rcx, qword [rcx + 0x10]
call fcn.140001ad0
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x140068868
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x40], rdi
call fcn.1401bb0c4
mov rcx, rax
test rax, rax
je 0x140068873
mov rax, qword [rax]
mov rax, qword [rax + 0x18]
call qword [case.0x1400136d6.0]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x30], rbx
lea rcx, [rbp - 0x61]
call fcn.1401c8bf0
nop
lea rcx, [rbp - 0x71]
call fcn.140051640
nop
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x1400684c4
mov edx, 0x104
lea rcx, [rsp + 0x30]
call fcn.140004e00
mov rbx, qword [rsp + 0x30]
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, 0x104
or eax, ecx
jge 0x1400684ec
mov edx, 0x104
lea rcx, [rsp + 0x40]
call fcn.140004e00
mov rdi, qword [rsp + 0x40]
call fcn.14018d2c0
mov rcx, rax
call fcn.14018c0c0
mov edx, eax
mov dword [rsp + 0x20], 3
mov r9, rbx
mov r8, rdi
lea rcx, [rbp - 0x71]
call fcn.140053200
mov r15d, eax
movsxd rdx, dword [rdi - 0xc]
mov rcx, rdi
call fcn.1401eca00
test eax, eax
js 0x14006885d
cmp eax, dword [rdi - 0xc]
jg 0x14006885d
mov dword [rdi - 0x10], eax
cdqe
xor r14d, r14d
mov word [rdi + rax*2], r14w
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.1401eca00
test eax, eax
js 0x14006885d
cmp eax, dword [rbx - 0xc]
jg 0x14006885d
mov dword [rbx - 0x10], eax
cdqe
mov word [rbx + rax*2], r14w
lea rsi, [r14 - 1]
test r15d, r15d
je 0x14006870e
mov rcx, qword [0x1402bbf50]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov r8, rax
mov rcx, qword [rax]
mov rax, qword [rcx + 0xc8]
mov edx, r13d
mov rcx, r8
call qword [case.0x1400136d6.0]
mov rdi, rax
movsxd rax, dword [rbx - 0x10]
lea ecx, [rax - 1]
test ecx, ecx
js 0x140068852
cmp ecx, eax
jg 0x140068852
mov rcx, rax
mov eax, 0x5c
cmp ax, word [rbx + rcx*2 - 2]
je 0x1400685ea
lea rdx, [0x140251df8]
mov rax, rsi
inc rax
cmp word [rdx + rax*2], r14w
jne 0x1400685d3
mov r8d, eax
lea rcx, [rsp + 0x30]
call fcn.140007390
test rdi, rdi
jne 0x1400685f4
mov eax, r14d
jmp 0x14006860a
mov rax, rsi
nop word [rax + rax]
inc rax
cmp word [rdi + rax*2], r14w
jne 0x140068600
mov r8d, eax
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140007390
lea rcx, [rbp - 0x79]
call fcn.140091e00
nop
mov dword [rsp + 0x20], 1
lea r9, [rbp - 0x61]
lea r8, [0x1402550a0]
mov rbx, qword [rsp + 0x30]
mov rdx, rbx
lea rcx, [rbp - 0x79]
call fcn.140093f40
cmp qword [rbp - 0x51], 0
jle 0x140068701
mov rcx, qword [rbp - 0x59]
mov rcx, qword [rcx]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140068704
mov qword [rsp + 0x48], r14
mov dword [rsp + 0x38], r14d
mov rcx, qword [0x1402bbf58]
cmp qword [rbp - 0x51], 0
jle 0x14006887e
mov rdi, qword [rbp - 0x59]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
lea r9, [rsp + 0x38]
lea r8, [rsp + 0x48]
mov rdx, qword [rdi]
call fcn.140190740
mov rdi, qword [rsp + 0x48]
test eax, eax
jne 0x1400686db
mov rdx, qword [rdi]
test rdx, rdx
je 0x1400686cd
mov rax, rsi
nop dword [rax + rax]
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400686c0
mov r14d, eax
mov r8d, r14d
mov rcx, qword [rbp - 0x69]
call fcn.140004e60
jmp 0x1400686de
mov r15d, r14d
test rdi, rdi
je 0x140068704
mov rcx, qword [0x1402bbf58]
mov rax, qword [rcx]
mov rax, qword [rax + 0x20]
call qword [case.0x1400136d6.0]
mov rdx, rdi
call fcn.14018ea30
jmp 0x140068704
mov r15d, r14d
lea rcx, [rbp - 0x79]
call fcn.140091f70
nop
lea rcx, [rbp - 0x71]
call fcn.1400517b0
nop
lea rcx, [rbp - 0x61]
call fcn.1401c8c10
nop
lea rdx, [rbx - 0x18]
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140068746
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x14006876c
lfence
mov rcx, qword [rdx]
mov rax, qword [rcx]
mov rax, qword [rax + 8]
call qword [case.0x1400136d6.0]
mov al, 1
mov byte [rbp - 0x31], al
mov rcx, qword [0x1402a8360]
lea rbx, [0x1402a8360]
cmp rcx, rbx
je 0x1400687c1
test byte [rcx + 0x1c], al
je 0x1400687c1
mov r9, r12
cmp qword [0x1402bbdc8], 8
cmovae r9, qword [0x1402bbdb0]
mov edx, 0x28
mov dword [rsp + 0x20], r15d
lea r8, [0x140256c80]
mov rcx, qword [rcx + 0x10]
call fcn.140001b40
movzx eax, byte [rbp - 0x31]
mov rcx, qword [0x1402a8360]
lea rdx, vtable.WppTrace.0
mov qword [rbp - 0x39], rdx
test al, al
jne 0x140068816
cmp rcx, rbx
je 0x140068816
test byte [rcx + 0x1c], 1
je 0x140068816
lea rax, [rbp - 0x29]
cmp qword [rbp - 0x11], 8
cmovae rax, qword [rbp - 0x29]
cmp qword [0x1402bbdc8], 8
cmovae r12, qword [0x1402bbdb0]
mov edx, 0xa
mov qword [rsp + 0x20], rax
mov r9, r12
lea r8, [0x140252818]
mov rcx, qword [rcx + 0x10]
call fcn.140006c90
lea rcx, [rbp - 9]
call fcn.1400048a0
lea rcx, [rbp - 0x29]
call fcn.1400048a0
mov eax, r15d
mov rcx, qword [rbp + 0x17]
xor rcx, rsp
call fcn.1401e2900
mov rbx, qword [rsp + 0x130]
add rsp, 0xf0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov ecx, 0x80070057
call fcn.140001470
int3
mov ecx, 0x80070057
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
mov ecx, 0x80004005
call fcn.140001470
nop
call fcn.1401bb848
int3