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

Disassembly:
push ebp
lea ebp, [esp - 0x2a4]
sub esp, 0x324
mov eax, dword [0x47e5d0]
xor eax, ebp
mov dword [ebp + 0x2a0], eax
push esi
mov esi, dword [ebp + 0x2ac]
push edi
mov edi, dword [ebp + 0x2b0]
push 0x207
lea eax, [ebp + 0x99]
push 0
push eax
mov dword [ebp - 0x80], edi
mov byte [ebp + 0x98], 0
call fcn.00452e00
push 0x103
lea eax, [ebp - 0x6b]
push 0
push eax
mov byte [ebp - 0x6c], 0
call fcn.00452e00
add esp, 0x18
cmp esi, 7
ja 0x428e54
push ebx
mov ebx, esi
cmp edi, dword [ebx*4 + 0x480274]
jge 0x428e53
test edi, edi
js 0x428e53
mov eax, dword [ebx*4 + 0x481990]
test eax, eax
je 0x428e53
imul edi, edi, 0xf54
add eax, edi
je 0x428e53
mov ecx, dword [eax + 0x40]
cmp ecx, 1
jl 0x428e53
cmp ecx, 0x10
jg 0x428e53
and dword [eax + 0xf28], 0
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x484f80], eax
mov eax, dword [0x481960]
mov byte [eax], 0
mov eax, dword [0x4841ac]
test eax, eax
je 0x4289ce
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x4289ce
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x484f98]
cmp eax, 0x64
ja 0x428739
mov eax, dword [ebx*4 + 0x481990]
mov ecx, dword [eax + edi + 0x40]
cmp ecx, 0x10
jne 0x42871e
cmp byte [eax + edi], 0x43
jne 0x42871e
cmp byte [eax + edi + 1], 0x6f
je 0x428739
cmp ecx, 7
jne 0x4289ce
mov eax, ebx
shl eax, 6
cmp dword [eax + 0x484378], 0
jne 0x4289ce
push 0xc
lea eax, [ebp - 0x6c]
push eax
mov eax, ebx
imul eax, eax, 0x104
add eax, 0x4804f8
push eax
call fcn.00411eca
mov ecx, ebx
shl ecx, 6
lea eax, [ecx + 0x484b78]
mov dword [ebp - 0x78], eax
fld dword [eax]
fldz
fucompp
fnstsw ax
test ah, 0x44
mov eax, dword [ebx*4 + 0x481990]
jnp 0x4287ae
fld dword [ecx + 0x484778]
add eax, edi
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00454810
push eax
mov eax, dword [ebp - 0x78]
fld dword [eax]
call fcn.00454810
push eax
mov eax, dword [ebp - 0x80]
inc eax
push eax
lea eax, [ebp + 0x98]
push str.Step__d_:_Loop__d__d_:___s__n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
jmp 0x4287cf
add eax, edi
push eax
lea eax, [ebp - 0x6c]
push eax
mov eax, dword [ebp - 0x80]
inc eax
push eax
lea eax, [ebp + 0x98]
push str.Step__d_:___s__n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov eax, dword [ebx*4 + 0x481990]
mov ecx, dword [eax + edi + 0x50]
test ecx, ecx
je 0x4287e3
cmp byte [ecx], 0
jne 0x4287f0
mov eax, dword [eax + edi + 0x54]
cmp byte [eax], 0
je 0x428994
push 0x4699d4
lea eax, [ebp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x98]
push eax
call esi
lea ecx, [ebp + 0x98]
dec ecx
add eax, ecx
mov dword [ebp - 0x70], eax
mov eax, dword [ebx*4 + 0x481990]
mov ecx, dword [eax + edi + 0x50]
mov dl, byte [ecx]
mov byte [ebp - 0x79], dl
test dl, dl
mov edx, ecx
jne 0x428831
mov edx, dword [eax + edi + 0x54]
test edx, edx
je 0x42893c
cmp byte [ebp - 0x79], 0
je 0x428844
mov dword [ebp - 0x78], ecx
jmp 0x42884b
mov eax, dword [eax + edi + 0x54]
mov dword [ebp - 0x78], eax
lea eax, [ebp + 0x98]
push eax
call esi
push dword [ebp - 0x78]
mov dword [ebp - 0x74], 0x105
sub dword [ebp - 0x74], eax
call esi
inc eax
cmp dword [ebp - 0x74], eax
jge 0x42887b
lea eax, [ebp + 0x98]
push eax
call esi
mov ecx, 0x105
sub ecx, eax
jmp 0x428899
mov eax, dword [ebx*4 + 0x481990]
mov ecx, dword [eax + edi + 0x50]
cmp byte [ecx], 0
je 0x42888f
mov eax, ecx
jmp 0x428893
mov eax, dword [eax + edi + 0x54]
push eax
call esi
lea ecx, [eax + 1]
test ecx, ecx
jns 0x4288a1
xor ecx, ecx
jmp 0x42890b
mov eax, dword [ebx*4 + 0x481990]
mov ecx, dword [eax + edi + 0x50]
cmp byte [ecx], 0
je 0x4288b6
mov dword [ebp - 0x78], ecx
jmp 0x4288bd
mov eax, dword [eax + edi + 0x54]
mov dword [ebp - 0x78], eax
lea eax, [ebp + 0x98]
push eax
call esi
push dword [ebp - 0x78]
mov dword [ebp - 0x74], 0x105
sub dword [ebp - 0x74], eax
call esi
inc eax
cmp dword [ebp - 0x74], eax
jge 0x4288ed
lea eax, [ebp + 0x98]
push eax
call esi
mov ecx, 0x105
sub ecx, eax
jmp 0x42890b
mov eax, dword [ebx*4 + 0x481990]
mov ecx, dword [eax + edi + 0x50]
cmp byte [ecx], 0
je 0x428901
mov eax, ecx
jmp 0x428905
mov eax, dword [eax + edi + 0x54]
push eax
call esi
lea ecx, [eax + 1]
mov eax, dword [ebx*4 + 0x481990]
mov edx, dword [eax + edi + 0x50]
cmp byte [edx], 0
je 0x42891f
mov eax, edx
jmp 0x428923
mov eax, dword [eax + edi + 0x54]
push ecx
push eax
lea eax, [ebp + 0x98]
push eax
call esi
lea eax, [ebp + eax + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x428982
mov ecx, eax
mov dl, byte [ecx]
test dl, dl
je 0x428956
cmp dl, 0xd
jne 0x428953
mov byte [ecx], 0x20
inc ecx
jmp 0x428945
test eax, eax
je 0x428982
mov ecx, eax
mov dl, byte [ecx]
test dl, dl
je 0x42896d
cmp dl, 0xa
jne 0x42896a
mov byte [ecx], 0x20
inc ecx
jmp 0x42895c
test eax, eax
je 0x428982
mov cl, byte [eax]
test cl, cl
je 0x428982
cmp cl, 9
jne 0x42897f
mov byte [eax], 0x20
inc eax
jmp 0x428971
push 0x465ee0
lea eax, [ebp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x98]
push eax
push dword [0x4841ac]
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 1
push 0
push dword [0x4841ac]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [0x4841ac]
call dword [sym.imp.USER32.dll_UpdateWindow]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x484f98], eax
cmp byte [0x4840a0], 0
jne 0x428a07
mov eax, dword [0x480100]
test eax, eax
je 0x428db6
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x428db6
push dword [0x480100]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x428db6
mov eax, dword [ebx*4 + 0x481990]
add eax, edi
cmp byte [0x4840a0], 2
push eax
jb 0x428a51
call fcn.004245be
push eax
call fcn.00424584
push eax
call fcn.0042454a
push eax
call fcn.00424510
push eax
mov eax, dword [ebp - 0x80]
inc eax
push eax
lea eax, [ebp + 0x98]
push str._STEP__d____02lu:_02lu:_02lu._04lu_:___s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x20
jmp 0x428b19
mov eax, dword [ebp - 0x80]
inc eax
push eax
lea eax, [ebp + 0x98]
push str._STEP__d_:__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
mov eax, dword [0x480314]
mov eax, dword [eax*4 + 0x481990]
add eax, edi
add esp, 0x10
cmp dword [eax + 0x40], 0xe
jne 0x428aa5
add eax, 0x58
push str.ELSE_IF
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x428aa5
push str._ELSE
lea eax, [ebp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [0x480314]
mov eax, dword [eax*4 + 0x481990]
add eax, edi
cmp dword [eax + 0x40], 0xe
jne 0x428adf
add eax, 0x58
push str.IF_NOT
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x428adf
push str._NOT
lea eax, [ebp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [0x480314]
mov eax, dword [eax*4 + 0x481990]
add eax, edi
cmp dword [eax + 0x40], 0xe
jne 0x428b19
add eax, 0x58
push str.QUICK
push eax
call fcn.004010ff
pop ecx
pop ecx
test eax, eax
je 0x428b19
push str.__checkpoint_
lea eax, [ebp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebx*4 + 0x481990]
add eax, edi
mov ecx, dword [eax + 0x50]
test ecx, ecx
je 0x428b2e
cmp byte [ecx], 0
jne 0x428b4c
lea ecx, [eax + 0x364]
test ecx, ecx
je 0x428b3d
cmp byte [ecx], 0
jne 0x428b4c
lea ecx, [eax + 0x468]
test ecx, ecx
je 0x428b51
cmp byte [ecx], 0
je 0x428b51
mov dword [ebp - 0x70], ecx
jmp 0x428b68
mov eax, dword [eax + 0x54]
test eax, eax
je 0x428c35
cmp byte [eax], 0
je 0x428c35
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x70], 0
je 0x428c35
mov eax, dword [ebp - 0x70]
cmp byte [eax], 0
je 0x428c35
push 0x4699d4
lea eax, [ebp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x98]
push eax
call esi
push dword [ebp - 0x70]
mov dword [ebp - 0x74], 0xe5
sub dword [ebp - 0x74], eax
call esi
inc eax
cmp dword [ebp - 0x74], eax
jge 0x428bc0
lea eax, [ebp + 0x98]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
jmp 0x428bc8
push dword [ebp - 0x70]
call esi
lea ecx, [eax + 1]
test ecx, ecx
jns 0x428bd0
xor ecx, ecx
jmp 0x428c08
lea eax, [ebp + 0x98]
push eax
call esi
push dword [ebp - 0x70]
mov dword [ebp - 0x74], 0xe5
sub dword [ebp - 0x74], eax
call esi
inc eax
cmp dword [ebp - 0x74], eax
jge 0x428c00
lea eax, [ebp + 0x98]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
jmp 0x428c08
push dword [ebp - 0x70]
call esi
lea ecx, [eax + 1]
push ecx
push dword [ebp - 0x70]
lea eax, [ebp + 0x98]
push eax
call esi
lea eax, [ebp + eax + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 0x465ee0
lea eax, [ebp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [0x4840a0], 2
jb 0x428d2e
mov eax, dword [ebx*4 + 0x481990]
cmp byte [edi + eax + 0x58], 0
je 0x428d2e
push str.__Options:
lea eax, [ebp + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [ebx*4 + 0x481990]
lea eax, [edi + eax + 0x58]
test eax, eax
je 0x428d2e
push eax
call esi
inc eax
mov dword [ebp - 0x78], eax
lea eax, [ebp + 0x98]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
cmp ecx, dword [ebp - 0x78]
jge 0x428ca7
lea eax, [ebp + 0x98]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
jmp 0x428cb8
mov eax, dword [ebx*4 + 0x481990]
lea eax, [edi + eax + 0x58]
push eax
call esi
lea ecx, [eax + 1]
test ecx, ecx
jns 0x428cc0
xor ecx, ecx
jmp 0x428d0a
mov eax, dword [ebx*4 + 0x481990]
lea eax, [edi + eax + 0x58]
push eax
call esi
inc eax
mov dword [ebp - 0x78], eax
lea eax, [ebp + 0x98]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
cmp ecx, dword [ebp - 0x78]
jge 0x428cf9
lea eax, [ebp + 0x98]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
jmp 0x428d0a
mov eax, dword [ebx*4 + 0x481990]
lea eax, [edi + eax + 0x58]
push eax
call esi
lea ecx, [eax + 1]
mov eax, dword [ebx*4 + 0x481990]
push ecx
lea eax, [edi + eax + 0x58]
push eax
lea eax, [ebp + 0x98]
push eax
call esi
lea eax, [ebp + eax + 0x98]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x98]
mov dword [ebp - 0x70], eax
mov eax, dword [ebp - 0x70]
mov al, byte [eax]
test al, al
je 0x428d64
cmp al, 0xd
je 0x428d49
inc dword [ebp - 0x70]
jmp 0x428d37
mov eax, dword [ebp - 0x70]
inc eax
push eax
call esi
inc eax
push eax
mov eax, dword [ebp - 0x70]
inc eax
push eax
push dword [ebp - 0x70]
call fcn.00452ea0
add esp, 0xc
jmp 0x428d37
lea eax, [ebp + 0x98]
mov cl, byte [eax]
test cl, cl
je 0x428d7b
cmp cl, 0xa
jne 0x428d78
mov byte [eax], 0x20
inc eax
jmp 0x428d6a
lea eax, [ebp + 0x98]
mov cl, byte [eax]
test cl, cl
je 0x428d92
cmp cl, 9
jne 0x428d8f
mov byte [eax], 0x20
inc eax
jmp 0x428d81
lea eax, [ebp + 0x98]
mov cl, byte [eax]
test cl, cl
je 0x428da9
cmp cl, 0x25
jne 0x428da6
mov byte [eax], 0xb0
inc eax
jmp 0x428d98
lea eax, [ebp + 0x98]
push eax
call fcn.0042604a
pop ecx
mov eax, dword [0x4800d4]
test eax, eax
je 0x428e00
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x428e00
push dword [0x4800d4]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x428e00
mov eax, dword [ebx*4 + 0x481990]
add eax, edi
push eax
mov eax, dword [ebp - 0x80]
inc eax
push eax
push str.__STEP__d_:___s
push 0
push 0
push dword [0x4800d4]
call fcn.00424cda
add esp, 0x18
mov eax, dword [0x4800d8]
test eax, eax
je 0x428e53
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x428e53
push dword [0x4800d8]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x428e53
mov eax, dword [ebx*4 + 0x480274]
xor ecx, ecx
inc eax
inc ecx
cmp eax, ecx
jl 0x428e35
mov ecx, eax
mov eax, dword [ebp - 0x80]
inc eax
imul eax, eax, 0x64
cdq
idiv ecx
push 0
push eax
push 0x402
push dword [0x4800d8]
call dword [sym.imp.USER32.dll_SendMessageA]
pop ebx
mov ecx, dword [ebp + 0x2a0]
pop edi
xor ecx, ebp
pop esi
call fcn.00452dee
add ebp, 0x2a4
leave
ret 8