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

Disassembly:
push 0xffffffffffffffff
push 0x4b4574
mov eax, dword fs:[0]
push eax
sub esp, 0xbc
mov eax, dword [0x4f4930]
xor eax, esp
mov dword [esp + 0xb8], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f4930]
xor eax, esp
push eax
lea eax, [esp + 0xd0]
mov dword fs:[0], eax
mov ebp, dword [esp + 0xe0]
mov esi, ecx
xor edi, edi
cmp esi, edi
je 0x40961b
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x40961b
shr eax, 4
not al
and al, 1
je 0x40961b
mov dword [esp + 0x1c], fcn.00470104
mov dword [esp + 0x20], fcn.00470421
mov dword [esp + 0x24], fcn.00470027
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], 0x8000
mov dword [esp + 0x18], 0x4c36dc
mov dword [esp + 0x30], edi
mov bl, byte [esp + 0xe4]
test bl, bl
mov dword [esp + 0xd8], edi
sete al
mov byte [esp + 0x34], al
mov byte [esp + 0x44], 0
mov dword [esp + 0x40], edi
push esi
lea edx, [esp + 0x44]
lea ecx, [esp + 0x1c]
mov byte [esp + 0xdc], 1
call fcn.00421cf0
test al, al
jne 0x4095b3
lea ecx, [esp + 0x40]
call fcn.0041a4d0
jmp 0x4099dd
test bl, bl
je 0x409622
push 0x4cc124
mov ecx, 0x4cc12c
lea eax, [esp + 0x1c]
call fcn.00421ad0
cmp eax, edi
je 0x4095e0
push 0x4cc134
push eax
call fcn.0046ff94
add esp, 8
test eax, eax
je 0x409622
lea ecx, [esp + 0x40]
call fcn.0041a420
mov dword [esp + 0xd8], 0xffffffff
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], 0x4c345c
cmp eax, edi
je 0x40961b
mov ecx, dword [eax + 4]
push eax
mov dword [esp + 0x2c], ecx
call dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
add esp, 4
cmp eax, edi
jne 0x409604
xor al, al
jmp 0x409a5e
push 0x4cc068
mov ecx, str.MODULE
lea eax, [esp + 0x1c]
mov dword [esp + 0x3c], edi
call fcn.00421ad0
cmp eax, edi
je 0x40964a
push eax
call fcn.00471773
add esp, 4
mov dword [esp + 0x38], eax
xor esi, esi
cmp dword [esp + 0x38], edi
mov dword [esp + 0x3c], esi
jle 0x4099dd
jmp 0x409662
xor edi, edi
push 0x7e
lea eax, [esp + 0x52]
xor edx, edx
push edi
push eax
mov word [esp + 0x58], dx
call fcn.00476c30
add esp, 0xc
push esi
push str.bundle_d
lea ecx, [esp + 0x54]
push 0x40
push ecx
call fcn.0046fdbd
add esp, 0x10
push 0x4cc138
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
mov edi, eax
test edi, edi
je 0x4099dd
call fcn.00401760
push eax
mov esi, edi
call fcn.0045dd20
test al, al
jne 0x4099ca
push edi
mov ebx, ebp
mov byte [esp + 0x1b], al
call fcn.00407ce0
xor ebx, ebx
cmp eax, ebx
jne 0x4096d6
mov byte [esp + 0x17], 1
push 0x70
call fcn.004706a8
add esp, 4
mov dword [esp + 0x48], eax
mov byte [esp + 0xd8], 2
cmp eax, ebx
je 0x4096fb
mov esi, eax
call fcn.00406a00
mov esi, eax
jmp 0x4096fd
xor esi, esi
mov byte [esp + 0xd8], 1
mov eax, dword [esi]
mov dword [esi + 0x48], ebx
mov dword [esi + 0x40], ebp
cmp eax, ebx
je 0x40971a
push eax
call fcn.00470399
add esp, 4
push edi
mov dword [esi], ebx
call fcn.0047205c
add esp, 4
mov dword [esi], eax
push 0x4cc140
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
mov edi, eax
mov eax, dword [esi + 8]
cmp eax, ebx
je 0x40974b
push eax
call fcn.00470399
add esp, 4
mov dword [esi + 8], ebx
cmp edi, ebx
je 0x40975e
push edi
call fcn.0047205c
add esp, 4
mov dword [esi + 8], eax
push str.description
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
mov edi, eax
mov eax, dword [esi + 0xc]
cmp eax, ebx
je 0x409782
push eax
call fcn.00470399
add esp, 4
mov dword [esi + 0xc], ebx
cmp edi, ebx
je 0x409795
push edi
call fcn.0047205c
add esp, 4
mov dword [esi + 0xc], eax
push 0x4cc164
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
mov edi, eax
mov eax, dword [esi + 0x10]
cmp eax, ebx
je 0x4097b9
push eax
call fcn.00470399
add esp, 4
mov dword [esi + 0x10], ebx
cmp edi, ebx
je 0x4097cc
push edi
call fcn.0047205c
add esp, 4
mov dword [esi + 0x10], eax
push 0x4cc174
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
mov edi, eax
mov eax, dword [esi + 0x14]
cmp eax, ebx
je 0x4097f0
push eax
call fcn.00470399
add esp, 4
mov dword [esi + 0x14], ebx
cmp edi, ebx
je 0x409803
push edi
call fcn.0047205c
add esp, 4
mov dword [esi + 0x14], eax
push 0x4cc180
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
mov edi, eax
mov eax, dword [esi + 0x18]
cmp eax, ebx
je 0x409827
push eax
call fcn.00470399
add esp, 4
mov dword [esi + 0x18], ebx
cmp edi, ebx
je 0x40983a
push edi
call fcn.0047205c
add esp, 4
mov dword [esi + 0x18], eax
push str.icon
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
mov edi, eax
mov eax, dword [esi + 0x1c]
cmp eax, ebx
je 0x40985e
push eax
call fcn.00470399
add esp, 4
mov dword [esi + 0x1c], ebx
cmp edi, ebx
je 0x409871
push edi
call fcn.0047205c
add esp, 4
mov dword [esi + 0x1c], eax
push 0x4cc194
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
mov edi, eax
mov eax, dword [esi + 0x20]
cmp eax, ebx
je 0x409895
push eax
call fcn.00470399
add esp, 4
mov dword [esi + 0x20], ebx
cmp edi, ebx
je 0x4098a8
push edi
call fcn.0047205c
add esp, 4
mov dword [esi + 0x20], eax
push str.time
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
cmp eax, ebx
je 0x4098c6
push eax
call fcn.00471773
jmp 0x4098d1
call fcn.00471f15
push ebx
call fcn.0047200b
add esp, 4
mov dword [esi + 0x28], eax
push 0x4cc1a8
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
cmp eax, ebx
je 0x4098fe
push eax
call fcn.00471773
add esp, 4
test eax, eax
setne dl
mov byte [esi + 0x44], dl
push str.state
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
cmp eax, ebx
je 0x409920
push eax
call fcn.00471773
add esp, 4
mov dword [esi + 0x38], eax
push str.percent
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
cmp eax, ebx
je 0x409942
push eax
call fcn.00471773
add esp, 4
mov dword [esi + 0x3c], eax
push str.downloadtype
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
cmp eax, ebx
je 0x409964
push eax
call fcn.00471773
add esp, 4
mov dword [esi + 0x30], eax
push str.sharetime
lea ecx, [esp + 0x50]
lea eax, [esp + 0x1c]
call fcn.00421ad0
cmp eax, ebx
je 0x409986
push eax
call fcn.00471773
add esp, 4
mov dword [esi + 0x34], eax
cmp byte [esp + 0x17], bl
je 0x4099ab
push esi
mov eax, ebp
call fcn.00407f50
test al, al
je 0x4099ca
cmp byte [esp + 0xe4], 0
je 0x4099ca
mov byte [ebp + 0xac], 1
jmp 0x4099ca
cmp byte [esp + 0xe4], bl
je 0x4099bc
push ebp
mov ebx, esi
call fcn.00408090
call fcn.00406a60
push esi
call fcn.0046fda3
add esp, 4
mov esi, dword [esp + 0x3c]
inc esi
cmp esi, dword [esp + 0x38]
mov dword [esp + 0x3c], esi
jl 0x409660
mov edi, dword [ebp + 0x28]
cmp dword [ebp + 0x24], edi
jbe 0x4099ea
call fcn.00470dee
mov esi, dword [ebp + 0x24]
mov ebx, dword [ebp + 0x18]
cmp esi, dword [ebp + 0x28]
jbe 0x4099fa
call fcn.00470dee
mov eax, dword [ebp + 0x18]
test ebx, ebx
je 0x409a05
cmp ebx, eax
je 0x409a0a
call fcn.00470dee
mov eax, edi
sub eax, esi
push 0x407030
sar eax, 2
push eax
push edi
push esi
call fcn.00413f20
add esp, 0x10
lea ecx, [esp + 0x40]
call fcn.0041a420
mov dword [esp + 0xd8], 0xffffffff
mov eax, dword [esp + 0x28]
mov dword [esp + 0x18], 0x4c345c
test eax, eax
je 0x409a5c
mov ecx, dword [eax + 4]
push eax
mov dword [esp + 0x2c], ecx
call dword [esp + 0x28]
mov eax, dword [esp + 0x2c]
add esp, 4
test eax, eax
jne 0x409a45
mov al, 1
mov ecx, dword [esp + 0xd0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xb8]
xor ecx, esp
call fcn.0046fdae
add esp, 0xc8
ret 8