Function at 0x4a5e58
Capabilities:
Get file attributes

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
mov ebx, eax
mov esi, dword [0x4a8b88]
xor eax, eax
push ebp
push 0x4a60bb
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 0x344]
call fcn.0046c8c0
test eax, eax
je 0x4a6098
lea ecx, [ebp - 0xc]
mov edx, 0x4a60d0
mov eax, 0x4a60ec
call fcn.00488ad0
cmp dword [ebp - 0xc], 0
jne 0x4a5eb0
mov byte [ebx + 0x384], 1
jmp 0x4a5ecc
mov eax, dword [ebp - 0xc]
call fcn.00408958
test eax, eax
jne 0x4a5ec5
mov byte [ebx + 0x384], 1
jmp 0x4a5ecc
mov byte [ebx + 0x384], 0
lea edx, [ebp - 4]
mov eax, dword [ebx + 0x344]
call fcn.004859c0
mov eax, dword [ebp - 4]
call fcn.00404894
push eax
call sub.kernel32.dll_GetFileAttributesA
mov edx, eax
and edx, 4
cmp edx, 4
je 0x4a5efe
and eax, 1
cmp eax, 1
jne 0x4a5f7f
mov eax, dword [ebp - 4]
call fcn.00404894
mov esi, eax
mov eax, esi
call fcn.004889b8
test al, al
je 0x4a5f45
lea eax, [ebp - 0x10]
push eax
push esi
call sub.kernel32.dll_lstrlenA_1
mov ecx, eax
sub ecx, 4
mov edx, 1
mov eax, dword [ebp - 4]
call fcn.004048f4
mov edx, dword [ebp - 0x10]
mov eax, dword [ebx + 0x30c]
mov eax, dword [eax + 0x218]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x4a5f59
mov eax, dword [ebx + 0x30c]
mov eax, dword [eax + 0x218]
mov edx, dword [ebp - 4]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x14]
mov eax, dword [0x4a8e5c]
call fcn.00406620
mov edx, dword [ebp - 0x14]
mov eax, dword [ebx + 0x30c]
mov eax, dword [eax + 0x218]
mov ecx, dword [eax]
call dword [ecx + 0x38]
jmp 0x4a6098
lea eax, [ebx + 0x354]
push eax
call sub.kernel32.dll_GetSystemTime
lea eax, [ebx + 0x364]
push eax
lea eax, [ebx + 0x354]
push eax
call sub.kernel32.dll_SystemTimeToFileTime
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [esi]
mov byte [eax + 0x30c], 1
mov eax, dword [esi]
mov eax, dword [eax + 0x2f4]
mov dl, 1
call fcn.004411a0
mov eax, dword [esi]
mov eax, dword [eax + 0x2fc]
mov dl, 1
call fcn.004411a0
mov eax, dword [esi]
mov eax, dword [eax + 0x2f8]
mov edx, dword [eax]
call dword [edx + 0xdc]
mov eax, dword [esi]
mov eax, dword [eax + 0x2fc]
mov edx, dword [eax]
call dword [edx + 0xdc]
mov eax, dword [esi]
mov edx, dword [eax]
call dword [edx + 0xe8]
dec eax
jne 0x4a6098
push 2
mov eax, dword [ebp - 4]
call fcn.00404894
mov edx, eax
lea ecx, [ebp - 8]
mov eax, ebx
call fcn.004a4a7c
mov eax, dword [ebx + 0x30c]
mov eax, dword [eax + 0x218]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 8]
call fcn.004088f4
lea eax, [ebp - 0x18]
push eax
lea edx, [ebp - 0x1c]
mov eax, dword [0x4a8ef0]
call fcn.00406620
mov edx, dword [ebp - 0x1c]
pop eax
call fcn.004046a4
mov edx, dword [ebp - 0x18]
mov eax, dword [ebx + 0x30c]
mov eax, dword [eax + 0x218]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x30c]
mov eax, dword [eax + 0x218]
xor edx, edx
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov esi, dword [ebx + 0x30c]
mov eax, dword [esi + 0x218]
mov edx, dword [eax]
call dword [edx + 0x14]
mov edx, eax
sub edx, 7
mov eax, esi
call fcn.0043513c
mov eax, dword [ebx + 0x340]
call fcn.004882f4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a60c2
lea eax, [ebp - 0x1c]
mov edx, 5
call fcn.00404408
lea eax, [ebp - 4]
call fcn.004043e4
ret