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

Disassembly:
push edi
push esi
push ebx
mov ebx, eax
sub esp, 0x10
cmp ecx, 1
mov esi, dword [esp + 0x20]
je 0x4205b0
test ecx, ecx
jne 0x4205a9
cmp edx, 0xc
je 0x4206c0
jle 0x420650
cmp edx, 0x14
je 0x4206b0
cmp edx, 0x22
jne 0x4205a9
test dword [eax], 0x4010
je 0x420662
mov eax, esi
xor eax, 1
mov byte [ebx + 0x142], al
add esp, 0x10
pop ebx
pop esi
pop edi
ret
mov eax, esi
cmp edx, 0x2f
movzx edi, al
je 0x420a20
jle 0x420600
cmp edx, 0x3f7
je 0x420a11
jg 0x420673
cmp edx, 0x3ea
je 0x420a02
jle 0x420710
cmp edx, 0x3eb
je 0x420820
cmp edx, 0x3ee
jne 0x4205a9
mov byte [ebx + 0x148], al
jmp 0x4205a9
cmp edx, 5
je 0x4209e0
jle 0x4206d0
cmp edx, 7
je 0x4209d0
jl 0x4207c0
cmp edx, 8
je 0x420a80
cmp edx, 0x19
jne 0x4205a9
test dword [ebx], 0x4010
je 0x420662
mov byte [ebx + 0xc4], al
add esp, 0x10
mov eax, ebx
pop ebx
pop esi
pop edi
jmp fcn.0041c180
cmp edx, 4
jne 0x4205a9
test byte [eax], 8
jne 0x420700
mov dword [ebx + 0xe24], 0
add esp, 0x10
pop ebx
pop esi
pop edi
ret
cmp edx, 0x418
je 0x420802
jle 0x420730
cmp edx, 0x419
je 0x420922
cmp edx, 0x7d4
jne 0x4205a9
mov byte [ebx + 0x158], al
jmp 0x4205a9
mov eax, esi
mov byte [ebx + 0x141], al
jmp 0x4205a9
mov eax, esi
xor eax, 1
mov byte [ebx + 0x140], al
jmp 0x4205a9
cmp edx, 2
je 0x4207d0
cmp edx, 3
je 0x420834
cmp edx, 1
jne 0x4205a9
mov byte [ebx + 0x13c], al
jmp 0x4205a9
mov eax, esi
mov byte [ebx + 0xaf], al
jmp 0x4205a9
cmp edx, 0x3e8
jne 0x4205a9
mov dword [ebx + 0x144], edi
add esp, 0x10
mov eax, ebx
pop ebx
pop esi
pop edi
jmp fcn.0041b860
cmp edx, 0x417
jne 0x4205a9
test dword [ebx], 0x4000
je 0x420662
cmp byte [ebx + 0x1106], 0
mov eax, 0
mov dword [ebx + 0xe28], 0
mov dword [ebx + 0xe3c], 0
mov dword [ebx + 0xe40], 0
mov ecx, 1
mov dword [ebx + 0xe34], 0
mov dword [ebx + 0xe38], 0
mov dword [esp], 1
cmovne edi, eax
mov edx, edi
mov eax, ebx
call fcn.0041e850
cmp byte [ebx + 0x1119], 0
je 0x4205a9
mov dword [ebx + 0x10], 0
jmp 0x4205a9
mov byte [ebx + 0xac], al
jmp 0x4205a9
xor eax, 1
test al, al
mov byte [ebx + 0x13e], al
je 0x420a9a
mov byte [ebx + 0xc9], 0
mov byte [ebx + 0xd4], 0
mov byte [ebx + 0xc8], 1
mov byte [ebx + 0x1088], 0
jmp 0x4205a9
cmp byte [ebx + 0x1106], 0
je 0x420ad5
mov eax, esi
test al, al
jne 0x4205a9
jmp 0x42063e
cmp al, 1
sbb eax, eax
not eax
and eax, 3
mov dword [ebx + 0x144], eax
jmp 0x420722
cmp byte [ebx + 0x110c], 0
mov dword [ebx + 0xe28], 0
mov dword [ebx + 0xe3c], 0
mov dword [ebx + 0xe40], 0
mov dword [ebx + 0xe34], 0
mov dword [ebx + 0xe38], 0
mov eax, dword [ebx + 0x128]
jne 0x4208c0
mov ecx, esi
cmp cl, 1
sbb edx, edx
and edx, 0xffffffcc
add edx, 0x84
cmp dword [ebx + 0x12c], edx
je 0x4208c0
cmp byte [ebx + 0x1081], 0
mov dword [ebx + 0x20f0], 1
mov dword [ebx + 0x20f4], edx
mov dword [ebx + 0x20f8], eax
jne 0x4208c0
mov eax, ebx
call fcn.0041b840
mov eax, dword [ebx + 0x128]
lea esi, [esi]
sub eax, 1
mov ecx, esi
mov dword [ebx + 0xa4], 0
mov byte [ebx + 0xc5], cl
mov dword [ebx + 0xa8], eax
xor ecx, ecx
mov dword [ebx + 0x180], eax
mov dword [ebx + 0x17c], 0
xor edx, edx
mov dword [esp], 0
mov eax, ebx
call fcn.0041c580
mov dword [esp + 0xc], 1
mov dword [esp + 8], 1
mov dword [esp + 4], 0
mov dword [esp], ebx
call fcn.0041e4e0
jmp 0x4205a9
test al, al
je 0x420a8e
cmp byte [ebx + 0x1106], 0
jne 0x420940
mov edx, 1
mov eax, ebx
call fcn.0041c610
nop
test dword [ebx], 0x4000
je 0x420662
cmp byte [ebx + 0x1106], 0
mov eax, 0
mov dword [ebx + 0xe28], 0
mov dword [ebx + 0xe3c], 0
mov dword [ebx + 0xe40], 0
mov ecx, 1
mov dword [ebx + 0xe34], 0
mov dword [ebx + 0xe38], 0
mov dword [esp], 0
cmovne edi, eax
mov eax, ebx
mov edx, edi
call fcn.0041e850
mov eax, esi
test al, al
jne 0x42079e
cmp byte [ebx + 0x1106], 0
jne 0x42079e
xor edx, edx
mov eax, ebx
call fcn.0041c610
jmp 0x42079e
mov byte [ebx + 0xad], al
jmp 0x4205a9
cmp byte [ebx + 0xbe], 0
je 0x420abc
test al, al
je 0x420ae3
mov eax, esi
mov byte [ebx + 0xbe], al
jmp 0x42063e
test al, al
setne al
movzx eax, al
add eax, eax
jmp 0x420829
mov byte [ebx + 0x149], al
jmp 0x4205a9
test dword [ebx], 0x4000
je 0x420662
cmp byte [ebx + 0x1106], 0
mov eax, 0
mov dword [ebx + 0xe28], 0
mov dword [ebx + 0xe3c], 0
mov dword [ebx + 0xe40], 0
mov dword [ebx + 0xe34], 0
mov dword [ebx + 0xe38], 0
mov dword [esp], 0
cmovne edi, eax
xor ecx, ecx
jmp 0x420795
xor eax, 1
mov byte [ebx + 0x13f], al
jmp 0x4205a9
mov eax, ebx
call fcn.0041c180
jmp 0x420940
movzx eax, byte [ebx + 0x10e3]
test al, al
mov byte [ebx + 0xc9], al
je 0x4207ef
add esp, 0x10
mov eax, ebx
pop ebx
pop esi
pop edi
jmp fcn.0041b8c0
test al, al
je 0x4209f5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx + 0xc0], eax
jmp 0x4209f5
mov edx, edi
mov eax, ebx
call fcn.0041c610
jmp 0x42080f
mov edi, dword [ebx + 0xc0]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, edi
cmp eax, 0x63
jle 0x420b02
mov byte [ebx + 0x135], 0
jmp 0x4209f5
mov edx, 0x64
mov byte [ebx + 0x135], 1
mov dword [esp + 8], ebx
sub edx, eax
mov dword [esp + 4], 0x424910
mov dword [esp], edx
call fcn.0043fcc0
mov dword [ebx + 0x138], eax
jmp 0x4209f5