Function at 0x140073360
Capabilities:
Check if file exists
Get disk information
Get file attributes

Disassembly:
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x40
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rsi
lea rcx, str.__a_t_
mov rax, qword [str.__a_t_]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rsp + 0x20], rdi
mov rbx, qword [rsp + 0x50]
test rbx, rbx
jne 0x1400733ce
lea ecx, [rbx + 0x57]
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rdx, [rdi - 0x18]
or rsi, 0xffffffffffffffff
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x1400733c7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
jmp 0x1400735a3
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140073474
test al, 0x10
je 0x140073474
mov rdx, rbx
lea rcx, [rsp + 0x28]
call fcn.140072f80
nop
mov rdx, qword [rax]
lea rcx, [rdx - 0x18]
add rdi, 0xffffffffffffffe8
or rsi, 0xffffffffffffffff
cmp rcx, rdi
je 0x140073453
cmp dword [rdi + 0x10], 0
jl 0x140073444
mov rax, qword [rdi]
cmp qword [rcx], rax
jne 0x140073444
call fcn.1400020e0
mov rbx, rax
mov ecx, esi
lock xadd dword [rdi + 0x10], ecx
dec ecx
test ecx, ecx
jg 0x140073439
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + 8]
lea rax, [rbx + 0x18]
mov qword [rsp + 0x20], rax
jmp 0x140073453
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.140001f70
nop
mov rdx, qword [rsp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
dec eax
test eax, eax
jg 0x140073497
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140073497
xor eax, eax
or rsi, 0xffffffffffffffff
mov rcx, rsi
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.140001f70
mov rdi, qword [rsp + 0x20]
cmp dword [rdi - 0x10], 2
jge 0x1400734cd
mov ecx, 0x57
call qword [sym.imp.KERNEL32.dll_SetLastError]
nop
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x1400734c6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor eax, eax
jmp 0x1400735a3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
dec eax
cmp eax, 5
ja case.default.0x1400734f2
lea rdx, [0x140000000]
mov ecx, dword [rdx + rax*4 + 0x735b4]
add rcx, rdx
jmp rcx
mov eax, dword [rdi - 0x10]
test eax, eax
jns 0x140073506
mov ecx, 0x80070057
call fcn.140001340
int3
mov edx, 0x5c
cmp dx, word [rdi]
jne 0x14007355a
cmp eax, 1
jge 0x140073520
mov ecx, 0x80070057
call fcn.140001340
int3
cmp dx, word [rdi + 2]
jne 0x14007355a
cmp eax, 2
jle 0x140073553
lea rcx, [rdi + 4]
call qword [sym.imp.MSVCR90.dll_wcschr]
test rax, rax
je 0x140073553
sub rax, rdi
sar rax, 1
cmp eax, 0xffffffff
je 0x140073553
mov ecx, dword [rdi - 0x10]
dec ecx
xor ebx, ebx
cmp eax, ecx
sete bl
jmp 0x140073589
mov ebx, 1
jmp 0x140073589
cmp eax, 3
jg 0x14007357f
cmp eax, 1
jge 0x14007356f
mov ecx, 0x80070057
call fcn.140001340
int3
mov eax, 0x3a
cmp ax, word [rdi + 2]
jne 0x14007357f
lea ebx, [rax - 0x39]
jmp 0x140073589
xor ebx, ebx
jmp 0x140073589
xor ebx, ebx
jmp 0x140073589
xor ebx, ebx
lea rdx, [rdi - 0x18]
lock xadd dword [rdx + 0x10], esi
dec esi
test esi, esi
jg 0x1400735a1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, ebx
mov rbx, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x40
pop rdi
ret