Function at 0x10004650c
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 0x1000465a6
test byte [rcx + 0x1c], al
je 0x1000465a6
cmp byte [rcx + 0x19], 4
jb 0x1000465a6
mov rcx, qword [rcx + 0x10]
lea edx, [rsi + 0x56]
lea r8, [0x100003cf8]
call fcn.10001c7b8
lea eax, [rsi + 1]
lea rdx, [0x1001653b8]
mov byte [rbx], sil
mov rcx, qword [0x1001653b8]
cmp rcx, rdx
je 0x100046621
test byte [rcx + 0x1c], al
je 0x1000465eb
cmp byte [rcx + 0x19], 4
jb 0x1000465eb
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cf8]
mov edx, 0x57
mov r9, r12
call fcn.10001da24
mov rcx, qword [0x1001653b8]
mov eax, 1
lea rdx, [0x1001653b8]
cmp rcx, rdx
je 0x100046621
test byte [rcx + 0x1c], al
je 0x100046621
cmp byte [rcx + 0x19], 4
jb 0x100046621
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cf8]
mov edx, 0x58
mov r9d, edi
call fcn.10001c7dc
mov rcx, qword [0x1001653b8]
lea rdx, [0x1001653b8]
cmp r12, rsi
jne 0x100046665
mov ebx, 0x80070057
mov edi, 1
cmp rcx, rdx
je 0x100046b87
test byte [rcx + 0x1c], dil
je 0x100046b87
cmp byte [rcx + 0x19], 2
jb 0x100046b87
lea edx, [rdi + 0x58]
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cf8]
call fcn.10001c7b8
jmp 0x100046b87
cmp edi, 2
je 0x1000466ba
cmp edi, 3
jle 0x10004668e
cmp edi, 6
jg 0x10004668e
mov edi, 1
mov r14b, dil
mov r15b, dil
mov byte [rsp + 0x33], dil
mov r13b, dil
mov byte [rsp + 0x32], dil
jmp 0x1000466c4
mov ebx, 0x80070057
mov edi, 1
cmp rcx, rdx
je 0x100046b87
test byte [rcx + 0x1c], dil
je 0x100046b87
cmp byte [rcx + 0x19], 2
jb 0x100046b87
lea edx, [rdi + 0x59]
jmp 0x100046650
mov edi, 1
mov byte [rsp + 0x30], dil
lea r8, [rsp + 0x31]
xor edx, edx
mov rcx, r12
call fcn.100099cf4
cmp eax, esi
mov ebx, eax
jge 0x10004672f
cmp eax, 0x8078011a
je 0x1000467f7
cmp eax, 0x8078006f
je 0x1000467f7
cmp eax, 0x80780071
je 0x1000467f7
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x100046b8e
test byte [rcx + 0x1c], dil
je 0x100046b8e
cmp byte [rcx + 0x19], 2
jb 0x100046b8e
mov edx, 0x5b
jmp 0x100046a13
cmp byte [rsp + 0x31], sil
jne 0x1000467f7
lea rdx, [rsp + 0x50]
mov r8d, 0x104
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_GetVolumePathNameW]
cmp eax, esi
jne 0x1000467aa
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x100046797
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100046797
cmp byte [rcx + 0x19], 2
jb 0x100046797
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5b]
lea r8, [0x100003cf8]
mov r9, r12
mov dword [rsp + 0x20], edi
call fcn.10001daa4
movzx ebx, di
or ebx, 0x80070000
cmp edi, esi
cmovle ebx, edi
jmp 0x100046b7b
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_GetDriveTypeW]
sub eax, 2
je 0x100046b82
sub eax, edi
je 0x100046801
sub eax, edi
je 0x1000467df
lea r14, [0x1001653b8]
cmp eax, edi
jne 0x10004685d
mov ebx, 0x80780082
jmp 0x100046b8e
lea r8, [0x100004638]
lea rcx, [0x100005eb0]
mov edx, 0x6f3
call fcn.100099ad8
mov ebx, 0x80780083
jmp 0x100046b87
cmp r13b, sil
je 0x1000468c5
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 0x100046867
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x10004685d
test byte [rcx + 0x1c], dil
je 0x10004685d
cmp byte [rcx + 0x19], 2
jb 0x10004685d
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0x5d]
lea r8, [0x100003cf8]
mov r9, r12
call fcn.10001da24
mov ebx, 0x80780057
jmp 0x100046b8e
lea rdx, [rsp + 0x31]
mov rcx, r12
mov byte [rsp + 0x31], sil
call fcn.10010b0f8
cmp eax, esi
mov ebx, eax
jge 0x1000468b4
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x100046b8e
test byte [rcx + 0x1c], dil
je 0x100046b8e
cmp byte [rcx + 0x19], 2
jb 0x100046b8e
mov edx, 0x5e
jmp 0x100046a13
cmp byte [rsp + 0x31], sil
jne 0x1000468c5
mov ebx, 0x80780057
jmp 0x100046b87
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 0x10004690f
cmp dil, sil
jne 0x10004690f
mov ebx, 0x80780057
mov rdi, r13
jmp 0x100046b87
cmp r14b, sil
je 0x1000469c3
lea rdx, [rsp + 0x38]
mov rcx, r12
mov byte [rsp + 0x30], sil
call fcn.10009fd60
cmp eax, esi
mov ebx, eax
jge 0x100046968
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
mov rdi, r13
cmp rcx, r14
je 0x100046b8e
test byte [rcx + 0x1c], dil
je 0x100046b8e
cmp byte [rcx + 0x19], 2
jb 0x100046b8e
mov edx, 0x5f
jmp 0x100046a13
mov rcx, qword [rsp + 0x38]
lea rdx, [rsp + 0x30]
call fcn.100135894
cmp eax, esi
mov ebx, eax
jge 0x1000469b2
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
mov rdi, r13
cmp rcx, r14
je 0x100046b8e
test byte [rcx + 0x1c], dil
je 0x100046b8e
cmp byte [rcx + 0x19], 2
jb 0x100046b8e
mov edx, 0x60
jmp 0x100046a13
cmp byte [rsp + 0x30], sil
jne 0x1000469c3
mov ebx, 0x80780084
jmp 0x100046907
cmp r15b, sil
je 0x100046a2c
lea rdx, [rsp + 0x30]
mov rcx, r12
mov byte [rsp + 0x30], sil
call fcn.10010b1cc
cmp eax, esi
mov ebx, eax
jge 0x100046a1b
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
mov rdi, r13
cmp rcx, r14
je 0x100046b8e
test byte [rcx + 0x1c], dil
je 0x100046b8e
cmp byte [rcx + 0x19], 2
jb 0x100046b8e
mov edx, 0x61
mov r9d, eax
jmp 0x100046af3
cmp byte [rsp + 0x30], sil
je 0x100046a2c
mov ebx, 0x80780085
jmp 0x100046907
cmp byte [rsp + 0x33], sil
je 0x100046b14
cmp dil, sil
jne 0x100046b14
mov rcx, r12
mov ebx, esi
mov dil, sil
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x100046aaf
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r13d, eax
mov rcx, qword [0x1001653b8]
lea r14, [0x1001653b8]
cmp rcx, r14
je 0x100046a9c
mov eax, 1
test byte [rcx + 0x1c], al
je 0x100046a9c
cmp byte [rcx + 0x19], 2
jb 0x100046a9c
mov rcx, qword [rcx + 0x10]
lea edx, [rax + 0xf]
lea r8, [0x100002fa0]
mov r9d, r13d
call fcn.10001c7dc
mov rcx, qword [0x1001653b8]
movzx ebx, r13w
or ebx, 0x80070000
cmp r13d, esi
cmovle ebx, r13d
jmp 0x100046ac7
mov rcx, qword [0x1001653b8]
test al, 4
movzx edi, dil
cmovne edi, r13d
lea r14, [0x1001653b8]
cmp ebx, esi
jge 0x100046b08
mov edi, 1
cmp rcx, r14
je 0x100046b8e
test byte [rcx + 0x1c], dil
je 0x100046b8e
cmp byte [rcx + 0x19], 2
jb 0x100046b8e
lea edx, [rdi + 0x61]
mov r9d, ebx
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cf8]
call fcn.10001c7dc
jmp 0x100046b8e
cmp dil, sil
je 0x100046b1b
mov ebx, 0x80780086
jmp 0x100046b7b
lea r14, [0x1001653b8]
cmp byte [rsp + 0x32], sil
je 0x100046b73
lea rdx, [rsp + 0x34]
mov rcx, r12
call fcn.10010b264
cmp eax, esi
mov ebx, eax
jge 0x100046b6e
mov rcx, qword [0x1001653b8]
mov edi, 1
cmp rcx, r14
je 0x100046b8e
test byte [rcx + 0x1c], dil
je 0x100046b8e
cmp byte [rcx + 0x19], 2
jb 0x100046b8e
mov rcx, qword [rcx + 0x10]
lea edx, [rdi + 0x62]
lea r8, [0x100003cf8]
mov r9, r12
mov dword [rsp + 0x20], eax
call fcn.10001daa4
jmp 0x100046b8e
mov sil, byte [rsp + 0x34]
mov rax, qword [rsp + 0x40]
mov byte [rax], sil
mov edi, 1
jmp 0x100046b8e
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 0x100046bc6
test byte [rcx + 0x1c], dil
je 0x100046bc6
cmp byte [rcx + 0x19], 4
jb 0x100046bc6
mov rcx, qword [rcx + 0x10]
lea r8, [0x100003cf8]
mov edx, 0x64
call fcn.10001c7b8
mov eax, ebx
mov rcx, qword [rsp + 0x260]
xor rcx, rsp
call fcn.10014e480
add rsp, 0x270
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret