Function at 0x473a50
Capabilities:
Check if file exists

Disassembly:
push 0x1c
mov eax, 0x4b3dc9
call fcn.00476610
push dword [ebp + 0xc]
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
xor ebx, ebx
test eax, eax
jne 0x473a75
push dword [ebp + 0xc]
push ebx
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
push str.CreateObject
push dword [0x4f9dd0]
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov esi, eax
cmp esi, ebx
jne 0x473a94
or eax, 0xffffffff
jmp 0x473c8f
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 0x473adf
push str..zip
push eax
call fcn.004756de
pop ecx
pop ecx
test eax, eax
jne 0x473adf
lea eax, [ebp - 0x10]
push eax
push 0x4c877c
push 0x4c87ac
call esi
test eax, eax
je 0x473aef
mov eax, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x473a8c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x473a8c
lea eax, [ebp - 0x10]
push eax
push 0x4c877c
push 0x4c879c
jmp 0x473ac6
push 0x10
call fcn.00472c22
pop ecx
cmp eax, ebx
je 0x473b06
mov ecx, eax
call fcn.0047341d
mov esi, eax
jmp 0x473b08
xor esi, esi
push esi
lea ecx, [ebp - 0x14]
call fcn.00472ddc
push dword [ebp + 8]
mov ecx, esi
mov byte [ebp - 4], 1
call fcn.00474297
test al, al
jne 0x473b35
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x473acc
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x473acc
push 0x1c
call fcn.00472c22
pop ecx
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 2
cmp eax, ebx
je 0x473b53
mov ecx, eax
call fcn.004731ce
mov esi, eax
jmp 0x473b55
xor esi, esi
push esi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 1
call fcn.00472ddc
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 0x473ba3
mov byte [ebp - 4], 1
cmp esi, ebx
je 0x473b8d
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov byte [ebp - 4], bl
cmp edi, ebx
je 0x473acc
mov eax, dword [edi]
push edi
call dword [eax + 8]
jmp 0x473acc
push 0x78
call fcn.00472c22
pop ecx
mov dword [ebp - 0x1c], eax
mov byte [ebp - 4], 4
cmp eax, ebx
je 0x473bc1
mov ecx, eax
call fcn.00473272
mov esi, eax
jmp 0x473bc3
xor esi, esi
push esi
lea ecx, [ebp - 0x1c]
mov byte [ebp - 4], 3
call fcn.00472ddc
push dword [ebp + 0xc]
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00472ff4
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.00473356
push dword [ebp - 0x28]
mov byte [ebp - 4], 5
call fcn.00472c4d
pop ecx
mov byte [esi + 0x58], bl
cmp edi, ebx
je 0x473c14
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 0x473c51
cmp esi, ebx
je 0x473c37
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x473b23
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x473b23
cmp esi, ebx
je 0x473c5b
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp - 0x18]
mov byte [ebp - 4], 1
cmp eax, ebx
je 0x473c6c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x14]
mov byte [ebp - 4], bl
cmp eax, ebx
je 0x473c7c
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x10]
or dword [ebp - 4], 0xffffffff
cmp eax, ebx
je 0x473c8d
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
xor eax, eax
call fcn.004766e8
ret