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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x30
mov ebx, dword [ebp + 8]
mov eax, dword [0x6401e4]
xor eax, ebp
mov dword [esp + 0x28], eax
mov esi, 0x1126
push ebx
call fcn.004a4b74
add esp, 4
test al, al
jne 0x4a5090
xor eax, eax
lea esi, [esp + 0x10]
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov ecx, ebx
mov edx, esi
call fcn.004a50a5
mov ebx, eax
mov ecx, esi
call fcn.004a5162
mov bh, al
mov ecx, esi
mov edx, esi
call fcn.004a519e
test bl, bl
jne 0x4a4ec9
test bh, bh
jne 0x4a4ec9
test al, al
jne 0x4a4ec9
mov edi, 0x7b
jmp 0x4a507c
test bh, bh
mov byte [esp + 3], bh
je 0x4a4eda
lea esi, [esp + 0x10]
jmp 0x4a4f9c
lea edi, [esp + 4]
mov ecx, edi
push 0x5cfbe0
call fcn.0041be7c
lea ecx, [esp + 0x14]
movzx eax, byte [ecx + 7]
test al, al
cmovs eax, dword [ecx]
lea esi, [esp + 0x10]
mov edx, dword [esi]
cmovns edx, esi
mov ecx, edi
push eax
push edx
call fcn.00479328
mov edi, dword [eax]
mov ecx, dword [eax + 4]
mov edx, dword [eax + 7]
mov dword [esp + 0x23], edx
mov dword [esp + 0x20], ecx
mov bl, byte [eax + 0xb]
xor ecx, ecx
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
cmp byte [esi + 0xb], 0
js 0x4a4f3a
mov word [esp + 0x10], 0
mov byte [esp + 0x1b], 0
jmp 0x4a4f66
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x14], 0
cmp byte [esp + 0x1b], 0
jns 0x4a4f66
push dword [esp + 0x10]
call fcn.00596316
add esp, 4
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x23]
lea edx, [esp + 0x14]
mov dword [edx + 3], ecx
mov dword [edx], eax
mov byte [esp + 0x1b], bl
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x23], eax
cmp byte [esp + 0xf], 0
jns 0x4a4f9c
push dword [esp + 4]
call fcn.00596316
add esp, 4
mov bl, 1
xor eax, eax
dec eax
lea edi, [esp + 0x10]
lea ecx, [esp + 4]
lea edx, [esp + 0x1c]
push edx
push eax
push 0
push edi
call fcn.00478ee8
cmp byte [esi + 0xb], 0
js 0x4a4fca
mov word [esp + 0x10], 0
mov byte [esi + 0xb], 0
jmp 0x4a4ff5
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x14], 0
cmp byte [esi + 0xb], 0
jns 0x4a4ff5
push dword [esp + 0x10]
call fcn.00596316
add esp, 4
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], eax
movsd xmm0, qword [esp + 4]
movsd qword [esp + 0x10], xmm0
cmp byte [esi + 0xb], 0
mov eax, esi
jns 0x4a5015
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4a5029
bt eax, 0xa
jae 0x4a503c
jmp 0x4a5059
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x4a503c
cmp eax, 0x7b
jne 0x4a505d
mov ecx, edi
push 0xffffffffffffffff
push 0x5c
call fcn.00479b10
xor ebx, ebx
cmp eax, 2
ja 0x4a4fa5
mov edi, 0x1126
jmp 0x4a507c
xor edi, edi
jmp 0x4a507c
mov cl, byte [esp + 3]
or cl, bl
mov edi, eax
test cl, 1
jne 0x4a507c
lea ecx, [esp + 0x10]
push 0xffffffffffffffff
push 0x5c
call fcn.00479b10
cmp eax, 3
je 0x4a5052
cmp byte [esi + 0xb], 0
jns 0x4a508e
push dword [esp + 0x10]
call fcn.00596316
add esp, 4
mov esi, edi
mov ecx, dword [esp + 0x28]
xor ecx, ebp
call fcn.00596351
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret