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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x6fcba6
mov eax, dword fs:[0]
push eax
mov eax, 0x93a0
call fcn.006b59e0
mov eax, dword [0x7e6410]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, edx
cmp edi, ecx
je 0x4a95dd
sub edx, ecx
lea ebx, [ebx]
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4a95d0
cmp byte [ebp + 8], 0
mov ecx, edi
je 0x4a974c
mov ebx, 0x31
call fcn.004a9170
mov esi, eax
cmp esi, edi
jbe 0x4a9627
lea esp, [esp]
movsx eax, byte [esi]
push eax
call fcn.006b4c2f
add esp, 4
test eax, eax
je 0x4a9619
mov byte [esi], bl
mov ebx, 0x30
jmp 0x4a9622
cmp ebx, 0x30
je 0x4a9744
dec esi
cmp esi, edi
ja 0x4a9600
mov ebx, edi
cmp dword [0x7e8a20], 0xffffffff
jne 0x4a965f
lea eax, [ebp - 0x4ac]
mov dword [ebp - 0x4ac], 0x94
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [ebp - 0x49c]
mov dword [0x7e8a20], eax
mov eax, dword [ebp - 0x4a8]
mov dword [0x80abac], eax
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
setne al
test al, al
jne 0x4a98cb
lea edx, [ebp - 0x414]
mov ecx, edi
sub edx, edi
mov edi, edi
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edx + ecx - 1], al
test al, al
jne 0x4a9680
mov edx, 0x78a150
lea ecx, [ebp - 0x414]
call fcn.004a8f70
xor eax, eax
mov byte [ebp - 0x10b4], 0
mov word [ebp - 0xcb4], ax
mov dword [ebp - 0x4b4], 1
mov dword [ebp - 0x4b0], 0xffffffff
mov dword [ebp - 4], eax
xor ecx, ecx
mov al, byte [ebp + ecx - 0x414]
lea ecx, [ecx + 1]
mov byte [ebp + ecx - 0x10b5], al
test al, al
jne 0x4a96c6
cmp word [ebp - 0xcb4], 0
jne 0x4a9704
push 0x10000000
lea eax, [ebp - 0xcb4]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x414]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov dword [ebp - 0x4b4], 1
mov dword [ebp - 0x1564], 0
mov dword [ebp - 0x1534], 0
mov dword [ebp - 0x1504], 0
lea esp, [esp]
cmp byte [ebp - 0x10b4], 0
mov byte [ebp - 0x10bc], 0
jne 0x4a9764
xor al, al
jmp 0x4a9776
lea ebx, [esi + 1]
jmp 0x4a9629
mov edx, 0x78b368
call fcn.004a8f70
mov ecx, edi
call fcn.004a9010
mov ebx, eax
jmp 0x4a9629
lea eax, [ebp - 0x217c]
push eax
lea ecx, [ebp - 0x10b4]
call fcn.004ad280
test al, al
je 0x4a98b9
push 0
lea ecx, [ebp - 0x93a4]
call fcn.004a6ac0
push 0
push 0
lea eax, [ebp - 0x1d7c]
mov byte [ebp - 4], 1
push eax
lea eax, [ebp - 0x217c]
push eax
lea ecx, [ebp - 0x93a4]
call fcn.004a56b0
test al, al
je 0x4a97ce
push 1
lea ecx, [ebp - 0x93a4]
call fcn.004a6db0
test al, al
je 0x4a97ce
cmp byte [ebp - 0x2da6], 0
je 0x4a9897
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x3b7c]
test eax, eax
je 0x4a97e5
push eax
call fcn.006b31f8
add esp, 4
mov eax, dword [ebp - 0x48bc]
test eax, eax
je 0x4a97f8
push eax
call fcn.006b31f8
add esp, 4
push 0x2aa0
lea eax, [ebp - 0x800c]
push 0
push eax
call fcn.006b47d0
mov eax, dword [ebp - 0x5f3c]
add esp, 0xc
test eax, eax
je 0x4a9821
push eax
call fcn.006b31f8
add esp, 4
cmp dword [ebp - 0x93a0], 0xffffffff
mov dword [ebp - method.File.virtual_0], vtable.File.0
je 0x4a9730
cmp byte [ebp - 0x9394], 0
jne 0x4a9730
cmp byte [ebp - 0x9392], 0
je 0x4a9887
cmp dword [ebp - 0x9398], 0
jne 0x4a9730
cmp byte [ebp - 0x9391], 0
je 0x4a9730
lea ecx, [ebp - 0x93a4]
call fcn.004a5a60
lea eax, [ebp - 0x938d]
push eax
call fcn.006c036d
add esp, 4
jmp 0x4a9730
lea ecx, [ebp - 0x93a4]
call fcn.004a5a60
jmp 0x4a9730
lea ecx, [ebp - 0x217c]
mov eax, ecx
sub edi, eax
mov al, byte [ecx]
lea ecx, [ecx + 1]
mov byte [edi + ecx - 1], al
test al, al
jne 0x4a98a1
lea ecx, [ebp - 0x93a4]
call fcn.0048de80
mov eax, dword [ebp - 0x4b0]
cmp eax, 0xffffffff
je 0x4a98cb
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.006b3266
mov esp, ebp
pop ebp
ret