Function at 0x4094ad
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14c
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
mov esi, ecx
xor ebx, ebx
mov dword [esi + 0x410], ebx
cmp dword [edi + 8], 1
je 0x409585
lea ecx, [ebp + 8]
call fcn.0040d172
cmp dword [edi + 8], 4
push ebx
jne 0x409532
mov eax, dword [0x42633c]
push 0xd
lea ecx, [ebp + 8]
push dword [eax + 4]
call fcn.0040d235
push 0x424ae0
lea eax, [esi + 0x3ec]
push str.Finish
push eax
lea ecx, [esi + 0x190]
call fcn.0040da09
push ebx
push 0x425594
push dword [esi + 0x3e4]
lea eax, [esi + 0x298]
mov ecx, esi
push dword [esi + 0x3e0]
push eax
call fcn.00408880
jmp 0x409838
mov eax, dword [0x42633c]
push 0xb
lea ecx, [ebp + 8]
push dword [eax + 4]
call fcn.0040d235
push dword [edi + 8]
push str.download_file_return_error__u
push 0x424b20
call fcn.0040d0ca
add esp, 0xc
lea eax, [esi + 0x3ec]
lea ecx, [esi + 0x190]
push 0x424ae0
push str.Finish
push eax
call fcn.0040da09
push ebx
mov ecx, 0x424b10
call fcn.0040327d
jmp 0x409838
mov eax, dword [edi + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x10], 0x110
mov dword [ebp - 0xc], 8
mov dword [ebp - 8], eax
call ebx
mov dword [ebp - 4], eax
push 0
lea eax, [ebp - 0x10]
push 0
push eax
mov ecx, esi
call fcn.0040ca62
mov eax, dword [edi + 0x10]
add dword [esi + 0x18c], eax
mov eax, dword [edi + 0x10]
add dword [esi + 0x454], eax
call ebx
sub eax, dword [esi + 0x450]
push eax
call fcn.004169c5
pop ecx
mov ecx, 0x3e8
cmp eax, ecx
jae 0x4095df
mov eax, ecx
xor edx, edx
mov ebx, 0x3e8
div ebx
mov ecx, dword [esi + 0x454]
xor edx, edx
shr ecx, 0xa
mov ebx, eax
mov eax, ecx
div ebx
mov ecx, esi
mov dword [esi + 0x458], eax
call fcn.0040a2c6
mov ecx, esi
mov ebx, eax
call fcn.0040a31c
and dword [esi + 0x45c], 0
lea ecx, [esi + 0x45c]
sub ebx, eax
test ebx, ebx
jle 0x409637
cmp dword [esi + 0x458], 0
jbe 0x409637
mov eax, ebx
xor edx, edx
div dword [esi + 0x458]
mov dword [ecx], eax
lea eax, [ebp - 0x24]
push 0xa
push eax
push dword [esi + 0x18c]
call fcn.0041db36
add esp, 0xc
lea eax, [ebp - 0x24]
lea ebx, [esi + 0x3ec]
lea ecx, [esi + 0x190]
push eax
push str.AlreadyDownload
push ebx
call fcn.0040da09
xor eax, eax
cmp dword [esi + 0x3e8], eax
je 0x4096c6
cmp dword [esi + 0x420], eax
jne 0x4096af
lea eax, [ebp - 0x14c]
push eax
push 0x425184
call fcn.00405a66
lea eax, [ebp - 0x14c]
mov ebx, 0x425a04
push eax
push ebx
call fcn.00415570
add esp, 0x10
lea ecx, [esi + 0x41c]
push 0x1001
push ebx
call fcn.0040c046
push dword [edi + 0x10]
lea eax, [edi + 0x14]
lea ecx, [esi + 0x41c]
push eax
call fcn.0040bff6
jmp 0x40981d
cmp dword [esi + 0x420], eax
jne 0x409808
test byte [esi + 0x3e4], 1
push ebx
push 0x425184
jne 0x409701
lea eax, [ebp - 0x14c]
push str._s_s.exe
push eax
call fcn.00415cc0
add esp, 0x10
mov dword [0x424b1c], 1
jmp 0x40971c
lea eax, [ebp - 0x14c]
push str._s_s.gls
push eax
call fcn.00415cc0
add esp, 0x10
and dword [0x424b1c], 0
lea eax, [ebp - 0x14c]
push eax
push 0x426340
call fcn.00415570
lea eax, [ebp - 0x14c]
push 0x422098
push eax
call fcn.00415580
add esp, 0x10
lea eax, [ebp - 0x14c]
lea ecx, [esi + 0x41c]
push 0x1001
push eax
call fcn.0040c046
push 0x4220a8
push str.Finish
push ebx
lea ecx, [esi + 0x190]
call fcn.0040da09
mov eax, dword [esi + 0x3e4]
and eax, 1
cmp al, 1
jne 0x409808
lea ebx, [esi + 0x294]
push 4
push ebx
lea ecx, [esi + 0x41c]
call fcn.0040bff6
and dword [ebp + 8], 0
lea eax, [ebp + 8]
push 4
push eax
lea ecx, [esi + 0x41c]
call fcn.0040bff6
mov eax, dword [ebx]
lea ecx, [esi + 0x41c]
lea eax, [eax + eax*2]
shl eax, 4
push eax
push dword [esi + 0x424]
call fcn.0040bff6
lea ecx, [esi + 0x41c]
call fcn.0040c1e8
mov ebx, dword [ebx]
lea ecx, [ebp - 0x48]
push 0xa
push ecx
lea eax, [ebx + ebx*2]
shl eax, 4
add eax, 8
push eax
mov dword [esi + 0x430], eax
call fcn.0041db36
add esp, 0xc
lea eax, [ebp - 0x48]
lea ecx, [esi + 0x190]
push eax
lea eax, [esi + 0x3ec]
push str.CurBlockPos
push eax
call fcn.0040da09
test byte [esi + 0x3e4], 1
lea eax, [edi + 0x14]
mov ecx, esi
push eax
push dword [edi + 0x10]
call fcn.00409fab
mov ecx, dword [edi + 0x10]
lea eax, [esi + 0x42c]
add dword [eax], ecx
push dword [eax]
mov ecx, esi
call fcn.0040a285
mov ecx, esi
call fcn.0040917a
pop edi
pop esi
pop ebx
leave
ret 4