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

Disassembly:
sub esp, 0x64
push ebx
push ebp
push esi
push edi
push 0x1d66
mov edi, str.MAIN_DBG:_d_r_n
push edi
mov esi, 0x4acf10
push esi
mov dword [esp + 0x28], ecx
call fcn.0040cde2
add esp, 0xc
xor ebx, ebx
test byte [0x4b0003], 0x20
mov ebp, 0x44a
je 0x42019c
push ebx
push ebx
push ebp
push dword [0x4ab2a8]
call fcn.0040e444
pop ecx
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x1d6c
push edi
push esi
call fcn.0040cde2
add esp, 0xc
push ebx
push ebx
push ebp
push dword [0x4ace08]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x1d6e
push edi
push esi
call fcn.0040cde2
add esp, 0xc
cmp byte [0x4b0001], bl
je 0x4201e5
cmp byte [0x4b0002], bl
jne 0x4201e5
mov byte [0x4b0002], 1
call fcn.004200d2
push 0x1d70
push edi
push esi
call fcn.0040cde2
add esp, 0xc
mov eax, dword [0x4acfb4]
cmp eax, ebx
je 0x420206
cmp word [eax], bx
jne 0x420321
mov ecx, dword [esp + 0x1c]
push ebx
call fcn.00414e2d
push dword [0x4acfb4]
push 0x1d74
push str.MAIN_DBG:_d_MyShell__s__r_n
push esi
call fcn.0040cde2
mov eax, dword [0x4acfb4]
add esp, 0x10
cmp eax, ebx
je 0x42023b
cmp word [eax], bx
jne 0x4202f1
mov dword [esp + 0x14], 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 0x4202f1
cmp byte [0x4ab290], bl
jle 0x4202f1
cmp ecx, ebx
jbe 0x4202e0
cmp ecx, 0x7d0
jbe 0x42027b
mov ecx, 0x3e8
jmp 0x420283
cmp ecx, 0x64
jbe 0x420283
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x30]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x4202e0
cmp dword [esp + 0x14], ebx
jg 0x4202ac
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x4202e8
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x4202e8
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [esp + 0x14], ebx
jle 0x4202e0
dec dword [esp + 0x14]
cmp byte [0x4ab290], bl
jg 0x420298
mov dword [esp + 0x14], ebx
jmp 0x42024a
cmp byte [0x4acdf8], bl
je 0x4201f4
cmp byte [0x4ad2b0], bl
jne 0x4201f4
push ebx
push ebx
push 0x44b
push dword [0x4ace08]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x4201f4
push 0x1d7a
push edi
push esi
call fcn.0040cde2
mov ebp, dword [sym.imp.KERNEL32.DLL_SleepEx]
add esp, 0xc
push 1
push 0xa
call ebp
call fcn.00415680
cmp byte [0x4b0001], bl
je 0x42035d
cmp byte [0x4b0002], bl
jne 0x42035d
mov byte [0x4b0002], 1
call fcn.004200d2
push dword [0x4acfb4]
lea ecx, [esp + 0x14]
call fcn.004403c3
push dword [esp + 0x10]
call fcn.004200eb
mov dword [esp + 0x24], eax
call fcn.0041564f
push dword [esp + 0x24]
call fcn.0040cd51
pop ecx
pop ecx
push 1
push 0xa
mov dword [esp + 0x28], eax
call ebp
mov eax, dword [esp + 0x10]
cmp word [eax], bx
je 0x42073c
push 0x1d95
push edi
push esi
call fcn.0040cde2
add esp, 0xc
call fcn.00415070
test eax, eax
jne 0x420664
push 0x1d97
push edi
push esi
call fcn.0040cde2
add esp, 0xc
cmp byte [0x4acdf8], bl
je 0x4203ee
cmp byte [0x4ad2b0], bl
jne 0x4203ee
push ebx
push ebx
push 0x44b
push dword [0x4ace08]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x10]
cmp word [eax], bx
je 0x420664
push 0x1d9a
push edi
push esi
call fcn.0040cde2
push dword [esp + 0x2c]
call fcn.0040bfe2
mov ebp, eax
push 8
push ebp
push str.Explorer
call fcn.004318b1
add esp, 0x1c
test al, al
je 0x420435
mov ax, word [ebp + 0x10]
cmp ax, 0x2e
je 0x420437
cmp ax, bx
je 0x420437
xor ebp, ebp
push 0x1d9c
push edi
push esi
call fcn.0040cde2
add esp, 0xc
test byte [0x4b0003], 0x80
jne 0x420664
cmp ebp, ebx
je 0x42046c
push ebx
push ebx
push ebx
push ebx
push ebp
call fcn.00413dfd
add esp, 0x14
test eax, eax
jne 0x420664
call fcn.0040e306
push 0x1d9f
push edi
push esi
call fcn.0040cde2
add esp, 0xc
push ebx
push ebx
push 0x44a
push dword [0x4ace08]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x1da1
push edi
push esi
call fcn.0040cde2
mov eax, 0x4949a4
push eax
push eax
call sym.PECMD.exe_LoadEnvi
add esp, 0x14
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
push dword [esp + 0x10]
lea ecx, [esp + 0x1c]
mov dword [esp + 0x28], eax
call fcn.004403c3
push dword [esp + 0x18]
call fcn.0040e3a1
mov dword [esp], 0x1da8
push edi
push esi
mov ebp, eax
call fcn.0040cde2
push dword [esp + 0x24]
push 0x1da9
push str.MAIN_DBG:_d_MyShell__s__r_n
push esi
call fcn.0040cde2
mov ecx, dword [esp + 0x38]
add esp, 0x1c
cmp ebp, ebx
push ebx
push ebx
je 0x42050b
push ebx
push dword [esp + 0x24]
call fcn.00426546
jmp 0x420524
push 7
lea eax, [esp + 0x20]
push eax
push ecx
push dword [esp + 0x2c]
mov dword [esp + 0x2c], 0x5e
call fcn.004072ee
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
sub eax, dword [esp + 0x24]
cmp eax, 0x7d0
jae 0x4205f2
mov dword [esp + 0x14], 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 0x4205f2
cmp byte [0x4ab290], bl
jle 0x4205f2
cmp ecx, ebx
jbe 0x4205e1
cmp ecx, 0x7d0
jbe 0x42057c
mov ecx, 0x3e8
jmp 0x420584
cmp ecx, 0x64
jbe 0x420584
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x38]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x4205e1
cmp dword [esp + 0x14], ebx
jg 0x4205ad
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x4205e9
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x4c]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x4205e9
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [esp + 0x14], ebx
jle 0x4205e1
dec dword [esp + 0x14]
cmp byte [0x4ab290], bl
jg 0x420599
mov dword [esp + 0x14], ebx
jmp 0x42054b
mov ecx, dword [esp + 0x1c]
push ebx
call fcn.00414e2d
mov eax, dword [0x4acfb4]
cmp eax, ebx
je 0x420656
cmp word [eax], bx
je 0x420656
push eax
lea ecx, [esp + 0x14]
call fcn.0044042b
push dword [esp + 0x10]
push 0x1db1
push str.MAIN_DBG:_d_MyShell__s__r_n
push esi
call fcn.0040cde2
push dword [esp + 0x20]
call fcn.004200eb
mov ebp, eax
call fcn.0041564f
push ebp
call fcn.0040cd51
push eax
push 0x1db5
push str.MAIN_DBG:_d_ShellName__s__r_n
push esi
mov dword [esp + 0x48], eax
call fcn.0040cde2
add esp, 0x28
lea ecx, [esp + 0x18]
call fcn.0043092f
jmp 0x4203a0
mov dword [esp + 0x14], 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 0x42071d
cmp byte [0x4ab290], bl
jle 0x42071d
cmp ecx, ebx
jbe 0x42070c
cmp ecx, 0x7d0
jbe 0x4206a7
mov ecx, 0x3e8
jmp 0x4206af
cmp ecx, 0x64
jbe 0x4206af
push 0x64
pop ecx
push 0x4bf
push ecx
push ebx
lea eax, [esp + 0x40]
push eax
push ebx
call dword [sym.imp.USER32.dll_MsgWaitForMultipleObjects]
jmp 0x42070c
cmp dword [esp + 0x14], ebx
jg 0x4206d8
call dword [sym.imp.KERNEL32.DLL_GetTickCount]
mov ecx, ebp
sub ecx, eax
test ecx, ecx
jle 0x420714
push 3
push ebx
push ebx
push ebx
lea eax, [esp + 0x68]
push eax
call dword [sym.imp.USER32.dll_PeekMessageW]
test eax, eax
je 0x420714
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.USER32.dll_TranslateMessage]
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.USER32.dll_DispatchMessageW]
cmp dword [esp + 0x14], ebx
jle 0x42070c
dec dword [esp + 0x14]
cmp byte [0x4ab290], bl
jg 0x4206c4
mov dword [esp + 0x14], ebx
jmp 0x420676
mov ecx, dword [esp + 0x1c]
push 0xffffffffffffffff
call fcn.00414e2d
push dword [0x4acfb4]
lea ecx, [esp + 0x14]
call fcn.0044042b
jmp 0x4203a0
lea ecx, [esp + 0x10]
call fcn.0043092f
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 4