Function at 0x4e0838
Capabilities:
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
mov ecx, 4
push 0
push 0
dec ecx
jne 0x4e0840
push ecx
push ebx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4e0c6d
push dword fs:[eax]
mov dword fs:[eax], esp
test dl, dl
je 0x4e0867
mov byte [ebp - 5], 1
jmp 0x4e0c52
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xac0]
call fcn.004dddcc
xor eax, eax
push ebp
push 0x4e0c4b
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 6], 1
mov eax, dword [ebp - 4]
cmp word [eax + 0x8fa], 0
je 0x4e0998
mov eax, dword [ebp - 4]
call fcn.004de7ec
test al, al
je 0x4e096e
mov eax, dword [ebp - 4]
cmp word [eax + 0x982], 0
je 0x4e0942
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xa38]
call fcn.00404954
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xa38]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x984]
call dword [ebx + 0x980]
cmp dword [ebp - 0xc], 0
je 0x4e0942
lea edx, [ebp - 0x10]
mov eax, dword [ebp - 0xc]
call fcn.0040acdc
mov eax, dword [ebp - 0x10]
call fcn.004e31fc
test al, al
jne 0x4e0932
lea edx, [ebp - 0x14]
mov eax, dword [ebp - 0xc]
call fcn.0040ae5c
mov eax, dword [ebp - 0x14]
push eax
lea edx, [ebp - 0x18]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa38]
call fcn.0040acdc
mov edx, dword [ebp - 0x18]
lea eax, [ebp - 0xc]
pop ecx
call fcn.00404bb0
mov eax, dword [ebp - 4]
add eax, 0xa38
mov edx, dword [ebp - 0xc]
call fcn.00404910
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa18]
inc eax
push eax
lea eax, [ebp - 6]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xa38]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x8fc]
call dword [ebx + 0x8f8]
jmp 0x4e0998
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa18]
inc eax
push eax
lea eax, [ebp - 6]
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xb98]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0x8fc]
call dword [ebx + 0x8f8]
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
jne 0x4e09aa
cmp byte [ebp - 6], 0
jne 0x4e09b8
mov byte [ebp - 5], 0
call fcn.004042a8
jmp 0x4e0c52
mov eax, dword [ebp - 4]
call fcn.004de7ec
test al, al
jne 0x4e09db
mov byte [ebp - 5], 1
mov eax, dword [ebp - 4]
inc dword [eax + 0xa18]
call fcn.004042a8
jmp 0x4e0c52
mov eax, dword [ebp - 4]
cmp byte [eax + 0x8d5], 0
jne 0x4e0a0e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x9d4], 0
sete byte [ebp - 5]
cmp byte [ebp - 5], 0
je 0x4e0a04
mov eax, dword [ebp - 4]
inc dword [eax + 0xa18]
call fcn.004042a8
jmp 0x4e0c52
mov eax, dword [ebp - 4]
mov byte [eax + 0x9d4], 0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa38]
call fcn.0040a8b0
test al, al
je 0x4e0bf3
mov eax, dword [ebp - 4]
cmp word [eax + 0xb8a], 0
je 0x4e0bc9
lea eax, [ebp - 0xc]
call fcn.004048bc
lea eax, [ebp - 0xc]
push eax
mov eax, dword [ebp - 4]
add eax, 0x9d4
push eax
mov eax, dword [ebp - 4]
mov ecx, dword [eax + 0xa38]
mov ebx, dword [ebp - 4]
mov edx, dword [ebp - 4]
mov eax, dword [ebx + 0xb8c]
call dword [ebx + 0xb88]
cmp dword [ebp - 0xc], 0
jne 0x4e0a86
lea eax, [ebp - 0xc]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0xa38]
call fcn.00404954
lea edx, [ebp - 0x1c]
mov eax, dword [ebp - 0xc]
call fcn.0040acdc
mov eax, dword [ebp - 0x1c]
call fcn.004e31fc
test al, al
jne 0x4e0ac9
lea edx, [ebp - 0x20]
mov eax, dword [ebp - 0xc]
call fcn.0040ae5c
mov eax, dword [ebp - 0x20]
push eax
lea edx, [ebp - 0x24]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa38]
call fcn.0040acdc
mov edx, dword [ebp - 0x24]
lea eax, [ebp - 0xc]
pop ecx
call fcn.00404bb0
mov eax, dword [ebp - 4]
cmp byte [eax + 0x9d4], 0
jne 0x4e0b00
cmp dword [ebp - 0xc], 0
je 0x4e0b00
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa38]
mov edx, dword [ebp - 0xc]
call fcn.00409fb8
test eax, eax
je 0x4e0b2e
mov eax, dword [ebp - 4]
add eax, 0xa38
mov edx, dword [ebp - 0xc]
call fcn.00404910
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
jne 0x4e0b2e
mov eax, dword [ebp - 4]
cmp byte [eax + 0x9d4], 1
je 0x4e0b2e
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa38]
call fcn.004e2e14
test al, al
jne 0x4e0a3f
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
jne 0x4e0bf3
mov eax, dword [ebp - 4]
cmp byte [eax + 0x9d4], 1
je 0x4e0bf3
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa38]
call fcn.00404d28
push eax
call sub.kernel32.dll_GetFileAttributesA
mov ebx, eax
call sub.kernel32.dll_GetLastError_1
test eax, eax
jne 0x4e0bf3
test ebx, 1
jle 0x4e0bf3
test bl, 4
jne 0x4e0b9e
test bl, 0x10
jne 0x4e0b9e
push 0x80
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xa38]
call fcn.00404d28
push eax
call sub.kernel32.dll_SetFileAttributesA
jmp 0x4e0bf3
push 0x4e0c84
push 0x6230
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xa38]
xor ecx, ecx
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x6c]
mov byte [ebp - 5], 0
call fcn.004042a8
jmp 0x4e0c52
push 0x4e0c84
push 0x62b6
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0xa38]
mov ecx, 0x4e0c90
mov eax, dword [ebp - 4]
mov ebx, dword [eax]
call dword [ebx + 0x6c]
mov eax, dword [ebp - 4]
mov byte [eax + 0x9d4], 1
mov eax, dword [ebp - 4]
mov edx, dword [eax]
call dword [edx + 0x3c]
test al, al
jne 0x4e0c17
mov eax, dword [ebp - 4]
cmp byte [eax + 0x9d4], 0
jne 0x4e0c17
mov eax, dword [ebp - 4]
cmp dword [eax + 0xa38], 0
jne 0x4e0c1b
xor eax, eax
jmp 0x4e0c1d
mov al, 1
mov byte [ebp - 5], al
cmp byte [ebp - 5], 0
je 0x4e0c2f
mov eax, dword [ebp - 4]
inc dword [eax + 0xa18]
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e0c52
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0xac0]
call fcn.004ddde0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4e0c74
lea eax, [ebp - 0x24]
mov edx, 7
call fcn.004048e0
ret