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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x44
mov eax, dword [0x427040]
xor eax, esp
mov dword [esp + 0x40], eax
mov ecx, dword [ebp + 0x10]
push ebx
push esi
push edi
xor ebx, ebx
mov edi, 0xf
mov eax, ecx
mov dword [esp + 0x48], edi
mov dword [esp + 0x44], ebx
mov byte [esp + 0x34], bl
lea esi, [eax + 1]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x401242
sub eax, esi
push eax
push ecx
lea ecx, [esp + 0x38]
call fcn.00401af0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x2c], esp
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x3c], ebx
mov esi, 1
push esi
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x422cf4
mov byte [ecx + 4], bl
call fcn.00401af0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x48], esp
push 0xffffffffffffffff
push ebx
lea eax, [esp + 0x70]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push eax
mov byte [ecx + 4], bl
call fcn.00401a10
lea ecx, [esp + 0x4c]
call fcn.00405a50
add esp, 0x38
cmp dword [esp + 0x44], ebx
jne 0x40134c
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov edi, dword [sym.imp.KERNEL32.dll_Sleep]
mov dword [esp + 0x10], eax
jmp 0x4012d5
mov esi, 1
test byte [0x4292c4], 1
jne 0x4012f6
or dword [0x4292c4], esi
call fcn.00401f40
push 0x420930
call fcn.004133c1
add esp, 4
test byte [0x4292c4], 1
mov byte [0x428ecd], 1
jne 0x40131e
or dword [0x4292c4], esi
call fcn.00401f40
push 0x420930
call fcn.004133c1
add esp, 4
push 0x428ec8
call fcn.004025d0
test al, al
jne 0x40187a
call ebx
push 0x7530
mov esi, eax
call edi
sub esi, dword [esp + 0x10]
cmp esi, 0x493e0
jb 0x4012d0
jmp 0x40187a
mov edi, dword [esp + 0x18]
cmp edi, ebx
je 0x401371
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x40137e
call fcn.00412b4f
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x14]
mov eax, esi
cmp eax, esi
jae 0x401387
cmp esi, 0xa
mov eax, esi
jb 0x401393
mov eax, 0xa
cmp dword [edi + 0x18], 0x10
jb 0x40139e
mov edx, dword [edi + 4]
jmp 0x4013a1
lea edx, [edi + 4]
mov ecx, str.RunInstall
call section..text
test eax, eax
jne 0x4014d1
cmp esi, 0xa
jb 0x4014d1
cmp esi, 0xa
setne al
test eax, eax
jne 0x4014d1
mov ecx, ebx
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 7
jne 0x4014d1
lea edi, [eax - 6]
lea esi, [esp + 0x14]
call fcn.004019d0
mov ebx, 0x10
cmp dword [eax + 0x18], ebx
jb 0x401405
mov eax, dword [eax + 4]
jmp 0x401408
add eax, 4
push eax
call fcn.00412843
add esp, 4
mov edi, 6
lea esi, [esp + 0x14]
mov dword [esp + 0x24], eax
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x401431
mov edx, dword [eax + 4]
mov dword [esp + 0x2c], edx
jmp 0x401438
add eax, 4
mov dword [esp + 0x2c], eax
mov edi, 5
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x401450
mov eax, dword [eax + 4]
jmp 0x401453
add eax, 4
mov edi, 4
lea esi, [esp + 0x14]
mov dword [esp + 0x28], eax
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x401473
mov ecx, dword [eax + 4]
mov dword [esp + 0x10], ecx
jmp 0x40147a
add eax, 4
mov dword [esp + 0x10], eax
mov edi, 3
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x401492
mov ebx, dword [eax + 4]
jmp 0x401495
lea ebx, [eax + 4]
mov edi, 2
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], 0x10
jb 0x4014ae
mov eax, dword [eax + 4]
jmp 0x4014b1
add eax, 4
mov edx, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push edx
mov edx, dword [esp + 0x14]
push ecx
push edx
push ebx
push eax
mov eax, dword [esp + 0x38]
push eax
call fcn.004046a0
jmp 0x40187a
mov ecx, ebx
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4014f7
call fcn.00412b4f
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov esi, dword [edi + 0x14]
mov eax, esi
cmp eax, esi
jae 0x401500
cmp esi, 0xf
mov eax, esi
jb 0x40150c
mov eax, 0xf
cmp dword [edi + 0x18], 0x10
jb 0x401517
mov edx, dword [edi + 4]
jmp 0x40151a
lea edx, [edi + 4]
mov ecx, str.CompleteInstall
call section..text
test eax, eax
jne 0x40166d
cmp esi, 0xf
jb 0x40166d
cmp esi, 0xf
setne al
test eax, eax
jne 0x40166d
mov ecx, ebx
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 7
jne 0x40166d
lea edi, [eax - 6]
lea esi, [esp + 0x14]
call fcn.004019d0
mov ebx, 0x10
cmp dword [eax + 0x18], ebx
jb 0x40157e
mov eax, dword [eax + 4]
jmp 0x401581
add eax, 4
push eax
call fcn.00412843
add esp, 4
mov edi, 6
lea esi, [esp + 0x14]
mov dword [esp + 0x24], eax
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x4015a6
mov eax, dword [eax + 4]
jmp 0x4015a9
add eax, 4
push eax
call fcn.00412843
add esp, 4
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x4015c9
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
jmp 0x4015d0
add eax, 4
mov dword [esp + 0x10], eax
mov edi, 5
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x4015e8
mov eax, dword [eax + 4]
jmp 0x4015eb
add eax, 4
mov edi, 4
lea esi, [esp + 0x14]
mov dword [esp + 0x28], eax
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x40160b
mov ecx, dword [eax + 4]
mov dword [esp + 0x2c], ecx
jmp 0x401612
add eax, 4
mov dword [esp + 0x2c], eax
mov edi, 3
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x40162a
mov ebx, dword [eax + 4]
jmp 0x40162d
lea ebx, [eax + 4]
mov edi, 2
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], 0x10
jb 0x401646
mov eax, dword [eax + 4]
jmp 0x401649
add eax, 4
cmp dword [esp + 0x10], 0
mov ecx, dword [esp + 0x28]
setne dl
push edx
mov edx, dword [esp + 0x30]
push ecx
push edx
push ebx
push eax
mov eax, dword [esp + 0x38]
push eax
call fcn.004047d0
jmp 0x40187a
sub ebx, edi
mov ecx, ebx
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x40168f
call fcn.00412b4f
mov edi, dword [esp + 0x18]
mov ecx, str.RunUninstall
call fcn.00401950
test eax, eax
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
jne 0x401780
test edi, edi
je 0x40179b
mov ecx, esi
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 5
jne 0x401780
lea edi, [eax - 4]
lea esi, [esp + 0x14]
call fcn.004019d0
mov ebx, 0x10
cmp dword [eax + 0x18], ebx
jb 0x4016ec
mov eax, dword [eax + 4]
jmp 0x4016ef
add eax, 4
push eax
call fcn.00412843
add esp, 4
mov edi, 4
lea esi, [esp + 0x14]
mov dword [esp + 0x24], eax
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x401718
mov edx, dword [eax + 4]
mov dword [esp + 0x10], edx
jmp 0x40171f
add eax, 4
mov dword [esp + 0x10], eax
mov edi, 3
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x401737
mov ebx, dword [eax + 4]
jmp 0x40173a
lea ebx, [eax + 4]
mov edi, 2
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], 0x10
jb 0x401767
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov edx, dword [esp + 0x24]
push ecx
push ebx
push eax
push edx
call fcn.00404910
jmp 0x40187a
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x24]
push ecx
push ebx
add eax, 4
push eax
push edx
call fcn.00404910
jmp 0x40187a
test edi, edi
je 0x40179b
sub esi, edi
mov eax, 0x92492493
imul esi
add edx, esi
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4017a4
call fcn.00412b4f
mov edi, dword [esp + 0x18]
mov ecx, str.CompleteUninstall
call fcn.00401950
test eax, eax
jne 0x40187a
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4018a0
mov ecx, dword [esp + 0x1c]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 5
jne 0x40187a
lea edi, [eax - 4]
lea esi, [esp + 0x14]
call fcn.004019d0
mov ebx, 0x10
cmp dword [eax + 0x18], ebx
jb 0x4017ff
mov eax, dword [eax + 4]
jmp 0x401802
add eax, 4
push eax
call fcn.00412843
add esp, 4
mov edi, 4
lea esi, [esp + 0x14]
mov dword [esp + 0x24], eax
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x40182b
mov ecx, dword [eax + 4]
mov dword [esp + 0x10], ecx
jmp 0x401832
add eax, 4
mov dword [esp + 0x10], eax
mov edi, 3
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], ebx
jb 0x40184a
mov ebx, dword [eax + 4]
jmp 0x40184d
lea ebx, [eax + 4]
mov edi, 2
lea esi, [esp + 0x14]
call fcn.004019d0
cmp dword [eax + 0x18], 0x10
jb 0x401866
mov eax, dword [eax + 4]
jmp 0x401869
add eax, 4
mov edx, dword [esp + 0x10]
push edx
push ebx
push eax
mov eax, dword [esp + 0x30]
push eax
call fcn.004049e0
mov eax, dword [esp + 0x18]
test eax, eax
je 0x4018a0
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
push ecx
call fcn.00401e70
mov edx, dword [esp + 0x1c]
add esp, 4
push edx
call fcn.004127aa
add esp, 4
xor eax, eax
cmp dword [esp + 0x48], 0x10
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], eax
jb 0x4018c2
mov eax, dword [esp + 0x34]
push eax
call fcn.004127aa
add esp, 4
mov ecx, dword [esp + 0x4c]
pop edi
pop esi
pop ebx
xor ecx, esp
xor eax, eax
call fcn.0041288d
mov esp, ebp
pop ebp
ret 0x10