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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d8748
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.0041bed0
mov ecx, eax
test ecx, ecx
jne 0x461f36
push 0x80004005
call fcn.0041cdf0
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.0045c410
push str.StartInstall...
push 0x515488
mov byte [ebp - 4], 1
call fcn.0048d4b0
mov eax, dword [edi + 0x100]
add esp, 8
test eax, eax
je 0x461f79
push 0xffffffffffffffff
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
or ebx, 0xffffffff
cmp dword [edi + 0x3c], 0
jne 0x461f8c
cmp dword [edi + 0x44], 0
jne 0x46240a
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 + 0xe4]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x30]
push ecx
push eax
call fcn.0047f030
mov ecx, eax
call fcn.00466610
call fcn.0045b310
mov eax, dword [edi + 0x34]
mov edx, 0x460f70
mov ecx, dword [edi + 0x38]
test ecx, ecx
mov dword [ebp - 0x50], eax
mov eax, dword [edi + 0x70]
mov dword [ebp - 0x4c], eax
mov eax, dword [edi + 0x130]
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 + 0x58]
push eax
call fcn.0041c6d0
lea eax, [edi + 0x5c]
push eax
lea ecx, [ebp - 0x44]
call fcn.0041c6d0
lea eax, [edi + 0x60]
push eax
lea ecx, [ebp - 0x40]
call fcn.0041c6d0
lea eax, [ebp - 0x54]
push eax
call fcn.00433e00
mov eax, dword [0x5153e4]
mov esi, dword [sym.imp.USER32.dll_SendMessageTimeoutW]
test eax, eax
je 0x46206f
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 + 0xec]
test eax, eax
je 0x46208a
push dword [edi + 0x6c]
push 0x4f64fc
push 0
push 5
call eax
add esp, 0x10
mov ecx, edi
call fcn.00460fd0
test eax, eax
jne 0x4620e4
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 0x6a
mov ecx, edi
call dword [esi + 0x20]
push 0x4f6508
push 0x515488
call fcn.0048d710
mov eax, dword [edi]
add esp, 8
mov ecx, edi
push 3
call dword [eax + 0x1c]
mov eax, dword [edi + 0xec]
test eax, eax
je 0x462425
push dword [edi + 0x6c]
push 0x4f6508
push 3
push 0xa
call eax
add esp, 0x10
jmp 0x462425
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 + 0xe4]
mov dword [ebp - 0x28], eax
lea eax, [ebp - 0x30]
push ecx
push eax
call fcn.0047f030
mov ecx, eax
call fcn.00466610
cmp dword [edi + 0x3c], 0
jne 0x46212f
cmp dword [edi + 0x44], 0
jne 0x46240a
mov eax, dword [0x5153e4]
test eax, eax
je 0x46216e
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 + 0xec]
test eax, eax
je 0x462189
push dword [edi + 0x6c]
push str.ck_W_e
push 0
push 0x19
call eax
add esp, 0x10
push str.ExtractProductFiles_begin...
push 0x515488
call fcn.0048d4b0
add esp, 8
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.00460120
test eax, eax
jne 0x4621ed
push 0x4f6550
push 0x515488
call fcn.0048d710
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 + 0xec]
test eax, eax
je 0x4621e1
push dword [edi + 0x6c]
push 0x4f6550
push esi
push 0x23
call eax
add esp, 0x10
mov ecx, edi
call fcn.00461220
jmp 0x462425
push str.ExtractProductFiles_end...
push 0x515488
call fcn.0048d4b0
add esp, 8
cmp dword [edi + 0x3c], 0
jne 0x46220f
cmp dword [edi + 0x44], 0
jne 0x46240a
push 0
push 0x1b5b
mov ecx, edi
call fcn.00465be0
lea eax, [ebp - 0x14]
mov ecx, edi
push eax
call fcn.0045ed10
push eax
lea ecx, [ebp - 0x10]
mov byte [ebp - 4], 2
call fcn.0041c6d0
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 0x462253
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [edi + 8], 0
je 0x46228a
mov eax, dword [ebp - 0x10]
cmp dword [eax - 0xc], 0
jle 0x46228a
mov ecx, dword [edi + 0x48]
xor edx, edx
cmp dword [ecx - 0xc], edx
cmove ecx, edx
mov edx, dword [edi + 0x58]
push ecx
mov ecx, dword [edi + 0x5c]
push eax
call fcn.0043c6b0
add esp, 8
mov ecx, edi
push eax
push 0x213e
call fcn.00465be0
push str.ck_W_h
push 0x28
mov ecx, edi
call fcn.00465ce0
push str.CRC_setup_files_begin...
push 0x515488
call fcn.0048d4b0
add esp, 8
mov ecx, edi
call fcn.00461d40
test eax, eax
jne 0x462330
push 0x4f65b0
push 0x2d
mov ecx, edi
call fcn.00465ce0
push str.Fix_files_begin...
push 0x515488
call fcn.0048d4b0
add esp, 8
lea ecx, [edi + 0x70]
call fcn.00469280
mov esi, eax
test esi, esi
jne 0x4622ee
lea ecx, [edi + 0x80]
call fcn.0043fda0
push str.Fix_files_end...
push 0x515488
call fcn.0048d4b0
add esp, 8
cmp dword [edi + 0x3c], 0
jne 0x462310
cmp dword [edi + 0x44], 0
jne 0x46240a
test esi, esi
jne 0x462330
push 0x4f65f8
push 0x32
push 0xd
mov ecx, edi
call fcn.00465d60
mov ecx, edi
call fcn.00461220
jmp 0x462425
push 0
push 0x1b5c
mov ecx, edi
call fcn.00465be0
push str.CRC_setup_files_end...
push 0x515488
call fcn.0048d4b0
add esp, 8
cmp dword [edi + 0x3c], 0
jne 0x462360
cmp dword [edi + 0x44], 0
jne 0x46240a
lea eax, [ebp - 0x10]
mov ecx, edi
push eax
call fcn.004615b0
mov ecx, edi
test eax, eax
jne 0x462384
push 0x4f6550
push 0x37
push 0x11
call fcn.00465d60
jmp 0x462425
push 0
push 0x1b5d
call fcn.00465be0
cmp dword [edi + 0x3c], 0
jne 0x46239c
cmp dword [edi + 0x44], 0
jne 0x46240a
push 0x4f6638
push 0x3c
mov ecx, edi
call fcn.00465ce0
cmp dword [edi + 0x14], 0
je 0x4623cd
mov ecx, edi
call fcn.00461dc0
test eax, eax
jne 0x4623cd
push 0x4f664c
push 0x41
push 0xa
mov ecx, edi
call fcn.00465d60
jmp 0x462425
mov ecx, edi
call fcn.00464190
push str.Work
push 0x515488
call fcn.0048d4b0
add esp, 8
call fcn.004357e0
cmp dword [edi + 0x3c], 0
jne 0x4623f7
cmp dword [edi + 0x44], 0
jne 0x46240a
mov ecx, edi
call fcn.00462540
cmp dword [edi + 0x3c], 0
jne 0x46241c
cmp dword [edi + 0x44], 0
je 0x46241c
mov eax, dword [edi]
mov ecx, edi
push 0x10
call dword [eax + 0x1c]
mov ecx, edi
call fcn.00464d30
jmp 0x462425
mov eax, dword [edi]
mov ecx, edi
push 0
call dword [eax + 0x1c]
mov ecx, edi
call fcn.00462770
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 0x46244a
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 0x462464
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 0x46247e
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 0x46249d
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