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

Disassembly:
push ebx
push ebp
push esi
push edi
mov esi, ecx
call fcn.00420500
mov ebx, dword [0x42a20c]
call ebx
mov edi, eax
add edi, 0x9c40
jmp 0x420b50
call ebx
cmp eax, edi
jae 0x420b59
push 0x1f4
call dword [0x42a1e4]
cmp byte [0x45b050], 0
je 0x420b3f
call ebx
push eax
call fcn.00421d78
pop ecx
call fcn.00421d82
push 3
cdq
pop ecx
idiv ecx
mov edi, edx
inc edi
xor ebp, ebp
cmp edi, 1
jne 0x420b85
mov ecx, esi
call fcn.004208c4
test al, al
mov byte [esi + 0x27], al
jne 0x420bbb
cmp edi, 2
jne 0x420b98
mov ecx, esi
call fcn.0042079e
test al, al
mov byte [esi + 0x27], al
jne 0x420bbb
cmp edi, 3
jne 0x420bad
mov ecx, esi
call fcn.004209f1
test al, al
mov byte [esi + 0x27], al
jne 0x420bbb
cmp edi, edi
jl 0x420bb4
xor edi, edi
inc edi
jmp 0x420bb5
inc edi
inc ebp
cmp ebp, 3
jl 0x420b72
cmp byte [esi + 0x27], 0
jne 0x420cf6
mov eax, dword [esi]
mov edi, dword [0x42a214]
mov byte [esi + 0x27], 1
mov eax, dword [eax + 8]
test eax, eax
push 5
pop ebp
je 0x420bf6
push eax
call edi
cmp eax, ebp
jl 0x420bf6
mov eax, dword [esi]
push dword [eax + 8]
mov ecx, esi
call fcn.0042045d
test al, al
jne 0x420ce6
mov eax, dword [esi]
mov eax, dword [eax + 4]
test eax, eax
je 0x420c1a
push eax
call edi
cmp eax, ebp
jl 0x420c1a
mov eax, dword [esi]
push dword [eax + 4]
mov ecx, esi
call fcn.0042045d
test al, al
jne 0x420ce6
mov eax, dword [esi]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x420c3e
push eax
call edi
cmp eax, ebp
jl 0x420c3e
mov eax, dword [esi]
push dword [eax + 0x20]
mov ecx, esi
call fcn.0042045d
test al, al
jne 0x420ce6
mov eax, dword [esi]
mov eax, dword [eax + 0x48]
test eax, eax
je 0x420c62
push eax
call edi
cmp eax, ebp
jl 0x420c62
mov eax, dword [esi]
push dword [eax + 0x48]
mov ecx, esi
call fcn.0042045d
test al, al
jne 0x420ce6
mov eax, dword [esi]
mov eax, dword [eax + 0x1c]
test eax, eax
je 0x420c82
push eax
call edi
cmp eax, ebp
jl 0x420c82
mov eax, dword [esi]
push dword [eax + 0x1c]
mov ecx, esi
call fcn.0042045d
test al, al
jne 0x420ce6
mov eax, dword [esi]
mov eax, dword [eax + 0x28]
test eax, eax
je 0x420ca2
push eax
call edi
cmp eax, ebp
jl 0x420ca2
mov eax, dword [esi]
push dword [eax + 0x28]
mov ecx, esi
call fcn.0042045d
test al, al
jne 0x420ce6
mov eax, dword [esi]
mov eax, dword [eax + 0x2c]
test eax, eax
je 0x420cc2
push eax
call edi
cmp eax, ebp
jl 0x420cc2
mov eax, dword [esi]
push dword [eax + 0x2c]
mov ecx, esi
call fcn.0042045d
test al, al
jne 0x420ce6
mov eax, dword [esi]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x420ce2
push eax
call edi
cmp eax, ebp
jl 0x420ce2
mov eax, dword [esi]
push dword [eax + 0x24]
mov ecx, esi
call fcn.0042045d
test al, al
jne 0x420ce6
mov byte [esi + 0x27], 0
cmp byte [esi + 0x27], 0
jne 0x420cf6
mov ecx, esi
call fcn.0042055a
mov byte [esi + 0x27], al
xor eax, eax
cmp dword [esi + 8], eax
jne 0x420d1a
push eax
push eax
mov eax, dword [esi]
movzx eax, byte [eax + 0x10]
push eax
push 3
call fcn.0041f547
add esp, 0xc
push eax
mov ecx, esi
call fcn.004202cd
jmp 0x420d21
mov ecx, esi
call fcn.004203a1
call ebx
mov ebp, eax
add ebp, 0x3e80
xor edi, edi
mov ecx, esi
call fcn.0041f6da
cmp dword [esi + 8], 0
jne 0x420d49
call ebx
cmp edi, eax
jbe 0x420d49
cmp byte [esi + 0xa9], 0
jne 0x420d2d
mov ecx, esi
mov byte [esi + 0x27], 0
call fcn.004203a1
test al, al
jne 0x420e29
call fcn.00421d82
push 3
cdq
pop ecx
idiv ecx
mov edi, edx
inc edi
xor ebx, ebx
cmp edi, 1
jne 0x420d7f
mov ecx, esi
call fcn.004208c4
test al, al
mov byte [esi + 0x27], al
jne 0x420db5
cmp edi, 2
jne 0x420d92
mov ecx, esi
call fcn.0042079e
test al, al
mov byte [esi + 0x27], al
jne 0x420db5
cmp edi, 3
jne 0x420da7
mov ecx, esi
call fcn.004209f1
test al, al
mov byte [esi + 0x27], al
jne 0x420db5
cmp edi, edi
jl 0x420dae
xor edi, edi
inc edi
jmp 0x420daf
inc edi
inc ebx
cmp ebx, 3
jl 0x420d6c
mov ebx, dword [0x42a20c]
cmp byte [esi + 0x27], 0
jne 0x420de3
mov eax, dword [esi + 0x20]
cmp eax, 1
jb 0x420dd4
push 6
xor edx, edx
pop ecx
div ecx
test edx, edx
jne 0x420de3
mov ecx, esi
call fcn.0042055a
test al, al
je 0x420de3
mov byte [esi + 0x27], 1
cmp dword [esi + 0x20], 2
jb 0x420e01
cmp byte [esi + 0xa9], 0
je 0x420e01
call ebx
sub eax, dword [esi + 0xac]
cmp eax, 0x493e0
jbe 0x420e08
mov ecx, esi
call fcn.00420500
push 0x3e8
call dword [0x42a1e4]
cmp ebp, 0x1b7740
jae 0x420e21
add ebp, 0xea60
call ebx
mov edi, eax
add edi, ebp
jmp 0x420e46
mov byte [esi + 0x27], 1
jmp 0x420dbb
mov eax, dword [esi]
cmp byte [eax + 0x3d], 1
ja 0x420d2d
push 0x2710
call dword [0x42a1e4]
cmp byte [0x459540], 0
jne 0x420e2f
jmp 0x420d2d