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

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
mov eax, dword [edi + 0x14ec]
test eax, eax
push ebx
push esi
je 0x420fa5
cmp dword [edi + 0x128], 0
je 0x420fa5
cmp dword [ebp + 8], 2
jne 0x420ce8
inc dword [edi + 0x1530]
lea eax, [edi + 0x13d]
cmp byte [eax], 2
jne 0x420d0f
mov byte [eax], 2
jmp 0x420fc3
cmp dword [ebp + 8], 1
jne 0x420d91
inc dword [edi + 0x1534]
lea eax, [edi + 0x13d]
cmp byte [eax], 1
jne 0x420d91
mov byte [eax], 1
jmp 0x420fc3
lea esi, [edi + 0x148]
mov eax, dword [esi]
fild dword [esi]
test eax, eax
jge 0x420d23
fadd qword [0x48de68]
fld qword [0x48ded8]
fmul st(1), st(0)
fxch st(1)
call 0x47a966
mov ebx, eax
mov dword [esi], ebx
lea esi, [edi + 0x14c]
mov eax, dword [esi]
fild dword [esi]
test eax, eax
jge 0x420d4a
fadd qword [0x48de68]
fmulp st(1)
call 0x47a966
mov dword [esi], eax
imul eax, ebx
test byte [edi + 0x164], 1
mov dword [edi + 0x144], eax
je 0x420d7d
mov eax, dword [edi + 0x150]
mov dword [edi + 0x15c], eax
mov eax, dword [edi + 0x154]
mov dword [edi + 0x160], eax
xor eax, eax
mov dword [edi + 0x154], eax
mov dword [edi + 0x150], eax
mov dword [edi + 0x130], eax
mov ecx, dword [ebp + 8]
lea eax, [edi + 0x13d]
movzx edx, byte [eax]
cmp edx, ecx
je 0x420da3
mov byte [eax], cl
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
call ebx
mov ecx, dword [edi + 0x14ec]
mov dword [ebp - 8], eax
mov eax, dword [edi + 0x144]
xor edx, edx
div ecx
mov esi, dword [edi + 0x128]
xor edx, edx
mov dword [ebp - 4], eax
mov eax, dword [edi + 0x11c]
imul eax, ecx
imul ecx, dword [ebp - 4]
imul eax, dword [ebp - 4]
div esi
xor edx, edx
add eax, ecx
mov ecx, 0x3e8
div ecx
mov edx, eax
cmp edx, esi
mov dword [ebp - 4], edx
jne 0x420e17
lea esi, [edi + 0xcc]
push 1
call fcn.00419888
test eax, eax
je 0x420e14
mov eax, dword [edi + 0x14ec]
inc dword [ebp - 4]
mov dword [edi + 0xd0], eax
call ebx
mov dword [esi], eax
mov edx, dword [ebp - 4]
cmp dword [ebp + 8], 0
jne 0x420eae
cmp dword [ebp + 0xc], 1
je 0x420e5e
movzx ecx, byte [edi + 0x124]
mov eax, dword [edi + 0x128]
cmp eax, ecx
jb 0x420e42
cmp edx, 2
jbe 0x420e5e
dec edx
cmp eax, edx
jae 0x420e5e
inc eax
mov dword [edi + 0x128], eax
call ebx
mov dword [edi + 0x140], eax
call ebx
mov dword [edi + 0xcc], eax
jmp 0x420f3e
mov eax, dword [edi + 0x138]
add dword [edi + 0x134], eax
mov eax, dword [edi + 0x14ec]
mov edx, dword [edi + 0x134]
call fcn.00419194
mov ecx, dword [ebp - 8]
mov esi, ecx
sub esi, dword [edi + 0x140]
cmp esi, eax
jb 0x420f3e
mov eax, dword [edi + 0x128]
cmp edx, eax
jb 0x420f3e
inc eax
mov dword [edi + 0x128], eax
mov dword [edi + 0x140], ecx
jmp 0x420f37
xor esi, esi
inc esi
cmp dword [ebp + 8], esi
jne 0x420ef6
mov ecx, dword [edi + 0x128]
shr ecx, 1
cmp cl, 2
lea eax, [edi + 0x124]
mov byte [eax], cl
jae 0x420ece
mov byte [eax], 2
movzx eax, byte [eax]
add eax, 3
cmp eax, esi
mov dword [edi + 0x128], eax
jae 0x420ee4
mov dword [edi + 0x128], esi
mov eax, dword [ebp - 8]
mov dword [edi + 0x140], eax
mov byte [edi + 0x13c], 1
jmp 0x420f3e
cmp dword [ebp + 8], 2
jne 0x420f3e
mov ecx, dword [edi + 0x128]
shr ecx, 1
lea eax, [edi + 0x124]
mov byte [eax], cl
movzx ecx, cl
cmp ecx, edx
jae 0x420f15
mov byte [eax], dl
cmp byte [eax], 2
jae 0x420f1d
mov byte [eax], 2
mov eax, dword [ebp - 8]
mov dword [edi + 0x128], 1
mov dword [edi + 0x140], eax
mov byte [edi + 0x13c], 0
and dword [edi + 0x134], 0
cmp dword [0x4a674c], 1
mov edx, dword [edi + 0x128]
mov dword [edi + 0x7e], edx
jne 0x420fc3
mov eax, dword [edi + 0x100]
mov ecx, dword [edi + 0x14ec]
push eax
push dword [edi + 0x5e]
movzx eax, byte [edi + 0x124]
push dword [edi + 0x134]
push edx
push eax
push dword [ebp - 4]
lea eax, [edi + 0x168]
push ecx
push dword [edi + 0x144]
call fcn.0041e38a
push edx
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push 0x48a4a8
push dword [edi + 0x34]
push dword [edi + 0x30]
push dword [edi]
push 9
call fcn.00417bac
add esp, 0x44
jmp 0x420fc3
push dword [edi + 0x128]
push eax
push 0x48a480
push dword [edi + 0x34]
push dword [edi + 0x30]
push dword [edi]
push 4
call fcn.00417bac
add esp, 0x1c
pop esi
pop ebx
leave
ret 8