Function at 0x468bb4
Capabilities:
Check if file exists
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 3
add esp, 0xfffff004
push eax
dec eax
jne 0x468bbd
mov eax, dword [ebp - 4]
add esp, 0xfffffd84
push ebx
push esi
push edi
mov edi, ecx
mov esi, edx
mov ebx, eax
push 0
push 0
push 0
mov eax, 0x4ba5d4
xor ecx, ecx
mov edx, ebx
call fcn.0045d344
test al, al
jne 0x468bfb
cmp byte [ebp + 0x14], 0
jne 0x468e78
push 1
push 0
mov eax, 0x4ba5d4
mov ecx, esi
mov edx, ebx
call fcn.0045bd3c
cmp eax, 1
je 0x468c61
test eax, eax
jne 0x468e78
cmp dword [ebp + 8], 1
jne 0x468e78
mov edx, 0x4a07d0
mov eax, ebx
call fcn.0040b9a4
test al, al
jne 0x468c48
mov edx, 0x4a07d4
mov eax, ebx
call fcn.0040b9a4
test al, al
je 0x468e78
mov eax, 0x1fc
call fcn.004116e8
push eax
push ebx
call fcn.00444910
add esp, 8
jmp 0x468e78
cmp byte [ebp + 0xc], 0
je 0x468c81
lea edx, [ebp - 0x9c]
mov eax, 0x4ba5d4
call fcn.0045d2a4
cmp byte [ebp - 6], 0
jne 0x468e78
cmp byte [ebp + 0x10], 0
je 0x468d0d
mov eax, 0x4ba5d4
call fcn.0045d29c
test eax, eax
je 0x468d0d
push 0
push 0
push 0
lea ecx, [ebp - 0x49c]
mov eax, 0x4ba5d4
mov edx, ebx
call fcn.0045d344
lea edx, [ebp - 0x49c]
mov eax, ebx
call fcn.0040e624
test eax, eax
je 0x468cd7
lea ecx, [ebp - 0x49c]
push ecx
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x468e78
mov edx, 0x4a07d8
lea eax, [ebp - 0x49c]
call fcn.0040b88c
lea edx, [ebp - 0x49c]
mov eax, ebx
call fcn.0040e624
test eax, eax
je 0x468d0d
lea ecx, [ebp - 0x49c]
push ecx
call sub.KERNEL32.DLL_GetFileAttributesA
cmp eax, 0xffffffff
jne 0x468e78
push 0xc30
push 0
lea eax, [ebp - 0x10cc]
push eax
call fcn.0048d768
add esp, 0xc
lea edx, [ebp - 0x10cc]
mov eax, ebx
call fcn.0040a568
call fcn.0040f820
test eax, eax
je 0x468d77
test esi, esi
je 0x468d43
cmp word [esi], 0
jne 0x468d77
lea edx, [ebp - 0x20cc]
push edx
push 0x800
call sub.KERNEL32.DLL_GetCurrentDirectoryW
lea eax, [ebp - 0x20cc]
call fcn.0040e7e8
test al, al
jne 0x468d77
lea esi, [ebp - 0x18cc]
mov ecx, 0x10000000
mov edx, esi
mov eax, ebx
call fcn.0040f898
mov eax, esi
call fcn.0040e5d4
lea edx, [ebp - 0xccc]
call fcn.0040a5b0
mov ecx, dword [0x4ba7dc]
mov eax, 0x4ba5d4
mov dword [ebp - 0x4a0], ecx
call fcn.0045d29c
test eax, eax
je 0x468daa
or dword [ebp - 0x4b0], 4
test edi, edi
jne 0x468dea
lea eax, [ebp - 0x256c]
call fcn.00412dfc
lea eax, [ebp - 0x2540]
call fcn.00412dfc
lea eax, [ebp - 0x2514]
call fcn.00412dfc
push 0
lea ecx, [ebp - 0x3180]
mov edx, esi
mov eax, ebx
call fcn.00411f14
test al, al
je 0x468dea
lea edi, [ebp - 0x3180]
test edi, edi
je 0x468e1e
mov eax, dword [edi + 0xc00]
mov dword [ebp - 0x4cc], eax
mov eax, dword [edi + 0xc04]
mov dword [ebp - 0x4c8], eax
mov edx, dword [edi + 0x10a8]
mov dword [ebp - 0x4b8], edx
mov edx, dword [edi + 0x10ac]
mov dword [ebp - 0x4b4], edx
inc dword [0x4bcb6c]
mov eax, dword [ebp - 0x4cc]
mov edx, dword [ebp - 0x4c8]
add dword [0x4bcb78], eax
adc dword [0x4bcb7c], edx
lea edx, [ebp - 0x10cc]
mov eax, dword [ebp + 0x18]
call fcn.00465058
mov ebx, eax
mov eax, 0x35c
inc ebx
push ebx
call fcn.004116e8
push eax
lea edx, [ebp - 0x3280]
push edx
call fcn.004908b8
add esp, 0xc
lea edx, [ebp - 0x3280]
mov eax, 0x4b9dfc
call fcn.00445460
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x14