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

Disassembly:
push ebp
lea ebp, [esp - 0x298]
sub esp, 0x318
mov eax, dword [0x4705d0]
xor eax, ebp
mov dword [ebp + 0x294], eax
push 0x207
lea eax, [ebp + 0x8d]
push 0
push eax
mov byte [ebp + 0x8c], 0
call fcn.004464f0
push 0x103
lea eax, [ebp - 0x77]
push 0
push eax
mov byte [ebp - 0x78], 0
call fcn.004464f0
mov eax, dword [ebp + 0x2a0]
add esp, 0x18
cmp eax, 7
ja 0x42303c
push ebx
mov ebx, dword [ebp + 0x2a4]
push edi
mov edi, eax
shl edi, 2
cmp ebx, dword [edi + 0x4725d4]
jge 0x42303a
test ebx, ebx
jl 0x42303a
mov eax, dword [edi + 0x473bec]
test eax, eax
je 0x42303a
imul ebx, ebx, 0xf54
add eax, ebx
je 0x42303a
mov ecx, dword [eax + 0x40]
cmp ecx, 1
jl 0x42303a
cmp ecx, 0x10
jg 0x42303a
and dword [eax + 0xf28], 0
push esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
mov dword [0x477134], eax
mov eax, dword [0x473bbc]
mov byte [eax], 0
mov eax, dword [0x476364]
test eax, eax
je 0x422c61
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x422c61
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [0x47714c]
cmp eax, 0x64
jbe 0x422c61
mov eax, dword [edi + 0x473bec]
push str.Comment
add eax, ebx
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpA]
test eax, eax
je 0x422c61
push 0xc
lea eax, [ebp - 0x78]
push eax
mov eax, dword [ebp + 0x2a0]
imul eax, eax, 0x104
add eax, 0x472858
push eax
call fcn.0040dac4
mov ecx, dword [ebp + 0x2a0]
fldz
shl ecx, 6
lea eax, [ecx + 0x476d28]
mov dword [ebp - 0x80], eax
fcomp dword [eax]
fnstsw ax
test ah, 0x44
mov eax, dword [edi + 0x473bec]
jnp 0x422aaa
fld dword [ecx + 0x476928]
add eax, ebx
push eax
lea eax, [ebp - 0x78]
push eax
call fcn.00448380
push eax
mov eax, dword [ebp - 0x80]
fld dword [eax]
call fcn.00448380
push eax
mov eax, dword [ebp + 0x2a4]
inc eax
push eax
lea eax, [ebp + 0x8c]
push str.Step__d_:_Loop__d__d_:___s__n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x1c
jmp 0x422ace
add eax, ebx
push eax
lea eax, [ebp - 0x78]
push eax
mov eax, dword [ebp + 0x2a4]
inc eax
push eax
lea eax, [ebp + 0x8c]
push str.Step__d_:___s__n
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x14
mov eax, dword [edi + 0x473bec]
mov eax, dword [ebx + eax + 0x50]
test eax, eax
je 0x422c27
cmp byte [eax], 0
je 0x422c27
push 0x45e108
lea eax, [ebp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x8c]
push eax
call esi
lea ecx, [ebp + 0x8c]
dec ecx
add eax, ecx
mov dword [ebp - 0x7c], eax
mov eax, dword [edi + 0x473bec]
mov eax, dword [ebx + eax + 0x50]
test eax, eax
je 0x422bcf
push eax
call esi
inc eax
mov dword [ebp - 0x80], eax
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0x105
sub ecx, eax
cmp ecx, dword [ebp - 0x80]
jge 0x422b50
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0x105
sub ecx, eax
jmp 0x422b5f
mov eax, dword [edi + 0x473bec]
push dword [ebx + eax + 0x50]
call esi
mov ecx, eax
inc ecx
test ecx, ecx
jge 0x422b67
xor ecx, ecx
jmp 0x422bad
mov eax, dword [edi + 0x473bec]
push dword [ebx + eax + 0x50]
call esi
inc eax
mov dword [ebp - 0x80], eax
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0x105
sub ecx, eax
cmp ecx, dword [ebp - 0x80]
jge 0x422b9e
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0x105
sub ecx, eax
jmp 0x422bad
mov eax, dword [edi + 0x473bec]
push dword [ebx + eax + 0x50]
call esi
mov ecx, eax
inc ecx
mov eax, dword [edi + 0x473bec]
push ecx
push dword [ebx + eax + 0x50]
lea eax, [ebp + 0x8c]
push eax
call esi
lea eax, [ebp + eax + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
mov eax, dword [ebp - 0x7c]
test eax, eax
je 0x422c15
mov ecx, eax
mov dl, byte [ecx]
test dl, dl
je 0x422be9
cmp dl, 0xd
jne 0x422be6
mov byte [ecx], 0x20
inc ecx
jmp 0x422bd8
test eax, eax
je 0x422c15
mov ecx, eax
mov dl, byte [ecx]
test dl, dl
je 0x422c00
cmp dl, 0xa
jne 0x422bfd
mov byte [ecx], 0x20
inc ecx
jmp 0x422bef
test eax, eax
je 0x422c15
mov cl, byte [eax]
test cl, cl
je 0x422c15
cmp cl, 9
jne 0x422c12
mov byte [eax], 0x20
inc eax
jmp 0x422c04
push 0x45aca0
lea eax, [ebp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x8c]
push eax
push dword [0x476364]
call dword [sym.imp.USER32.dll_SetWindowTextA]
push 1
push 0
push dword [0x476364]
call dword [sym.imp.USER32.dll_InvalidateRect]
push dword [0x476364]
call dword [sym.imp.USER32.dll_UpdateWindow]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x47714c], eax
cmp byte [0x476258], 0
jne 0x422c9a
mov eax, dword [0x472460]
test eax, eax
je 0x422f96
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x422f96
push dword [0x472460]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x422f96
mov eax, dword [edi + 0x473bec]
add eax, ebx
cmp byte [0x476258], 2
push eax
jb 0x422ce3
call fcn.0041e802
push eax
call fcn.0041e7dc
push eax
call fcn.0041e7b6
push eax
call fcn.0041e790
push eax
mov eax, dword [ebp + 0x2a4]
inc eax
push eax
lea eax, [ebp + 0x8c]
push str._STEP__d____02lu:_02lu:_02lu._04lu_:___s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x20
jmp 0x422d00
mov eax, dword [ebp + 0x2a4]
inc eax
push eax
lea eax, [ebp + 0x8c]
push str._STEP__d_:__s
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
mov eax, dword [edi + 0x473bec]
add eax, ebx
mov ecx, dword [eax + 0x50]
test ecx, ecx
je 0x422d14
cmp byte [ecx], 0
jne 0x422d32
lea ecx, [eax + 0x364]
test ecx, ecx
je 0x422d23
cmp byte [ecx], 0
jne 0x422d32
lea ecx, [eax + 0x468]
test ecx, ecx
je 0x422d37
cmp byte [ecx], 0
je 0x422d37
mov dword [ebp - 0x7c], ecx
jmp 0x422d4e
mov eax, dword [eax + 0x54]
test eax, eax
je 0x422e1b
cmp byte [eax], 0
je 0x422e1b
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x7c], 0
je 0x422e1b
mov eax, dword [ebp - 0x7c]
cmp byte [eax], 0
je 0x422e1b
push 0x45e108
lea eax, [ebp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp + 0x8c]
push eax
call esi
push dword [ebp - 0x7c]
mov dword [ebp - 0x80], 0xe5
sub dword [ebp - 0x80], eax
call esi
inc eax
cmp dword [ebp - 0x80], eax
jge 0x422da6
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
jmp 0x422dae
push dword [ebp - 0x7c]
call esi
mov ecx, eax
inc ecx
test ecx, ecx
jge 0x422db6
xor ecx, ecx
jmp 0x422dee
lea eax, [ebp + 0x8c]
push eax
call esi
push dword [ebp - 0x7c]
mov dword [ebp - 0x80], 0xe5
sub dword [ebp - 0x80], eax
call esi
inc eax
cmp dword [ebp - 0x80], eax
jge 0x422de6
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
jmp 0x422dee
push dword [ebp - 0x7c]
call esi
mov ecx, eax
inc ecx
push ecx
push dword [ebp - 0x7c]
lea eax, [ebp + 0x8c]
push eax
call esi
lea eax, [ebp + eax + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
push 0x45aca0
lea eax, [ebp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [0x476258], 2
jb 0x422f0e
mov eax, dword [edi + 0x473bec]
cmp byte [ebx + eax + 0x58], 0
je 0x422f0e
push str.__Options:
lea eax, [ebp + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
mov eax, dword [edi + 0x473bec]
lea eax, [ebx + eax + 0x58]
test eax, eax
je 0x422f0e
push eax
call esi
inc eax
mov dword [ebp - 0x80], eax
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
cmp ecx, dword [ebp - 0x80]
jge 0x422e8b
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
jmp 0x422e9b
mov eax, dword [edi + 0x473bec]
lea eax, [ebx + eax + 0x58]
push eax
call esi
mov ecx, eax
inc ecx
test ecx, ecx
jge 0x422ea3
xor ecx, ecx
jmp 0x422eeb
mov eax, dword [edi + 0x473bec]
lea eax, [ebx + eax + 0x58]
push eax
call esi
inc eax
mov dword [ebp - 0x80], eax
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
cmp ecx, dword [ebp - 0x80]
jge 0x422edb
lea eax, [ebp + 0x8c]
push eax
call esi
mov ecx, 0xe5
sub ecx, eax
jmp 0x422eeb
mov eax, dword [edi + 0x473bec]
lea eax, [ebx + eax + 0x58]
push eax
call esi
mov ecx, eax
inc ecx
mov eax, dword [edi + 0x473bec]
push ecx
lea eax, [ebx + eax + 0x58]
push eax
lea eax, [ebp + 0x8c]
push eax
call esi
lea eax, [ebp + eax + 0x8c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynA]
lea eax, [ebp + 0x8c]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x7c]
mov al, byte [eax]
test al, al
je 0x422f44
cmp al, 0xd
je 0x422f29
inc dword [ebp - 0x7c]
jmp 0x422f17
mov eax, dword [ebp - 0x7c]
inc eax
push eax
call esi
inc eax
push eax
mov eax, dword [ebp - 0x7c]
inc eax
push eax
push dword [ebp - 0x7c]
call fcn.00446570
add esp, 0xc
jmp 0x422f17
lea eax, [ebp + 0x8c]
mov cl, byte [eax]
test cl, cl
je 0x422f5b
cmp cl, 0xa
jne 0x422f58
mov byte [eax], 0x20
inc eax
jmp 0x422f4a
lea eax, [ebp + 0x8c]
mov cl, byte [eax]
test cl, cl
je 0x422f72
cmp cl, 9
jne 0x422f6f
mov byte [eax], 0x20
inc eax
jmp 0x422f61
lea eax, [ebp + 0x8c]
mov cl, byte [eax]
test cl, cl
je 0x422f89
cmp cl, 0x25
jne 0x422f86
mov byte [eax], 0xb0
inc eax
jmp 0x422f78
lea eax, [ebp + 0x8c]
push eax
call fcn.0042036e
pop ecx
mov eax, dword [0x472434]
pop esi
test eax, eax
je 0x422fe3
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x422fe3
push dword [0x472434]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x422fe3
mov eax, dword [edi + 0x473bec]
add eax, ebx
push eax
mov eax, dword [ebp + 0x2a4]
inc eax
push eax
push str.__STEP__d_:___s
push 0
push 0
push dword [0x472434]
call fcn.0041f060
add esp, 0x18
mov eax, dword [0x472438]
test eax, eax
je 0x42303a
push eax
call dword [sym.imp.USER32.dll_IsWindow]
test eax, eax
je 0x42303a
push dword [0x472438]
call dword [sym.imp.USER32.dll_IsWindowVisible]
test eax, eax
je 0x42303a
mov edi, dword [edi + 0x4725d4]
xor ecx, ecx
lea eax, [edi + 1]
inc ecx
cmp eax, ecx
jl 0x423019
mov ecx, eax
mov eax, dword [ebp + 0x2a4]
inc eax
imul eax, eax, 0x64
cdq
idiv ecx
push 0
push eax
push 0x402
push dword [0x472438]
call dword [sym.imp.USER32.dll_SendMessageA]
pop edi
pop ebx
mov ecx, dword [ebp + 0x294]
xor ecx, ebp
call fcn.004464bf
add ebp, 0x298
leave
ret 8