Function at 0x180167740
Capabilities:
Check if file exists

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x1b0
mov rax, qword [0x180295a70]
xor rax, rsp
mov qword [rsp + 0x1a0], rax
test rdx, rdx
mov rdi, rdx
jne 0x18016778f
call fcn.180169240
xor esi, esi
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov dword [rax], SafeArrayUnaccessData
mov qword [rsp + 0x20], rsi
call fcn.18015ffd0
or rax, 0xffffffffffffffff
jmp 0x1801679bd
test rcx, rcx
je 0x180167765
lea rdx, [rsp + 0x60]
mov qword [rsp + 0x1e0], rbp
call qword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp rax, 0xffffffffffffffff
mov rbp, rax
jne 0x180167806
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jb 0x1801677ca
cmp eax, 3
jbe 0x1801677f2
cmp eax, 8
je 0x1801677de
cmp eax, 0x12
je 0x1801677f2
call fcn.180169240
mov dword [rax], SafeArrayUnaccessData
or rax, 0xffffffffffffffff
jmp 0x1801679b5
call fcn.180169240
mov dword [rax], reloc.OLEAUT32.dll_VariantTimeToDosDateTime
or rax, 0xffffffffffffffff
jmp 0x1801679b5
call fcn.180169240
mov dword [rax], 2
or rax, 0xffffffffffffffff
jmp 0x1801679b5
mov eax, dword [rsp + 0x60]
xor esi, esi
cmp eax, 0x80
cmove eax, esi
cmp dword [rsp + 0x64], esi
mov dword [rdi], eax
jne 0x18016782b
cmp dword [rsp + 0x68], esi
jne 0x18016782b
or rbx, 0xffffffffffffffff
mov rax, rbx
jmp 0x180167893
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x64]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x18016788c
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x18016788c
movzx eax, word [rsp + 0x4c]
movzx r10d, word [rsp + 0x4a]
movzx r9d, word [rsp + 0x48]
movzx r8d, word [rsp + 0x46]
movzx edx, word [rsp + 0x42]
movzx ecx, word [rsp + 0x40]
or rbx, 0xffffffffffffffff
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.18017aa90
jmp 0x180167893
or rbx, 0xffffffffffffffff
mov rax, rbx
cmp dword [rsp + 0x6c], esi
mov qword [rdi + 8], rax
jne 0x1801678a8
cmp dword [rsp + 0x70], esi
jne 0x1801678a8
mov rax, rbx
jmp 0x180167908
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x6c]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x180167905
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x180167905
movzx eax, word [rsp + 0x4c]
movzx r10d, word [rsp + 0x4a]
movzx r9d, word [rsp + 0x48]
movzx r8d, word [rsp + 0x46]
movzx edx, word [rsp + 0x42]
movzx ecx, word [rsp + 0x40]
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.18017aa90
jmp 0x180167908
mov rax, rbx
cmp dword [rsp + 0x74], esi
mov qword [rdi + 0x10], rax
jne 0x180167918
cmp dword [rsp + 0x78], esi
je 0x180167976
lea rdx, [rsp + 0x50]
lea rcx, [rsp + 0x74]
call qword [sym.imp.KERNEL32.dll_FileTimeToLocalFileTime]
test eax, eax
je 0x180167976
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_FileTimeToSystemTime]
test eax, eax
je 0x180167976
movzx eax, word [rsp + 0x4c]
movzx r10d, word [rsp + 0x4a]
movzx r9d, word [rsp + 0x48]
movzx r8d, word [rsp + 0x46]
movzx edx, word [rsp + 0x42]
movzx ecx, word [rsp + 0x40]
mov dword [rsp + 0x30], ebx
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x20], r10d
call fcn.18017aa90
mov rbx, rax
mov eax, dword [rsp + 0x80]
lea rcx, [rdi + 0x24]
lea r8, [rsp + 0x8c]
mov edx, 0x104
mov qword [rdi + 0x18], rbx
mov dword [rdi + 0x20], eax
call fcn.18016bef0
test eax, eax
je 0x1801679b2
xor r9d, r9d
xor r8d, r8d
xor edx, edx
xor ecx, ecx
mov qword [rsp + 0x20], rsi
call fcn.18015ff30
mov rax, rbp
mov rbp, qword [rsp + 0x1e0]
mov rcx, qword [rsp + 0x1a0]
xor rcx, rsp
call fcn.1801604e0
add rsp, 0x1b0
pop rdi
pop rsi
pop rbx
ret