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

Disassembly:
push ebp
lea ebp, [esp - 0x1010]
mov eax, 0x1010
call fcn.004fe1a0
push 0xffffffffffffffff
push 0x523758
mov eax, dword fs:[0]
push eax
sub esp, 0x24
mov eax, dword [0x5a4aa8]
xor eax, ebp
mov dword [ebp + 0x100c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
mov esi, edx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebp - 0x20], eax
push str.________Update_Component________________
mov ecx, 0x649e50
call fcn.004918f0
add esp, 4
xor ebx, ebx
mov dword [ebp - 4], ebx
cmp esi, ebx
jne 0x4af430
lea eax, [ebx + 0x57]
jmp 0x4af5e5
mov eax, dword [esi + 0xe230]
mov dword [edi], eax
mov ecx, esi
mov edx, edi
call fcn.004b4470
mov dword [ebp - 0x14], eax
cmp eax, ebx
jne 0x4af5e5
mov dword [ebp], ebx
mov byte [ebp + 4], bl
mov dword [ebp + 8], ebx
push 0x800
push ebx
lea eax, [ebp + 0xc]
push eax
call fcn.004fd670
add esp, 0xc
mov byte [ebp - 4], 1
mov dword [ebp - 0x18], ebx
mov ecx, dword [edi]
push ecx
mov ebx, str.InstallingComponents
lea eax, [ebp]
call fcn.00491f50
mov esi, eax
mov dword [ebp - 0x14], esi
test esi, esi
je 0x4af4ad
push ebx
push str.__s__Init_Registry_Key_Fail___
mov ecx, esi
mov edx, 0x649e50
call fcn.004917b0
add esp, 8
mov dword [ebp - 0x24], esi
push 0x5814b0
lea edx, [ebp - 0x24]
push edx
call fcn.004fd5a3
push 0x800
push 0
lea eax, [ebp + 0x80c]
push eax
call fcn.004fd670
lea ecx, [ebp + 0x80c]
push ecx
mov edx, dword [ebp]
push edx
lea ecx, [ebp - 0x18]
xor edx, edx
call fcn.004922a0
add esp, 0x14
mov esi, eax
mov dword [ebp - 0x14], esi
test esi, esi
je 0x4af50b
push str.InstallingComponents
push str.__s__Get_component_list_Fail___
mov ecx, esi
mov edx, 0x649e50
call fcn.004917b0
add esp, 8
mov dword [ebp - 0x28], esi
push 0x5814b0
lea eax, [ebp - 0x28]
push eax
call fcn.004fd5a3
lea esi, [ebp + 0x80c]
xor ebx, ebx
mov dword [ebp - 0x1c], ebx
cmp ebx, dword [ebp - 0x18]
jge 0x4af56c
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4af520
sub eax, edx
sar eax, 1
je 0x4af54c
push str.InstallOrder
push esi
call fcn.004f9f1e
add esp, 8
test eax, eax
je 0x4af54c
mov edx, esi
mov ecx, edi
call fcn.004b69c0
add ebx, 1
mov dword [ebp - 0x1c], ebx
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4af557
sub eax, edx
sar eax, 1
lea esi, [esi + eax*2 + 2]
jmp 0x4af516
mov byte [ebp - 4], 0
cmp byte [ebp + 4], 0
je 0x4af584
mov eax, dword [ebp]
test eax, eax
je 0x4af584
push eax
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov dword [ebp - 4], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [ebp - 0x20]
mov eax, 0x45e7b273
mul ecx
mov esi, edx
shr esi, 0xe
mov eax, 0x10624dd3
mul ecx
shr edx, 6
imul edx, edx, 0x3e8
mov eax, ecx
sub eax, edx
push eax
mov edx, esi
imul edx, edx, 0xea60
mov edi, ecx
sub edi, edx
mov eax, 0x10624dd3
mul edi
shr edx, 6
push edx
push esi
push ecx
push str.Total_spending_time___d____d_min__d_sec__d_msec
mov ecx, 0x649e50
call fcn.004918f0
add esp, 0x14
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x100c]
xor ecx, ebp
call fcn.004fa103
add ebp, 0x1010
mov esp, ebp
pop ebp
ret