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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
xor eax, eax
mov ebx, ecx
push esi
push edi
cmp dword [ebp + 8], eax
je 0x4a0921
mov eax, dword [ebx]
push dword [ebp + 8]
mov esi, dword [eax + 0x30]
mov ecx, esi
call dword [0x5035f0]
mov ecx, ebx
call esi
mov edi, eax
test edi, edi
jns 0x4a09cb
mov eax, dword [section..data]
cmp eax, section..data
je 0x4a0b10
test byte [eax + 0x1c], 8
je 0x4a0b10
cmp byte [eax + 0x19], 2
jb 0x4a0b10
call fcn.0042386b
push edi
push 0x4170d8
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x10
jmp 0x4a09bb
cmp word [ebx + 0x44], ax
jne 0x4a0967
mov eax, dword [section..data]
cmp eax, section..data
je 0x4a095d
test byte [eax + 0x1c], 1
je 0x4a095d
cmp byte [eax + 0x19], 2
jb 0x4a095d
call fcn.0042386b
push eax
mov eax, dword [section..data]
mov edx, 0x417190
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x11
pop ecx
call fcn.004238e7
mov edi, 0x8007007b
jmp 0x4a0b10
mov eax, dword [ebx]
mov esi, dword [eax + 0x20]
mov ecx, esi
call dword [0x5035f0]
mov ecx, ebx
call esi
mov edi, eax
test edi, edi
jns 0x4a09cb
mov eax, dword [section..data]
cmp eax, section..data
je 0x4a0b10
test byte [eax + 0x1c], 8
je 0x4a0b10
cmp byte [eax + 0x19], 2
jb 0x4a0b10
call fcn.0042386b
push edi
push 0x417108
push eax
mov eax, dword [section..data]
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x12
mov edx, 0x417190
pop ecx
call fcn.0042371b
jmp 0x4a0b10
cmp dword [ebx + 0x34], 0
lea esi, [ebx + 0x44]
jne 0x4a0a2f
push 0x800
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebx + 0x34], eax
test eax, eax
jne 0x4a0a28
mov eax, dword [section..data]
cmp eax, section..data
je 0x4a0a1e
test byte [eax + 0x1c], 1
je 0x4a0a1e
cmp byte [eax + 0x19], 2
jb 0x4a0a1e
call fcn.0042386b
push eax
mov eax, dword [section..data]
mov edx, 0x417190
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x13
pop ecx
call fcn.004238e7
mov edi, 0x8007000e
jmp 0x4a0b10
mov dword [ebx + 0x38], 0x800
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x4a0ab9
mov eax, dword [section..data]
cmp eax, section..data
je 0x4a0ab4
test byte [eax + 0x1c], 1
je 0x4a0a82
cmp byte [eax + 0x19], 2
jb 0x4a0a82
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
mov edx, 0x417190
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x14
pop ecx
call fcn.00421fda
mov eax, dword [section..data]
lea esi, [ebx + 0x44]
cmp eax, section..data
je 0x4a0ab4
test byte [eax + 0x1c], 1
je 0x4a0ab4
cmp byte [eax + 0x19], 3
jb 0x4a0ab4
call fcn.0042386b
push esi
push eax
mov eax, dword [section..data]
mov edx, 0x417190
push dword [eax + 0x14]
push dword [eax + 0x10]
push 0x15
pop ecx
call fcn.004330da
mov eax, 0x80
push 0
push eax
xor eax, eax
cmp dword [ebp + 0x10], eax
push 2
setne al
push 0
lea eax, [eax*2 + 1]
push eax
push 0x40000000
push esi
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebx + 0x30], eax
cmp eax, 0xffffffff
jne 0x4a0afb
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edi, eax
test edi, edi
jle 0x4a0b10
movzx edi, di
or edi, 0x80070000
jmp 0x4a0b10
mov eax, dword [ebp + 0xc]
xor ecx, ecx
inc ecx
mov dword [ebx + 0x250], eax
mov dword [ebx + 0x2c], ecx
mov dword [ebx + 0x254], ecx
mov eax, edi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc