Function at 0x473954
Capabilities:
Check if file exists

Disassembly:
push 0x1c
mov eax, 0x4b3d61
call fcn.004764c0
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ebx, ebx
test eax, eax
jne 0x473979
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push str.CreateObject
push dword [0x4f9db8]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
jne 0x473998
or eax, 0xffffffff
jmp 0x473b93
mov dword [ebp - 0x10], ebx
push dword [ebp + 8]
mov dword [ebp - 4], ebx
call dword [sym.imp.SHLWAPI.dll_PathFindExtensionW]
cmp eax, ebx
je 0x4739e3
push str..zip
push eax
call fcn.0047558e
pop ecx
pop ecx
test eax, eax
jne 0x4739e3
lea eax, [ebp - 0x10]
push eax
push 0x4c7a34
push 0x4c7a64
call esi
test eax, eax
je 0x4739f3
mov eax, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x473990
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x473990
lea eax, [ebp - 0x10]
push eax
push 0x4c7a34
push 0x4c7a54
jmp 0x4739ca
push 0x10
call fcn.00472b30
pop ecx
cmp eax, ebx
je 0x473a0a
mov ecx, eax
call fcn.00473321
mov esi, eax
jmp 0x473a0c
xor esi, esi
push esi
lea ecx, [ebp - 0x14]
call fcn.00472cd7
push dword [ebp + 8]
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.00474198
test al, al
jne 0x473a39
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x4739d0
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x4739d0
push 0x1c
call fcn.00472b30
pop ecx
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x473a57
mov ecx, eax
call fcn.004730dc
mov esi, eax
jmp 0x473a59
xor esi, esi
push esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.00472cd7
mov edi, dword [ebp - 0x14]
mov byte [esi + 0xc], bl
mov esi, dword [ebp - 0x18]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
push esi
push ebx
push edi
push eax
mov byte [ebp - 4], 3
call dword [ecx + 0xc]
test eax, eax
je 0x473aa7
mov byte [ebp - 4], 1
cmp esi, ebx
je 0x473a91
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], bl
cmp edi, ebx
je 0x4739d0
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x4739d0
push 0x78
call fcn.00472b30
pop ecx
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 4
cmp eax, ebx
je 0x473ac5
mov ecx, eax
call fcn.00473127
mov esi, eax
jmp 0x473ac7
xor esi, esi
push esi
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.00472cd7
push dword [ebp + 0xc]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00472f02
mov edi, dword [ebp + 0x10]
push edi
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x10]
mov ecx, esi
mov byte [ebp - 4], 6
call fcn.0047325a
push dword [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00472b5b
pop ecx
mov byte [esi + 0x58], bl
cmp edi, ebx
je 0x473b18
push dword [ebp + 0xc]
mov eax, dword [edi]
push dword [ebp + 8]
push edi
call dword [eax]
mov esi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax]
push esi
push ebx
push 0xffffffffffffffff
push ebx
push eax
call dword [ecx + 0x1c]
mov byte [ebp - 4], 3
cmp eax, ebx
je 0x473b55
cmp esi, ebx
je 0x473b3b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x473a27
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x473a27
cmp esi, ebx
je 0x473b5f
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x473b70
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x473b80
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x473b91
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
call fcn.00476598
ret