Function at 0x4a610c
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 0x4a636f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 0x344]
call fcn.0046c8c0
test eax, eax
je 0x4a634c
lea ecx, [ebp - 0xc]
mov edx, 0x4a6384
mov eax, 0x4a63a0
call fcn.00488ad0
cmp dword [ebp - 0xc], 0
jne 0x4a6164
mov byte [ebx + 0x384], 1
jmp 0x4a6180
mov eax, dword [ebp - 0xc]
call fcn.00408958
test eax, eax
jne 0x4a6179
mov byte [ebx + 0x384], 1
jmp 0x4a6180
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 0x4a61b2
and eax, 1
cmp eax, 1
jne 0x4a6233
mov eax, dword [ebp - 4]
call fcn.00404894
mov esi, eax
mov eax, esi
call fcn.004889b8
test al, al
je 0x4a61f9
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 0x4a620d
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 [0x4a8de0]
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 0x4a634c
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], 0
mov eax, dword [esi]
mov eax, dword [eax + 0x2f4]
xor edx, edx
call fcn.004411a0
mov eax, dword [esi]
mov eax, dword [eax + 0x2fc]
xor edx, edx
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 0x4a634c
push 2
mov eax, dword [ebp - 4]
call fcn.00404894
mov edx, eax
lea ecx, [ebp - 8]
mov eax, ebx
call fcn.004a4f00
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 [0x4a89f4]
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 0x4a6376
lea eax, [ebp - 0x1c]
mov edx, 5
call fcn.00404408
lea eax, [ebp - 4]
call fcn.004043e4
ret