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

Disassembly:
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x270
mov rax, qword [0x100165138]
xor rax, rsp
mov qword [rsp + 0x260], rax
xor esi, esi
mov rbx, r9
mov edi, r8d
mov qword [rsp + 0x40], rbx
mov r14b, sil
mov byte [rsp + 0x33], sil
mov r15b, sil
mov r13b, sil
mov byte [rsp + 0x32], sil
mov byte [rsp + 0x30], sil
mov qword [rsp + 0x38], rsi
mov byte [rsp + 0x31], sil
mov byte [rsp + 0x34], sil
mov r12, rdx
mov rcx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
lea eax, [rsi + 1]
cmp rcx, rdx
je 0x1000465f6
test byte [rcx + 0x1c], al
je 0x1000465f6
cmp byte [rcx + 0x19], 4
jb 0x1000465f6
mov rcx, qword [rcx + 0x10]
lea edx, [rsi + 0x56]
lea r8, [0x100003cb8]
call fcn.10001c854
lea eax, [rsi + 1]
lea rdx, [0x1001653b8]
mov byte [rbx], sil
mov rcx, qword [0x1001653b8]
cmp rcx, rdx
je 0x100046671
test byte [rcx + 0x1c], al
je 0x10004663b
cmp byte [rcx + 0x19], 4
jb 0x10004663b
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cb8]
mov edx, 0x57
mov r9, r12
call fcn.10001db08
mov rcx, qword [0x1001653b8]
mov eax, 1
lea rdx, [0x1001653b8]
cmp rcx, rdx
je 0x100046671
test byte [rcx + 0x1c], al
je 0x100046671
cmp byte [rcx + 0x19], 4
jb 0x100046671
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cb8]
mov edx, 0x58
mov r9d, edi
call fcn.10001c878
mov rcx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
cmp r12, rsi
jne 0x1000466b5
mov ebx, 0x80070057
mov edi, 1
cmp rcx, rdx
je 0x100046bd7
test byte [rcx + 0x1c], dil
je 0x100046bd7
cmp byte [rcx + 0x19], 2
jb 0x100046bd7
lea edx, [rdi + 0x58]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cb8]
call fcn.10001c854
jmp 0x100046bd7
cmp edi, 2
je 0x10004670a
cmp edi, 3
jle 0x1000466de
cmp edi, 6
jg 0x1000466de
mov edi, 1
mov r14b, dil
mov r15b, dil
mov byte [rsp + 0x33], dil
mov r13b, dil
mov byte [rsp + 0x32], dil
jmp 0x100046714
mov ebx, 0x80070057
mov edi, 1
cmp rcx, rdx
je 0x100046bd7
test byte [rcx + 0x1c], dil
je 0x100046bd7
cmp byte [rcx + 0x19], 2
jb 0x100046bd7
lea edx, [rdi + 0x59]
jmp 0x1000466a0
mov edi, 1
mov byte [rsp + 0x30], dil
lea r8, [rsp + 0x31]
xor edx, edx
mov rcx, r12
call fcn.10009a26c
cmp eax, esi
mov ebx, eax
jge 0x10004677f
cmp eax, 0x8078011a
je 0x100046847
cmp eax, 0x8078006f
je 0x100046847
cmp eax, 0x80780071
je 0x100046847
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x100046bde
test byte [rcx + 0x1c], dil
je 0x100046bde
cmp byte [rcx + 0x19], 2
jb 0x100046bde
mov edx, 0x5b
jmp 0x100046a63
cmp byte [rsp + 0x31], sil
jne 0x100046847
lea rdx, [rsp + 0x50]
mov r8d, 0x104
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
cmp eax, esi
jne 0x1000467fa
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x1000467e7
mov eax, 1
test byte [rcx + 0x1c], al
je 0x1000467e7
cmp byte [rcx + 0x19], 2
jb 0x1000467e7
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5b]
lea r8, [0x100003cb8]
mov r9, r12
mov dword [rsp + 0x20], edi
call fcn.10001ddb0
movzx ebx, di
or ebx, 0x80070000
cmp edi, esi
cmovle ebx, edi
jmp 0x100046bcb
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
sub eax, 2
je 0x100046bd2
sub eax, edi
je 0x100046851
sub eax, edi
je 0x10004682f
lea r14, [0x1001653b8]
cmp eax, edi
jne 0x1000468ad
mov ebx, 0x80780082
jmp 0x100046bde
lea r8, [0x1000045d8]
lea rcx, [0x100005e40]
mov edx, 0x6f3
call fcn.10009a050
mov ebx, 0x80780083
jmp 0x100046bd7
cmp r13b, sil
je 0x100046915
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r12
repne scasw ax, word [rdi]
lea edi, [rax + 1]
not rcx
sub rcx, rdi
cmp word [r12 + rcx*2 - 2], 0x3a
jne 0x1000468b7
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x1000468ad
test byte [rcx + 0x1c], dil
je 0x1000468ad
cmp byte [rcx + 0x19], 2
jb 0x1000468ad
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5d]
lea r8, [0x100003cb8]
mov r9, r12
call fcn.10001db08
mov ebx, 0x80780057
jmp 0x100046bde
lea rdx, [rsp + 0x31]
mov rcx, r12
mov byte [rsp + 0x31], sil
call fcn.10010b588
cmp eax, esi
mov ebx, eax
jge 0x100046904
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x100046bde
test byte [rcx + 0x1c], dil
je 0x100046bde
cmp byte [rcx + 0x19], 2
jb 0x100046bde
mov edx, 0x5e
jmp 0x100046a63
cmp byte [rsp + 0x31], sil
jne 0x100046915
mov ebx, 0x80780057
jmp 0x100046bd7
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, r12
repne scasw ax, word [rdi]
lea r13d, [rax + 1]
lea rdx, [rsp + 0x50]
not rcx
sub rcx, r13
mov r8, rcx
mov rcx, r12
call qword [sym.imp.msvcrt.dll__wcsnicmp]
movzx edi, sil
cmp eax, esi
cmove edi, r13d
cmp byte [rsp + 0x30], sil
je 0x10004695f
cmp dil, sil
jne 0x10004695f
mov ebx, 0x80780057
mov rdi, r13
jmp 0x100046bd7
cmp r14b, sil
je 0x100046a13
lea rdx, [rsp + 0x38]
mov rcx, r12
mov byte [rsp + 0x30], sil
call fcn.1000a033c
cmp eax, esi
mov ebx, eax
jge 0x1000469b8
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
mov rdi, r13
cmp rcx, r14
je 0x100046bde
test byte [rcx + 0x1c], dil
je 0x100046bde
cmp byte [rcx + 0x19], 2
jb 0x100046bde
mov edx, 0x5f
jmp 0x100046a63
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x30]
call fcn.1001358e0
cmp eax, esi
mov ebx, eax
jge 0x100046a02
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
mov rdi, r13
cmp rcx, r14
je 0x100046bde
test byte [rcx + 0x1c], dil
je 0x100046bde
cmp byte [rcx + 0x19], 2
jb 0x100046bde
mov edx, 0x60
jmp 0x100046a63
cmp byte [rsp + 0x30], sil
jne 0x100046a13
mov ebx, 0x80780084
jmp 0x100046957
cmp r15b, sil
je 0x100046a7c
lea rdx, [rsp + 0x30]
mov rcx, r12
mov byte [rsp + 0x30], sil
call fcn.10010b65c
cmp eax, esi
mov ebx, eax
jge 0x100046a6b
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
mov rdi, r13
cmp rcx, r14
je 0x100046bde
test byte [rcx + 0x1c], dil
je 0x100046bde
cmp byte [rcx + 0x19], 2
jb 0x100046bde
mov edx, 0x61
mov r9d, eax
jmp 0x100046b43
cmp byte [rsp + 0x30], sil
je 0x100046a7c
mov ebx, 0x80780085
jmp 0x100046957
cmp byte [rsp + 0x33], sil
je 0x100046b64
cmp dil, sil
jne 0x100046b64
mov rcx, r12
mov ebx, esi
mov dil, sil
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x100046aff
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x100046aec
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100046aec
cmp byte [rcx + 0x19], 2
jb 0x100046aec
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0xf]
lea r8, [0x100002f60]
mov r9d, r13d
call fcn.10001c878
mov rcx, qword [0x1001653b8]
movzx ebx, r13w
or ebx, 0x80070000
cmp r13d, esi
cmovle ebx, r13d
jmp 0x100046b17
mov rcx, qword [0x1001653b8]
test al, 4
movzx edi, dil
cmovne edi, r13d
lea r14, [0x1001653b8]
cmp ebx, esi
jge 0x100046b58
mov edi, 1
cmp rcx, r14
je 0x100046bde
test byte [rcx + 0x1c], dil
je 0x100046bde
cmp byte [rcx + 0x19], 2
jb 0x100046bde
lea edx, [rdi + 0x61]
mov r9d, ebx
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cb8]
call fcn.10001c878
jmp 0x100046bde
cmp dil, sil
je 0x100046b6b
mov ebx, 0x80780086
jmp 0x100046bcb
lea r14, [0x1001653b8]
cmp byte [rsp + 0x32], sil
je 0x100046bc3
lea rdx, [rsp + 0x34]
mov rcx, r12
call fcn.10010b6f4
cmp eax, esi
mov ebx, eax
jge 0x100046bbe
mov rcx, qword [0x1001653b8]
mov edi, 1
cmp rcx, r14
je 0x100046bde
test byte [rcx + 0x1c], dil
je 0x100046bde
cmp byte [rcx + 0x19], 2
jb 0x100046bde
mov rcx, qword [rcx + 0x10]
lea edx, [rdi + 0x62]
lea r8, [0x100003cb8]
mov r9, r12
mov dword [rsp + 0x20], eax
call fcn.10001ddb0
jmp 0x100046bde
mov sil, byte [rsp + 0x34]
mov rax, qword [rsp + 0x40]
mov byte [rax], sil
mov edi, 1
jmp 0x100046bde
mov ebx, 0x8078012f
lea r14, [0x1001653b8]
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ole32.dll_CoTaskMemFree]
mov rcx, qword [0x1001653b8]
cmp rcx, r14
je 0x100046c16
test byte [rcx + 0x1c], dil
je 0x100046c16
cmp byte [rcx + 0x19], 4
jb 0x100046c16
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cb8]
mov edx, 0x64
call fcn.10001c854
mov eax, ebx
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.10014e600
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret