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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d6c88
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x511070]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x14], 0
call fcn.0041bef0
mov ecx, eax
test ecx, ecx
jne 0x4605e6
push 0x80004005
call fcn.0041ce60
mov eax, dword [ecx]
call dword [eax + 0xc]
add eax, 0x10
mov dword [ebp - 0x10], eax
lea ecx, [ebp - 0x54]
mov dword [ebp - 4], 0
call fcn.0045a450
push str.StartInstall...
push 0x515408
mov byte [ebp - 4], 1
call fcn.0048be90
mov eax, dword [edi + 0x10c]
add esp, 8
test eax, eax
je 0x460629
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
or ebx, 0xffffffff
cmp dword [edi + 0x3c], 0
jne 0x46063c
cmp dword [edi + 0x44], 0
jne 0x460b07
mov eax, dword [edi + 4]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x24], 0x1b59
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0xf0]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x30]
push ecx
push eax
call fcn.0047d4e0
mov ecx, eax
call fcn.00465470
call fcn.004590a0
mov eax, dword [edi + 0x34]
mov edx, 0x45f070
mov ecx, dword [edi + 0x38]
test ecx, ecx
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x7c]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 0x13c]
mov dword [ebp - 0x34], eax
mov eax, dword [edi + 0x3c]
mov dword [ebp - 0x3c], eax
mov eax, dword [ebp - 0x38]
cmovne eax, edx
mov dword [ebp - 0x54], ecx
mov dword [ebp - 0x38], eax
lea ecx, [ebp - 0x48]
lea eax, [edi + 0x64]
push eax
call fcn.0041c740
lea eax, [edi + 0x68]
push eax
lea ecx, [ebp - 0x44]
call fcn.0041c740
lea eax, [edi + 0x6c]
push eax
lea ecx, [ebp - 0x40]
call fcn.0041c740
lea eax, [ebp - 0x54]
push eax
call fcn.00434070
mov eax, dword [0x515364]
mov esi, dword [sym.imp.USER32.dll_SendMessageTimeoutW]
test eax, eax
je 0x46071f
push 0
push 0x1388
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 5
push 0
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x28]
push ecx
push 0
push 0x4a
push eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x28], 0x2711
mov dword [ebp - 0x24], 8
call esi
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x46073a
push dword [edi + 0x78]
push 0x4f5c74
push 0
push 5
call eax
add esp, 0x10
mov ecx, edi
call fcn.0045f0d0
test eax, eax
jne 0x460794
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x6a
mov ecx, edi
call dword [esi + 0x20]
push 0x4f5c80
push 0x515408
call fcn.0048c0f0
mov eax, dword [edi]
add esp, 8
mov ecx, edi
push 3
call dword [eax + 0x1c]
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x460b22
push dword [edi + 0x78]
push 0x4f5c80
push 3
push 0xa
call eax
add esp, 0x10
jmp 0x460b22
mov eax, dword [edi + 4]
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x24], 0x1b5a
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0xf0]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x30]
push ecx
push eax
call fcn.0047d4e0
mov ecx, eax
call fcn.00465470
cmp dword [edi + 0x3c], 0
jne 0x4607df
cmp dword [edi + 0x44], 0
jne 0x460b07
mov eax, dword [0x515364]
test eax, eax
je 0x46081e
push 0
push 0x1388
lea ecx, [ebp - 0x1c]
mov dword [ebp - 0x1c], 0x19
push 0
mov dword [ebp - 0x20], ecx
lea ecx, [ebp - 0x28]
push ecx
push 0
push 0x4a
push eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x28], 0x2711
mov dword [ebp - 0x24], 8
call esi
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x460839
push dword [edi + 0x78]
push str.ck_W_e
push 0
push 0x19
call eax
add esp, 0x10
push str.ExtractProductFiles_begin...
push 0x515408
call fcn.0048be90
add esp, 8
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.0045e1f0
test eax, eax
jne 0x46089d
push 0x4f5cc8
push 0x515408
call fcn.0048c0f0
mov eax, dword [edi]
add esp, 8
mov esi, dword [ebp - 0x14]
mov ecx, edi
push esi
call dword [eax + 0x1c]
mov eax, dword [edi + 0xf8]
test eax, eax
je 0x460891
push dword [edi + 0x78]
push 0x4f5cc8
push esi
push 0x23
call eax
add esp, 0x10
mov ecx, edi
call fcn.0045f320
jmp 0x460b22
push str.ExtractProductFiles_end...
push 0x515408
call fcn.0048be90
add esp, 8
cmp dword [edi + 0x3c], 0
jne 0x4608bf
cmp dword [edi + 0x44], 0
jne 0x460b07
push 0
push 0x1b5b
mov ecx, edi
call fcn.004649c0
mov ecx, edi
call fcn.0045fff0
test eax, eax
je 0x4608fa
push str.find_default_tbs
push 0x515408
call fcn.0048be90
add esp, 8
mov ecx, edi
push 0x4f5d0c
push 0x23
call fcn.00464ac0
jmp 0x46090c
push str.not_find_default_tbs
push 0x515408
call fcn.0048be90
add esp, 8
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.0045cdd0
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call fcn.0041c740
mov byte [ebp - 4], 1
mov eax, ebx
mov edx, dword [ebp - 0x14]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460942
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [edi + 8], 0
je 0x460979
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], 0
jle 0x460979
mov ecx, dword [edi + 0x54]
xor edx, edx
cmp dword [ecx - 0xc], edx
cmove ecx, edx
mov edx, dword [edi + 0x64]
push ecx
mov ecx, dword [edi + 0x68]
push eax
call fcn.0043baf0
add esp, 8
mov ecx, edi
push eax
push 0x213e
call fcn.004649c0
push str.ck_W_h
push 0x28
mov ecx, edi
call fcn.00464ac0
push str.CRC_setup_files_begin...
push 0x515408
call fcn.0048be90
add esp, 8
mov ecx, edi
call fcn.0045fe40
test eax, eax
jne 0x460a1f
push 0x4f5d68
push 0x2d
mov ecx, edi
call fcn.00464ac0
push str.Fix_files_begin...
push 0x515408
call fcn.0048be90
add esp, 8
lea ecx, [edi + 0x7c]
call fcn.004680e0
mov esi, eax
test esi, esi
jne 0x4609dd
lea ecx, [edi + 0x8c]
call fcn.0043f180
push str.Fix_files_end...
push 0x515408
call fcn.0048be90
add esp, 8
cmp dword [edi + 0x3c], 0
jne 0x4609ff
cmp dword [edi + 0x44], 0
jne 0x460b07
test esi, esi
jne 0x460a1f
push 0x4f5db0
push 0x32
push 0xd
mov ecx, edi
call fcn.00464b40
mov ecx, edi
call fcn.0045f320
jmp 0x460b22
push 0
push 0x1b5c
mov ecx, edi
call fcn.004649c0
push str.CRC_setup_files_end...
push 0x515408
call fcn.0048be90
add esp, 8
cmp dword [edi + 0x3c], 0
jne 0x460a4f
cmp dword [edi + 0x44], 0
jne 0x460b07
mov ecx, edi
call fcn.00463600
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.0045f6b0
mov ecx, edi
test eax, eax
jne 0x460a7a
push 0x4f5cc8
push 0x37
push 0x11
call fcn.00464b40
jmp 0x460b22
push 0
push 0x1b5d
call fcn.004649c0
cmp dword [edi + 0x3c], 0
jne 0x460a92
cmp dword [edi + 0x44], 0
jne 0x460b07
push 0x4f5df0
push 0x3c
mov ecx, edi
call fcn.00464ac0
cmp dword [edi + 0x14], 0
je 0x460ac3
mov ecx, edi
call fcn.0045fec0
test eax, eax
jne 0x460ac3
push 0x4f5e04
push 0x41
push 0xa
mov ecx, edi
call fcn.00464b40
jmp 0x460b22
mov ecx, edi
call fcn.00462b40
mov ecx, edi
call fcn.00463220
push str.Work
push 0x515408
call fcn.0048be90
add esp, 8
call fcn.00435a50
cmp dword [edi + 0x3c], 0
jne 0x460af4
cmp dword [edi + 0x44], 0
jne 0x460b07
mov ecx, edi
call fcn.00460c40
cmp dword [edi + 0x3c], 0
jne 0x460b19
cmp dword [edi + 0x44], 0
je 0x460b19
mov eax, dword [edi]
mov ecx, edi
push 0x10
call dword [eax + 0x1c]
mov ecx, edi
call fcn.00463b10
jmp 0x460b22
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x1c]
mov ecx, edi
call fcn.00460eb0
mov byte [ebp - 4], 0
mov eax, ebx
mov edx, dword [ebp - 0x40]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460b47
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x44]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460b61
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x48]
mov eax, ebx
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x460b7b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x10]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x460b9a
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret