Function at 0x4a21d5
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 eax, dword [0x63a1e8]
mov ebx, dword [ebp + 8]
mov esi, 0x1126
xor eax, ebp
mov dword [esp + 0x28], eax
push ebx
call fcn.004a1f2c
add esp, 4
test al, al
jne 0x4a2414
lea esi, [esp + 0x10]
xor eax, eax
mov ecx, ebx
mov edx, esi
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
call fcn.004a2429
mov ecx, esi
mov bh, al
call fcn.004a24e6
mov ecx, esi
mov edx, esi
mov bl, al
call fcn.004a2522
test bh, bh
jne 0x4a2246
test bl, bl
jne 0x4a2246
test al, al
jne 0x4a2246
mov edi, 0x7b
jmp 0x4a2400
test bl, bl
je 0x4a2258
mov al, 1
lea esi, [esp + 0x10]
mov dword [esp], eax
jmp 0x4a2321
lea edi, [esp + 4]
mov ecx, edi
push 0x5c9660
call fcn.0041be8c
lea ecx, [esp + 0x14]
lea esi, [esp + 0x10]
movzx eax, byte [ecx + 7]
mov edx, dword [esi]
test al, al
cmovs eax, dword [ecx]
cmovns edx, esi
mov ecx, edi
push eax
push edx
call fcn.00478b5c
mov ecx, dword [eax + 4]
mov edx, dword [eax + 7]
mov edi, dword [eax]
mov dword [esp + 0x23], edx
mov dword [esp + 0x20], ecx
xor ecx, ecx
mov bl, byte [eax + 0xb]
mov dword [eax + 4], ecx
mov dword [eax], ecx
mov dword [eax + 8], ecx
cmp byte [esi + 0xb], 0
js 0x4a22b8
mov word [esp + 0x10], 0
mov byte [esp + 0x1b], 0
jmp 0x4a22e4
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x14], 0
cmp byte [esp + 0x1b], 0
jns 0x4a22e4
push dword [esp + 0x10]
call fcn.005909b6
add esp, 4
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x23]
lea edx, [esp + 0x14]
mov dword [esp + 0x10], edi
mov dword [edx + 3], ecx
mov dword [edx], eax
xor eax, eax
cmp byte [esp + 0xf], 0
mov byte [esp + 0x1b], bl
mov dword [esp + 0x20], eax
mov dword [esp + 0x23], eax
jns 0x4a231a
push dword [esp + 4]
call fcn.005909b6
add esp, 4
mov dword [esp], 0
xor eax, eax
mov bl, 1
lea edi, [esp + 0x10]
dec eax
lea edx, [esp + 0x1c]
lea ecx, [esp + 4]
push edx
push eax
push 0
push edi
call fcn.00478738
cmp byte [esi + 0xb], 0
js 0x4a234f
mov word [esp + 0x10], 0
mov byte [esi + 0xb], 0
jmp 0x4a237a
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x14], 0
cmp byte [esi + 0xb], 0
jns 0x4a237a
push dword [esp + 0x10]
call fcn.005909b6
add esp, 4
mov dword [esp + 0x18], 0
mov eax, dword [esp + 0xc]
movsd xmm0, qword [esp + 4]
mov dword [esp + 0x18], eax
movsd qword [esp + 0x10], xmm0
mov eax, esi
cmp byte [esi + 0xb], 0
jns 0x4a239a
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4a23ae
bt eax, 0xa
jae 0x4a23c1
jmp 0x4a23de
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x4a23c1
cmp eax, 0x7b
jne 0x4a23e2
mov ecx, edi
push 0xffffffffffffffff
push 0x5c
call fcn.00479364
xor ebx, ebx
cmp eax, 2
ja 0x4a232a
mov edi, 0x1126
jmp 0x4a2400
xor edi, edi
jmp 0x4a2400
mov ecx, dword [esp]
mov edi, eax
or cl, bl
test cl, 1
jne 0x4a2400
lea ecx, [esp + 0x10]
push 0xffffffffffffffff
push 0x5c
call fcn.00479364
cmp eax, 3
je 0x4a23d7
cmp byte [esi + 0xb], 0
jns 0x4a2412
push dword [esp + 0x10]
call fcn.005909b6
add esp, 4
mov esi, edi
mov ecx, dword [esp + 0x28]
xor ecx, ebp
call fcn.005909f1
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret