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

Disassembly:
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
push 0x2570
mov edi, str.MAIN_DBG:_d_r_n
mov ebp, ecx
push edi
mov esi, 0x4d80e0
push esi
mov dword [esp + 0x24], ebp
call fcn.00410bfe
add esp, 0xc
xor ebx, ebx
test byte [0x4db003], 0x20
je 0x42ac08
push ebx
push ebx
push 0x44a
push dword [0x4d62ec]
call fcn.00412010
pop ecx
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x2576
push edi
push esi
call fcn.00410bfe
add esp, 0xc
push ebx
push ebx
push 0x44a
push dword [0x4d7f9c]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x2578
push edi
push esi
call fcn.00410bfe
add esp, 0xc
cmp byte [0x4db001], bl
je 0x42ac55
cmp byte [0x4db002], bl
jne 0x42ac55
mov byte [0x4db002], 1
call fcn.00421fe8
push 0x257a
push edi
push esi
call fcn.00410bfe
add esp, 0xc
mov eax, dword [0x4d80b8]
cmp eax, ebx
je 0x42ac72
cmp word [eax], bx
jne 0x42acd8
push ebx
mov ecx, ebp
call fcn.004183e2
push dword [0x4d80b8]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x257e
push str.MAIN_DBG:_d__u_MyShell__s__r_n
push esi
call fcn.00410bfe
mov eax, dword [0x4d80b8]
add esp, 0x14
cmp eax, ebx
je 0x42aca8
cmp word [eax], bx
jne 0x42acb3
push ebx
push ebx
push 0x64
mov ecx, ebp
call fcn.00415bb5
cmp byte [0x4d7f8c], bl
je 0x42ac64
cmp byte [0x4d88e0], bl
jne 0x42ac64
push ebx
push ebx
push 0x44b
push dword [0x4d7f9c]
call dword [sym.imp.USER32.dll_SendMessageW]
jmp 0x42ac64
push 0x2584
push edi
push esi
call fcn.00410bfe
mov ebp, dword [sym.imp.KERNEL32.dll_SleepEx]
add esp, 0xc
push 1
push 0xa
call ebp
call fcn.00418bc2
cmp byte [0x4db001], bl
je 0x42ad14
cmp byte [0x4db002], bl
jne 0x42ad14
mov byte [0x4db002], 1
call fcn.00421fe8
push dword [0x4d80b8]
lea ecx, [esp + 0x18]
call fcn.0044cf2d
push dword [esp + 0x14]
call fcn.00422001
mov dword [esp + 0x28], eax
call fcn.00418b91
push dword [esp + 0x28]
call fcn.00410a7a
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 0x42b028
mov ebp, 0x4bca2c
push 0x259f
push edi
push esi
call fcn.00410bfe
add esp, 0xc
call fcn.00418655
test eax, eax
jne 0x42aff9
push 0x25a1
push edi
push esi
call fcn.00410bfe
add esp, 0xc
cmp byte [0x4d7f8c], bl
je 0x42adaf
cmp byte [0x4d88e0], bl
jne 0x42adaf
push ebx
push ebx
push 0x44b
push dword [0x4d7f9c]
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [esp + 0x14]
cmp word [eax], bx
je 0x42aff9
push 0x25a4
push edi
push esi
call fcn.00410bfe
push dword [esp + 0x30]
call fcn.0040f8e2
push 8
push eax
push str.Explorer
mov dword [esp + 0x3c], eax
call fcn.0043f11b
add esp, 0x1c
test al, al
je 0x42ae02
mov ecx, dword [esp + 0x20]
mov ax, word [ecx + 0x10]
cmp ax, 0x2e
je 0x42adfc
cmp ax, bx
jne 0x42ae02
mov dword [esp + 0x20], ecx
jmp 0x42ae06
mov dword [esp + 0x20], ebx
push 0x25a6
push edi
push esi
call fcn.00410bfe
add esp, 0xc
test byte [0x4db003], 0x80
jne 0x42aff9
cmp dword [esp + 0x20], ebx
je 0x42ae40
push ebx
push ebx
push ebx
push ebx
push dword [esp + 0x30]
call fcn.00417b89
add esp, 0x14
test eax, eax
jne 0x42aff9
call fcn.00411ea2
push 0x25a9
push edi
push esi
call fcn.00410bfe
add esp, 0xc
push ebx
push ebx
push 0x44a
push dword [0x4d7f9c]
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x25ab
push edi
push esi
call fcn.00410bfe
push ebp
push ebp
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.0044cf2d
push dword [esp + 0x1c]
call fcn.00411f90
mov dword [esp], 0x25b2
push edi
push esi
mov dword [esp + 0x2c], eax
call fcn.00410bfe
add esp, 0xc
push dword [esp + 0x1c]
call dword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
push eax
push 0x25b3
push str.MAIN_DBG:_d__u_MyShell__s__r_n
push esi
call fcn.00410bfe
add esp, 0x14
cmp byte [esp + 0x13], 2
mov eax, 0x4c1260
jl 0x42aee1
mov eax, 0x4c07c4
push eax
push str.BeforeStart
call fcn.0042aad8
cmp dword [esp + 0x28], ebx
mov al, byte [esp + 0x1b]
pop ecx
pop ecx
mov ecx, dword [esp + 0x18]
push ebx
push ebx
mov byte [0x4d802c], al
push ebx
je 0x42af0f
push dword [esp + 0x28]
call fcn.0043362f
jmp 0x42af28
push 7
lea eax, [esp + 0x30]
push eax
push ecx
push dword [esp + 0x34]
mov dword [esp + 0x3c], 0x5e
call fcn.0040a2d5
push 0x4c1260
push str.AfterTerm
mov byte [0x4d802c], bl
call fcn.0042aad8
cmp byte [esp + 0x1b], 1
pop ecx
pop ecx
jle 0x42af4a
dec byte [esp + 0x13]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esp + 0x28]
cmp eax, 0x7d0
jae 0x42af85
push ebx
push ebx
push 0x1f4
jmp 0x42af7c
mov cx, word [eax]
cmp cx, bx
je 0x42afeb
cmp cx, 0x2a
jne 0x42af9a
cmp word [eax + 2], bx
jne 0x42af9a
push ebx
push ebx
push 0x64
mov ecx, dword [esp + 0x24]
call fcn.00415bb5
mov ecx, dword [esp + 0x18]
push ebx
call fcn.004183e2
mov eax, dword [0x4d80b8]
cmp eax, ebx
jne 0x42af64
jmp 0x42afeb
push eax
lea ecx, [esp + 0x18]
call fcn.0044cf95
push dword [esp + 0x14]
push 0x25c1
push str.MAIN_DBG:_d_MyShell__s__r_n
push esi
call fcn.00410bfe
push dword [esp + 0x24]
call fcn.00422001
mov dword [esp + 0x3c], eax
call fcn.00418b91
push dword [esp + 0x3c]
call fcn.00410a7a
push eax
push 0x25c5
push str.MAIN_DBG:_d_ShellName__s__r_n
push esi
mov dword [esp + 0x4c], eax
call fcn.00410bfe
add esp, 0x28
lea ecx, [esp + 0x1c]
call fcn.0043dd41
jmp 0x42ad61
mov ecx, dword [esp + 0x18]
push ebx
push ebx
push 0x1f4
call fcn.00415bb5
mov ecx, dword [esp + 0x18]
push 0xffffffffffffffff
call fcn.004183e2
push dword [0x4d80b8]
lea ecx, [esp + 0x18]
call fcn.0044cf95
jmp 0x42ad61
lea ecx, [esp + 0x14]
call fcn.0043dd41
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1c
ret 4