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

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov esi, eax
xor eax, eax
push ebp
push 0x472f2c
push dword fs:[eax]
mov dword fs:[eax], esp
or edx, 0xffffffff
mov eax, dword [0x5a7c80]
call fcn.00472280
mov eax, esi
sub eax, 1
jb 0x472a92
je 0x472b02
dec eax
je 0x472b6f
dec eax
je 0x472bd9
jmp 0x472c44
push 2
mov edx, 0x472f3c
xor ecx, ecx
mov eax, dword [0x5a7c80]
call fcn.00472200
push 1
mov edx, 0x472f40
mov ecx, 0x25
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f48
mov ecx, 0xc8
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f54
mov ecx, 0x50
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f5c
mov ecx, 0xcb
mov eax, dword [0x5a7c80]
call fcn.00472200
jmp 0x472c44
push 2
mov edx, 0x472f3c
xor ecx, ecx
mov eax, dword [0x5a7c80]
call fcn.00472200
push 1
mov edx, 0x472f40
mov ecx, 0x25
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f48
mov ecx, 0xc8
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f64
mov ecx, 0x11b
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f3c
xor ecx, ecx
mov eax, dword [0x5a7c80]
call fcn.00472200
jmp 0x472c44
push 2
mov edx, 0x472f3c
xor ecx, ecx
mov eax, dword [0x5a7c80]
call fcn.00472200
push 1
mov edx, 0x472f40
mov ecx, 0x25
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f48
mov ecx, 0xc8
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f6c
mov ecx, 0x11b
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f3c
xor ecx, ecx
mov eax, dword [0x5a7c80]
call fcn.00472200
jmp 0x472c44
push 2
mov edx, 0x472f3c
xor ecx, ecx
mov eax, dword [0x5a7c80]
call fcn.00472200
push 1
mov edx, 0x472f40
mov ecx, 0x25
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f74
mov ecx, 0xc8
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f80
mov ecx, 0xc8
mov eax, dword [0x5a7c80]
call fcn.00472200
push 2
mov edx, 0x472f8c
mov ecx, 0x53
mov eax, dword [0x5a7c80]
call fcn.00472200
mov eax, dword [esi*4 + 0x5a7c6c]
cmp dword [eax + 0x20], 0
jle 0x472dd0
xor edx, edx
call fcn.00423c2c
mov ebx, eax
cmp word [ebx + 2], 0x2418
jne 0x472d39
call sub.kernel32.dll_GetTickCount_1
mov dword [ebp - 4], eax
mov eax, dword [esi*4 + 0x5a7c6c]
push dword [eax + 4]
mov eax, dword [ebp - 4]
pop edx
sub eax, edx
mov ecx, 0x3e8
xor edx, edx
div ecx
cmp eax, 0x3c
ja 0x472d39
push 0x472f9c
mov eax, dword [esi*4 + 0x5a7c6c]
push dword [eax + 4]
mov eax, dword [ebp - 4]
pop edx
sub eax, edx
mov ecx, 0x3e8
xor edx, edx
div ecx
push eax
mov eax, 0x3c
pop edx
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x10]
call fcn.00421f90
push dword [ebp - 0x10]
push 0x472fac
lea eax, [ebp - 0xc]
mov edx, 3
call fcn.00405720
mov eax, dword [ebp - 0xc]
call fcn.0040581c
push eax
mov eax, dword [0x5a7c84]
push eax
call sub.user32.dll_SetWindowTextA
cmp word [ebx + 4], 0xffff
jne 0x472d11
push 0x10
push 0x472fcc
push 0x472fd4
mov eax, dword [0x5a7c7c]
push eax
call sub.user32.dll_MessageBoxA_1
jmp 0x472d28
push 0x10
push 0x472fcc
push 0x472fe4
mov eax, dword [0x5a7c7c]
push eax
call sub.user32.dll_MessageBoxA_1
mov eax, dword [esi*4 + 0x5a7c6c]
call fcn.0047224c
jmp 0x472f11
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [esi*4 + 0x5a7c6c]
sub eax, dword [edx + 4]
mov ecx, 0x3e8
xor edx, edx
div ecx
cmp eax, 0x1e
jae 0x472dd0
or eax, 0xffffffff
call fcn.00472688
cmp word [ebx + 4], 0xfffe
jne 0x472d8e
push 0x10
push 0x472fcc
push 0x472ffc
mov eax, dword [0x5a7c7c]
push eax
call sub.user32.dll_MessageBoxA_1
mov eax, dword [esi*4 + 0x5a7c6c]
call fcn.0047224c
jmp 0x472f11
mov eax, dword [esi*4 + 0x5a7c6c]
mov ebx, dword [eax + 0x20]
dec ebx
test ebx, ebx
jl 0x472dbf
inc ebx
xor edi, edi
mov eax, dword [esi*4 + 0x5a7c6c]
mov edx, edi
call fcn.00423c2c
cmp esi, 3
sete cl
xor edx, edx
call fcn.00472338
inc edi
dec ebx
jne 0x472da0
mov eax, dword [esi*4 + 0x5a7c6c]
call fcn.0047224c
jmp 0x472f11
mov eax, dword [0x59ef6c]
cmp byte [eax], 0
jne 0x472e03
push 0
push 0
push 0x147
mov eax, dword [0x5a7c88]
push eax
call sub.user32.dll_SendMessageA
mov ebx, eax
mov eax, dword [0x59e8ec]
add eax, 0x91
mov edx, ebx
call fcn.00423c2c
mov edi, eax
mov eax, dword [0x59ef6c]
cmp byte [eax], 0
jne 0x472e97
mov eax, dword [edi + 0x10]
call fcn.0040581c
mov ebx, eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 8], eax
push ebx
mov eax, dword [0x59efd0]
mov eax, dword [eax + 8]
push eax
call sub.kernel32.dll_lstrcmpA
test eax, eax
jne 0x472e55
mov eax, dword [0x59efd0]
movzx eax, word [eax + 4]
cmp eax, dword [ebp - 8]
jne 0x472e55
call fcn.0046e9c8
test al, al
je 0x472e55
mov eax, dword [0x59efd0]
mov dword [eax + 0x14], edi
jmp 0x472e97
lea edx, [ebp - 0x14]
mov eax, dword [edi + 0xc]
call fcn.0046f028
mov edx, dword [ebp - 0x14]
lea eax, [edi + 0x10]
call fcn.004053e0
mov eax, dword [edi + 0x10]
call fcn.0040581c
mov ebx, eax
call fcn.0046ebcc
mov eax, dword [0x59efd0]
mov dword [eax + 0x14], edi
mov eax, dword [0x59efd0]
mov dword [eax + 8], ebx
mov eax, dword [0x59efd0]
movzx edx, word [ebp - 8]
mov word [eax + 4], dx
mov byte [0x48bb1c], 1
mov eax, dword [esi*4 + 0x5a7c6c]
call fcn.0047224c
push 0x42
call fcn.00406f68
pop ecx
mov ebx, eax
push 0x42
push ebx
call fcn.00422cbc
mov word [ebx], 0x42
mov eax, esi
add ax, 0x2419
mov word [ebx + 2], ax
mov eax, dword [0x59efd0]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 8]
call fcn.0040581c
mov edx, eax
lea eax, [ebx + 0x32]
call fcn.00421ddc
mov eax, dword [0x59efd0]
mov eax, dword [eax + 0x14]
mov dword [ebx + 0x2e], eax
mov ecx, 0x42
mov edx, ebx
mov eax, esi
call fcn.00472754
mov esi, 0x473018
lea edi, [ebx + 0x32]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
push ebx
call fcn.00406f78
pop ecx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x472f33
lea eax, [ebp - 0x14]
mov edx, 3
call fcn.004053b0
ret