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

Disassembly:
sub esp, 0x68
push ebx
push ebp
push esi
push edi
push 0x1de7
mov edi, str.MAIN_DBG:_d_r_n
push edi
mov esi, 0x4aff28
push esi
mov dword [esp + 0x2c], ecx
call fcn.0040d391
add esp, 0xc
xor ebx, ebx
test byte [0x4b3003], 0x20
mov ebp, 0x44a
je 0x421052
push ebx
push ebx
push ebp
push dword [0x4ae2a8]
call fcn.0040ebf2
pop ecx
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x1ded
push edi
push esi
call fcn.0040d391
add esp, 0xc
push ebx
push ebx
push ebp
push dword [0x4afe14]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x1def
push edi
push esi
call fcn.0040d391
add esp, 0xc
cmp byte [0x4b3001], bl
je 0x42109b
cmp byte [0x4b3002], bl
jne 0x42109b
mov byte [0x4b3002], 1
call fcn.00420f88
push 0x1df1
push edi
push esi
call fcn.0040d391
add esp, 0xc
mov eax, dword [0x4affcc]
cmp eax, ebx
je 0x4210bc
cmp word [eax], bx
jne 0x4211d7
mov ecx, dword [esp + 0x20]
push ebx
call fcn.00415b3b
push dword [0x4affcc]
push 0x1df5
push 0x49b374
push esi
call fcn.0040d391
mov eax, dword [0x4affcc]
add esp, 0x10
cmp eax, ebx
je 0x4210f1
cmp word [eax], bx
jne 0x4211a7
mov dword [esp + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, eax
add ebp, 0x64
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, ebp
sub ecx, eax
cmp ecx, ebx
jle 0x4211a7
cmp byte [0x4ae290], bl
jle 0x4211a7
cmp ecx, ebx
jbe 0x421196
cmp ecx, 0x7d0
jbe 0x421131
mov ecx, 0x3e8
jmp 0x421139
cmp ecx, 0x64
jbe 0x421139
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x34]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x421196
cmp dword [esp + 0x18], ebx
jg 0x421162
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x42119e
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x42119e
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [esp + 0x18], ebx
jle 0x421196
dec dword [esp + 0x18]
cmp byte [0x4ae290], bl
jg 0x42114e
mov dword [esp + 0x18], ebx
jmp 0x421100
cmp byte [0x4afe04], bl
je 0x4210aa
cmp byte [0x4b02c8], bl
jne 0x4210aa
push ebx
push ebx
push 0x44b
push dword [0x4afe14]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4210aa
push 0x1dfb
push edi
push esi
call fcn.0040d391
mov ebp, dword [sym.imp.KERNEL32.dll_SleepEx]
add esp, 0xc
push 1
push 0xa
call ebp
call fcn.00416392
cmp byte [0x4b3001], bl
je 0x421213
cmp byte [0x4b3002], bl
jne 0x421213
mov byte [0x4b3002], 1
call fcn.00420f88
push dword [0x4affcc]
lea ecx, [esp + 0x18]
call fcn.004419bc
push dword [esp + 0x14]
call fcn.00420fa1
mov dword [esp + 0x28], eax
call fcn.00416361
push dword [esp + 0x28]
call fcn.0040d21c
pop ecx
pop ecx
push 1
push 0xa
mov dword [esp + 0x2c], eax
call ebp
mov eax, dword [esp + 0x14]
cmp word [eax], bx
mov byte [esp + 0x13], 2
je 0x421640
push 0x1e16
push edi
push esi
call fcn.0040d391
add esp, 0xc
call fcn.00415d81
test eax, eax
jne 0x421568
push 0x1e18
push edi
push esi
call fcn.0040d391
add esp, 0xc
cmp byte [0x4afe04], bl
je 0x4212a9
cmp byte [0x4b02c8], bl
jne 0x4212a9
push ebx
push ebx
push 0x44b
push dword [0x4afe14]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x14]
cmp word [eax], bx
je 0x421568
push 0x1e1b
push edi
push esi
call fcn.0040d391
push dword [esp + 0x30]
call fcn.0040c3c3
mov ebp, eax
push 8
push ebp
push str.Explorer
call fcn.00432c59
add esp, 0x1c
test al, al
je 0x4212f0
mov ax, word [ebp + 0x10]
cmp ax, 0x2e
je 0x4212f2
cmp ax, bx
je 0x4212f2
xor ebp, ebp
push 0x1e1d
push edi
push esi
call fcn.0040d391
add esp, 0xc
test byte [0x4b3003], 0x80
jne 0x421568
cmp ebp, ebx
je 0x421327
push ebx
push ebx
push ebx
push ebx
push ebp
call fcn.004148f2
add esp, 0x14
test eax, eax
jne 0x421568
call fcn.0040e9fc
push 0x1e20
push edi
push esi
call fcn.0040d391
add esp, 0xc
push ebx
push ebx
push 0x44a
push dword [0x4afe14]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x1e22
push edi
push esi
call fcn.0040d391
mov eax, 0x497994
push eax
push eax
call sym.PECMD.exe_LoadEnvi
add esp, 0x14
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push dword [esp + 0x14]
lea ecx, [esp + 0x20]
mov dword [esp + 0x2c], eax
call fcn.004419bc
push dword [esp + 0x1c]
call fcn.0040eae0
mov dword [esp], 0x1e29
push edi
push esi
mov ebp, eax
call fcn.0040d391
push dword [esp + 0x28]
push 0x1e2a
push 0x49b374
push esi
call fcn.0040d391
add esp, 0x1c
cmp byte [esp + 0x13], 2
mov eax, 0x49b370
jl 0x4213c1
mov eax, 0x49ad10
push eax
push str.BeforeStart
call fcn.0040ea95
cmp ebp, ebx
mov al, byte [esp + 0x1b]
pop ecx
pop ecx
mov ecx, dword [esp + 0x20]
push ebx
mov byte [0x4afeb8], al
push ebx
je 0x4213ed
push ebx
push dword [esp + 0x28]
call fcn.00427548
jmp 0x421406
push 7
lea eax, [esp + 0x24]
push eax
push ecx
push dword [esp + 0x30]
mov dword [esp + 0x30], 0x5e
call fcn.004074ae
push 0x49b370
push str.AfterTerm
mov byte [0x4afeb8], bl
call fcn.0040ea95
cmp byte [esp + 0x1b], 1
pop ecx
pop ecx
jle 0x421428
dec byte [esp + 0x13]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x28]
cmp eax, 0x7d0
jae 0x4214f6
mov dword [esp + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, eax
add ebp, 0x1f4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, ebp
sub ecx, eax
cmp ecx, ebx
jle 0x4214f6
cmp byte [0x4ae290], bl
jle 0x4214f6
cmp ecx, ebx
jbe 0x4214e5
cmp ecx, 0x7d0
jbe 0x421480
mov ecx, 0x3e8
jmp 0x421488
cmp ecx, 0x64
jbe 0x421488
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x3c]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x4214e5
cmp dword [esp + 0x18], ebx
jg 0x4214b1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x4214ed
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x50]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x4214ed
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x40]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [esp + 0x18], ebx
jle 0x4214e5
dec dword [esp + 0x18]
cmp byte [0x4ae290], bl
jg 0x42149d
mov dword [esp + 0x18], ebx
jmp 0x42144f
mov ecx, dword [esp + 0x20]
push ebx
call fcn.00415b3b
mov eax, dword [0x4affcc]
cmp eax, ebx
je 0x42155a
cmp word [eax], bx
je 0x42155a
push eax
lea ecx, [esp + 0x18]
call fcn.00441a24
push dword [esp + 0x14]
push 0x1e38
push 0x49b374
push esi
call fcn.0040d391
push dword [esp + 0x24]
call fcn.00420fa1
mov ebp, eax
call fcn.00416361
push ebp
call fcn.0040d21c
push eax
push 0x1e3c
push str.MAIN_DBG:_d_ShellName__s__r_n
push esi
mov dword [esp + 0x4c], eax
call fcn.0040d391
add esp, 0x28
lea ecx, [esp + 0x1c]
call fcn.00431c4c
jmp 0x42125b
mov dword [esp + 0x18], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ebp, eax
add ebp, 0x1f4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, ebp
sub ecx, eax
cmp ecx, ebx
jle 0x421621
cmp byte [0x4ae290], bl
jle 0x421621
cmp ecx, ebx
jbe 0x421610
cmp ecx, 0x7d0
jbe 0x4215ab
mov ecx, 0x3e8
jmp 0x4215b3
cmp ecx, 0x64
jbe 0x4215b3
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x44]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x421610
cmp dword [esp + 0x18], ebx
jg 0x4215dc
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x421618
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x6c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x421618
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x5c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [esp + 0x18], ebx
jle 0x421610
dec dword [esp + 0x18]
cmp byte [0x4ae290], bl
jg 0x4215c8
mov dword [esp + 0x18], ebx
jmp 0x42157a
mov ecx, dword [esp + 0x20]
push 0xffffffffffffffff
call fcn.00415b3b
push dword [0x4affcc]
lea ecx, [esp + 0x18]
call fcn.00441a24
jmp 0x42125b
lea ecx, [esp + 0x14]
call fcn.00431c4c
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x68
ret 4