Function at 0x46f7f0
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push rbp
push r14
push r13
push rdi
push rsi
push rbx
sub rsp, 0x58
mov rbp, rsp
mov qword [rbp + 0x20], rcx
mov qword [rbp + 0x30], 0
mov qword [rbp + 0x48], 0
nop
lea rsi, [0x0046fcba]
xor r13, r13
mov rax, qword [0x00488c70]
mov dword [rax], 0
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
call fcn.00429fc0
mov dword [rbp + 0x2c], eax
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
call fcn.0042a170
mov rdi, rax
cmp word [rdi], 0x3a
jne 0x46f97e
mov eax, dword [rbp + 0x2c]
cmp eax, 2
jle 0x46f97e
mov word [rdi], 0
sub rdi, 2
xor rcx, rcx
call sub.kernel32.dll_SetErrorMode
mov ebx, eax
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
mov edx, 0x8000
call fcn.004706a0
mov r14d, eax
cmp r14d, 0xffffffff
je 0x46f8ad
mov ecx, r14d
call fcn.0042f030
test eax, eax
jne 0x46f957
mov ecx, r14d
call fcn.0042f110
test eax, eax
jne 0x46f957
add rdi, 2
mov word [rdi], 0x3a
mov rax, qword [0x00488e30]
cmp dword [rax], 4
jne 0x46f912
mov rax, qword [0x00488eb8]
cmp dword [rax], 0
jne 0x46f903
lea rcx, [rbp + 0x48]
mov rdx, qword [0x00488e90]
call fcn.0040eed0
mov rax, qword [rbp + 0x20]
mov rax, qword [rax]
mov qword [rbp + 0x38], rax
mov byte [rbp + 0x40], 0xa
mov rcx, qword [rbp + 0x48]
mov edx, 1
lea r8, [rbp + 0x38]
xor r9, r9
call fcn.00470130
mov rax, qword [0x00488ba0]
mov dword [rax], 1
jmp 0x46f947
lea rcx, [rbp + 0x30]
mov rdx, qword [0x00488e90]
call fcn.0040eed0
mov rax, qword [rbp + 0x20]
mov rax, qword [rax]
mov qword [rbp + 0x38], rax
mov byte [rbp + 0x40], 0xa
mov rcx, qword [rbp + 0x30]
mov edx, 1
lea r8, [rbp + 0x38]
xor r9, r9
call fcn.00470130
cmp r14d, 0xffffffff
je 0x46f977
mov ecx, r14d
call fcn.004707d0
jmp 0x46f977
mov ecx, r14d
call fcn.0042f030
test eax, eax
jne 0x46f96f
mov ecx, r14d
call fcn.0042f110
test eax, eax
je 0x46f977
mov ecx, r14d
call fcn.004707d0
mov ecx, ebx
call sub.kernel32.dll_SetErrorMode
mov ecx, 0x250
call fcn.0046ed30
mov rcx, qword [rbp + 0x20]
mov qword [rcx + 0x28], rax
movzx r14, word [rdi]
cmp r14w, 0x5c
jne 0x46f9a5
mov r13d, 1
jmp 0x46fa0f
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
mov dx, 0x5c
call fcn.00429f50
mov rdi, rax
test rdi, rdi
jne 0x46f9de
mov rax, qword [rbp + 0x20]
mov rdi, qword [rax]
mov rcx, rdi
call fcn.00429fc0
cmp eax, 2
jl 0x46f9e2
cmp word [rdi + 2], 0x3a
jne 0x46f9e2
add rdi, 4
jmp 0x46f9e2
add rdi, 2
mov rcx, rdi
lea rdx, [0x0046fcc2]
call fcn.0041dd50
test eax, eax
je 0x46fa08
mov rcx, rdi
lea rdx, [0x0046fcc6]
call fcn.0041dd50
test eax, eax
jne 0x46fa0f
mov r13d, 1
test r13d, r13d
jne 0x46fb2c
mov rax, qword [0x00488e30]
cmp dword [rax], 4
jne 0x46fae8
mov rax, qword [0x00488dc0]
cmp dword [rax], 1
jne 0x46fa85
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x46fa56
mov rax, qword [0x00488c70]
mov dword [rax], 0
jmp 0x46fa64
call sub.kernel32.dll_GetLastError_2
mov rcx, qword [0x00488c70]
mov dword [rcx], eax
cmp ebx, 0xffffffff
je 0x46fb2c
test ebx, 0x10
je 0x46fb2c
mov r13d, 1
jmp 0x46fb2c
mov rax, qword [0x00488e68]
cmp dword [rax], 1
jne 0x46fb2c
mov rax, qword [0x00488e68]
mov dword [rax], 0
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x46fac4
mov rax, qword [0x00488c70]
mov dword [rax], 0
jmp 0x46fad2
call sub.kernel32.dll_GetLastError_2
mov rcx, qword [0x00488c70]
mov dword [rcx], eax
cmp ebx, 0xffffffff
je 0x46fb2c
test ebx, 0x10
je 0x46fb2c
mov r13d, 1
jmp 0x46fb2c
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
call sub.kernel32.dll_GetFileAttributesW
mov ebx, eax
cmp ebx, 0xffffffff
je 0x46fb0a
mov rax, qword [0x00488c70]
mov dword [rax], 0
jmp 0x46fb18
call sub.kernel32.dll_GetLastError_2
mov rcx, qword [0x00488c70]
mov dword [rcx], eax
cmp ebx, 0xffffffff
je 0x46fb2c
test ebx, 0x10
je 0x46fb2c
mov r13d, 1
test r13d, r13d
je 0x46fb8b
cmp r14w, 0x5c
jne 0x46fb3f
lea rsi, [0x0046fcbc]
mov rax, qword [rbp + 0x20]
mov rcx, qword [rax]
call fcn.0046f7b0
test al, al
jne 0x46fb7d
mov ecx, dword [rbp + 0x2c]
add ecx, 5
add ecx, ecx
call fcn.0046ed30
mov rcx, rax
mov rax, qword [rbp + 0x20]
mov rdx, qword [rax]
call fcn.00429fe0
mov rcx, qword [rbp + 0x20]
mov qword [rcx], rax
mov rcx, qword [rcx]
mov rdx, rsi
call fcn.0042a000
mov rax, qword [rbp + 0x20]
mov rax, qword [rax + 0x28]
mov dword [rax], 0x10
mov eax, 1
mov dword [rbp + 0x2c], eax
xor rdi, rdi
mov rax, qword [rbp + 0x20]
mov rax, qword [rax]
jmp 0x46fbc4
cmp word [rax], 0x5c
je 0x46fbb4
cmp word [rax], 0x3a
jne 0x46fbb7
mov ecx, dword [rbp + 0x2c]
cmp ecx, 2
jne 0x46fbb7
mov rdi, rax
add rax, 2
mov ecx, dword [rbp + 0x2c]
add ecx, 1
mov dword [rbp + 0x2c], ecx
cmp word [rax], 0
jne 0x46fba0
mov rax, qword [rbp + 0x20]
mov qword [rax + 0x10], rdi
test rdi, rdi
je 0x46fbf5
cmp word [rdi], 0
je 0x46fbeb
lea rax, [rdi + 2]
mov rcx, qword [rbp + 0x20]
mov qword [rcx + 0x18], rax
jmp 0x46fc04
mov rax, qword [rbp + 0x20]
mov qword [rax + 0x18], rdi
jmp 0x46fc04
mov rcx, qword [rbp + 0x20]
mov rax, qword [rcx]
mov qword [rcx + 0x18], rax
mov rdi, qword [rcx + 0x18]
mov rcx, rdi
mov dx, 0x2a
call fcn.00429f20
test rax, rax
jne 0x46fc26
mov rcx, rdi
mov dx, 0x3f
call fcn.00429f20
test rax, rax
je 0x46fc3b
mov rax, qword [rbp + 0x20]
or dword [rax + 0x30], 8
mov rax, qword [0x00488738]
mov dword [rax], 1
mov rcx, rdi
mov dx, 0x2e
call fcn.00429f20
mov rcx, qword [rbp + 0x20]
mov qword [rcx + 0x20], rax
nop
lea rcx, [rbp + 0x30]
call fcn.0040a270
lea rcx, [rbp + 0x48]
call fcn.0040a270
lea rsp, [rbp + 0x58]
pop rbx
pop rsi
pop rdi
pop r13
pop r14
pop rbp
ret