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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
push edi
xor edi, edi
mov esi, ecx
cmp dword [ebp + 8], edi
jne 0x40d880
fld dword [0x47f670]
lea ecx, [ebp - 0x14]
fstp dword [ebp + 8]
call fcn.0043f500
push str.PercentInstall
lea eax, [esi + 0x220]
push eax
mov ebx, 0x47f640
lea eax, [ebp - 0x1c]
push ebx
push eax
call fcn.004400e0
add esp, 0xc
push eax
lea eax, [ebp - 0xc]
push eax
call fcn.00440090
add esp, 0xc
cmp byte [eax + 7], 0xff
jne 0x40d6a3
mov eax, dword [eax]
push edi
push edi
lea ecx, [ebp - 0x14]
push ecx
push edi
push eax
mov edi, 0x80000000
push edi
call fcn.00402b10
add esp, 0x18
lea ecx, [ebp - 0xc]
mov dword [ebp - 4], eax
call fcn.0043f790
lea ecx, [ebp - 0x1c]
call fcn.0043f790
cmp dword [ebp - 4], 0
je 0x40d70a
cmp byte [ebp - 0xd], 0xff
lea eax, [ebp - 0x14]
jne 0x40d6de
mov eax, dword [ebp - 0x14]
push eax
call fcn.004640e9
mov dword [ebp + 8], eax
fild dword [ebp + 8]
pop ecx
fdiv qword [0x47f638]
fadd qword [0x47f630]
fstp dword [ebp + 8]
fldz
fcomp dword [ebp + 8]
fnstsw ax
test ah, 0x41
jne 0x40d84d
lea ecx, [ebp - 0xc]
call fcn.0043f500
push str.PercentDecompress
lea eax, [esi + 0x220]
push eax
lea eax, [ebp - 0x24]
push ebx
push eax
call fcn.004400e0
add esp, 0xc
push eax
lea eax, [ebp - 0x1c]
push eax
call fcn.00440090
add esp, 0xc
cmp byte [eax + 7], 0xff
jne 0x40d740
mov eax, dword [eax]
xor ebx, ebx
push ebx
push ebx
lea ecx, [ebp - 0xc]
push ecx
push ebx
push eax
push edi
call fcn.00402b10
add esp, 0x18
lea ecx, [ebp - 0x1c]
mov dword [ebp - 4], eax
call fcn.0043f790
lea ecx, [ebp - 0x24]
call fcn.0043f790
cmp dword [ebp - 4], ebx
je 0x40d78d
cmp byte [ebp - 5], 0xff
lea eax, [ebp - 0xc]
jne 0x40d777
mov eax, dword [ebp - 0xc]
push eax
call fcn.004640e9
mov dword [ebp + 8], eax
fild dword [ebp + 8]
pop ecx
fdiv qword [0x47f638]
fstp dword [ebp + 8]
lea ecx, [ebp - 0xc]
call fcn.0043f790
fldz
fcomp dword [ebp + 8]
fnstsw ax
test ah, 0x41
jne 0x40d84d
lea ecx, [ebp - 0xc]
call fcn.0043f500
push ebx
push ebx
lea eax, [ebp - 0xc]
push eax
push ebx
push str.SoftwareRealNetworksSetupPercentInstall
push edi
call fcn.00402b10
add esp, 0x18
test eax, eax
je 0x40d7ee
cmp byte [ebp - 5], 0xff
lea eax, [ebp - 0xc]
jne 0x40d7d2
mov eax, dword [ebp - 0xc]
push eax
call fcn.004640e9
mov dword [ebp + 8], eax
fild dword [ebp + 8]
pop ecx
fdiv qword [0x47f638]
fadd qword [0x47f630]
fstp dword [ebp + 8]
lea ecx, [ebp - 0xc]
call fcn.0043f790
fldz
fcomp dword [ebp + 8]
fnstsw ax
test ah, 0x41
jne 0x40d84d
lea ecx, [ebp - 0xc]
call fcn.0043f500
push ebx
push ebx
lea eax, [ebp - 0xc]
push eax
push ebx
push str.SoftwareRealNetworksSetupPercentDecompress
push edi
call fcn.00402b10
add esp, 0x18
test eax, eax
je 0x40d845
cmp byte [ebp - 5], 0xff
lea eax, [ebp - 0xc]
jne 0x40d82f
mov eax, dword [ebp - 0xc]
push eax
call fcn.004640e9
mov dword [ebp + 8], eax
fild dword [ebp + 8]
pop ecx
fdiv qword [0x47f638]
fstp dword [ebp + 8]
lea ecx, [ebp - 0xc]
call fcn.0043f790
fldz
fcomp dword [ebp + 8]
fnstsw ax
test ah, 0x41
jp 0x40d873
fild dword [esi + 0x368]
fmul dword [ebp + 8]
call fcn.00462110
add eax, dword [esi + 0x358]
mov dword [esi + 0x35c], eax
lea ecx, [ebp - 0x14]
call fcn.0043f790
jmp 0x40d93e
cmp dword [ebp + 8], 1
jne 0x40d8d6
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov ecx, dword [esi + 0x378]
sub eax, dword [esi + 0x36c]
imul ecx, ecx, 0x3e8
cmp eax, ecx
jbe 0x40d93e
call ebx
mov ecx, dword [esi + 0x368]
mov edx, dword [esi + 0x358]
mov dword [esi + 0x36c], eax
mov eax, dword [esi + 0x374]
add eax, dword [esi + 0x35c]
add edx, ecx
cmp eax, edx
jge 0x40d938
mov dword [esi + 0x35c], eax
jmp 0x40d93e
cmp dword [ebp + 8], 2
jne 0x40d93e
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x36c]
xor edx, edx
mov ecx, 0x3e8
div ecx
mov ecx, dword [esi + 0x370]
mov dword [ebp + 8], ecx
cmp eax, ecx
jbe 0x40d900
mov eax, ecx
mov edi, dword [esi + 0x368]
mov dword [ebp - 8], eax
fild dword [ebp - 8]
mov dword [ebp - 4], edi
test eax, eax
jns 0x40d919
fadd dword [0x47f320]
fidiv dword [ebp + 8]
fstp dword [ebp + 8]
fld dword [ebp + 8]
fimul dword [ebp - 4]
call fcn.00462110
cmp eax, edi
jle 0x40d930
mov eax, edi
mov ecx, dword [esi + 0x358]
add ecx, eax
mov dword [esi + 0x35c], ecx
pop edi
pop esi
pop ebx
leave
ret 4