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

Disassembly:
mov eax, 0x4f4be9
call fcn.004ebd20
sub esp, 0x4c
push ebx
xor ebx, ebx
cmp dword [ebp + 0x10], ebx
push esi
push edi
je 0x4707c0
push dword [ebp + 0x10]
lea edi, [ebp - 0x10]
call fcn.00403098
mov dword [ebp - 4], ebx
push dword [ebp + 0x10]
call sub.ole32.dll_CoTaskMemFree
mov dword [ebp + 0x10], ebx
mov byte [ebp - 4], 1
push dword [0x5227a8]
mov esi, 0x522414
push esi
call fcn.00464c4f
cmp eax, 0xffffffff
jne 0x4705be
push ebx
push dword [0x5227a8]
lea ebx, [ebp - 0x14]
push esi
call fcn.00464b4a
mov edi, eax
lea ebx, [ebp + 0x10]
call fcn.00451df5
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x4705e1
call fcn.0043f167
jmp 0x4705e1
cmp eax, dword [0x522418]
jb 0x4705d0
push 0x80070057
call fcn.004010d2
mov ecx, dword [0x522414]
lea edi, [ecx + eax*4]
lea ebx, [ebp + 0x10]
call fcn.00451df5
mov esi, dword [ebp + 0x10]
xor ebx, ebx
cmp esi, ebx
je 0x4707ac
push ebx
lea eax, [ebp - 0x58]
call fcn.004043b8
mov eax, dword [ebp + 0xc]
dec eax
mov byte [ebp - 4], 2
je 0x47066b
dec eax
je 0x47061a
dec eax
je 0x47066b
dec eax
je 0x47061a
dec eax
je 0x47066b
lea eax, [ebp - 0x58]
call fcn.00404402
jmp 0x4707a7
push dword [ebp - 0x10]
mov eax, 0x5234b0
call fcn.004b9cd5
test eax, eax
je 0x470638
push 2
push dword [ebp - 0x10]
lea ecx, [ebp - 0x58]
call fcn.00460404
mov edi, dword [ebp + 8]
cmp dword [0x522b68], ebx
je 0x4706e1
add edi, 0x4a4
lea esi, [ebp - 0x18]
call fcn.00477689
mov ebx, dword [eax]
lea esi, [ebp - 0x20]
call fcn.00477657
cmp ebx, dword [eax]
mov edi, dword [ebp + 8]
jne 0x4706e1
xor ebx, ebx
inc ebx
jmp 0x4706e3
mov edi, dword [ebp - 0x10]
push edi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x4706b9
test al, 0x10
je 0x47068b
push 1
push edi
lea ecx, [ebp - 0x58]
call fcn.00460571
jmp 0x4706b4
test ah, 1
jne 0x4706b4
mov eax, edi
call fcn.0040de17
test eax, eax
jne 0x4706b4
push edi
mov eax, 0x5234b0
call fcn.004b9cd5
test eax, eax
je 0x4706b4
push ebx
push edi
lea ecx, [ebp - 0x58]
call fcn.00460404
cmp dword [ebp - 0x54], ebx
jne 0x4706ce
lea eax, [ebp - 0x58]
call fcn.00404402
call fcn.0043f167
lea eax, [edi - 0xc]
jmp 0x4707b2
mov edi, dword [ebp + 8]
push 1
push edi
lea ecx, [ebp - 0x58]
call fcn.0046cfda
jmp 0x47063b
xor ebx, ebx
mov eax, dword [ebp + 0xc]
xor esi, esi
inc esi
cmp eax, esi
je 0x47073b
cmp eax, 5
je 0x47073b
cmp eax, 2
je 0x4706fc
cmp eax, 4
jne 0x470761
xor eax, eax
cmp dword [0x522c14], eax
je 0x47070e
cmp dword [0x522b68], eax
jne 0x470725
xor esi, esi
cmp dword [0x522b68], eax
jne 0x470725
push esi
lea eax, [ebp - 0x58]
push eax
push dword [ebp + 0x10]
call fcn.0045fdff
test ebx, ebx
je 0x470776
push esi
lea eax, [ebp - 0x58]
push eax
push dword [edi + 0xf0]
call fcn.0045fdff
jmp 0x470761
cmp dword [0x522b68], 0
jne 0x47074f
push dword [ebp + 0x10]
lea esi, [ebp - 0x58]
call fcn.00464f20
test ebx, ebx
je 0x470776
push dword [edi + 0xf0]
lea esi, [ebp - 0x58]
call fcn.00464f20
test ebx, ebx
je 0x470776
add edi, 0xf0
lea ebx, [ebp + 0x10]
call fcn.00451df5
mov edi, dword [ebp + 8]
mov esi, dword [ebp + 0x10]
cmp esi, dword [edi + 0xf0]
jne 0x47079b
push dword [esi + 4]
lea eax, [edi + 0x504]
call fcn.004773f7
push 0
or eax, 0xffffffff
mov ecx, edi
call fcn.0046cb7c
lea eax, [ebp - 0x58]
call fcn.00404402
test esi, esi
je 0x4707ac
call fcn.0043f167
mov eax, dword [ebp - 0x10]
add eax, 0xfffffff4
cmp eax, dword [0x51b43c]
je 0x4707c0
push eax
call fcn.004013b2
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
leave
ret 0xc