Function at 0x474854
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 [0x530f98]
xor eax, ebp
mov dword [esp + 0x28], eax
mov esi, 0x1126
push ebx
call fcn.00474570
add esp, 4
test al, al
jne 0x474a8c
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.00474aa1
mov ebx, eax
mov ecx, esi
call fcn.00474b5e
mov bh, al
mov ecx, esi
mov edx, esi
call fcn.00474b9a
test bl, bl
jne 0x4748c5
test bh, bh
jne 0x4748c5
test al, al
jne 0x4748c5
mov edi, 0x7b
jmp 0x474a78
test bh, bh
mov byte [esp + 3], bh
je 0x4748d6
lea esi, [esp + 0x10]
jmp 0x474998
lea edi, [esp + 4]
mov ecx, edi
push 0x4ee430
call fcn.0040394a
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.00429d18
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 0x474936
mov word [esp + 0x10], 0
mov byte [esp + 0x1b], 0
jmp 0x474962
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x14], 0
cmp byte [esp + 0x1b], 0
jns 0x474962
push dword [esp + 0x10]
call fcn.004af3c6
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 0x474998
push dword [esp + 4]
call fcn.004af3c6
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.004298c8
cmp byte [esi + 0xb], 0
js 0x4749c6
mov word [esp + 0x10], 0
mov byte [esi + 0xb], 0
jmp 0x4749f1
mov eax, dword [esp + 0x10]
mov word [eax], 0
mov dword [esp + 0x14], 0
cmp byte [esi + 0xb], 0
jns 0x4749f1
push dword [esp + 0x10]
call fcn.004af3c6
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 0x474a11
mov eax, dword [esp + 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x474a25
bt eax, 0xa
jae 0x474a38
jmp 0x474a55
call dword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [eax - 2]
cmp ecx, 2
jb 0x474a38
cmp eax, 0x7b
jne 0x474a59
mov ecx, edi
push 0xffffffffffffffff
push 0x5c
call fcn.0042a5bc
xor ebx, ebx
cmp eax, 2
ja 0x4749a1
mov edi, 0x1126
jmp 0x474a78
xor edi, edi
jmp 0x474a78
mov cl, byte [esp + 3]
or cl, bl
mov edi, eax
test cl, 1
jne 0x474a78
lea ecx, [esp + 0x10]
push 0xffffffffffffffff
push 0x5c
call fcn.0042a5bc
cmp eax, 3
je 0x474a4e
cmp byte [esi + 0xb], 0
jns 0x474a8a
push dword [esp + 0x10]
call fcn.004af3c6
add esp, 4
mov esi, edi
mov ecx, dword [esp + 0x28]
xor ecx, ebp
call fcn.004af401
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret