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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 0x14]
test ecx, ecx
js case.0x465332.1500
cmp ecx, 0x1194
jge case.0x465332.1500
mov ecx, dword [ecx*4 + 0x20a514c]
cmp dword [ecx + 4], 3
jne case.0x465332.1500
movzx eax, word [ecx + 0x78]
cmp eax, 1
je 0x465273
cmp eax, 6
jne case.0x465332.1500
cmp byte [ecx + 0xa], 0
jg case.0x465332.1500
cmp byte [ecx + 0x9c0], 0
jne case.0x465332.1500
cmp word [ecx + 0xcc], 4
jne case.0x465332.1500
mov eax, dword [esi + 0x24]
test eax, eax
je case.0x465332.1500
movss xmm0, dword [eax + 0x20]
ucomiss xmm0, dword [0x56a714]
lahf
test ah, 0x44
jnp case.0x465332.1500
movzx eax, byte [ecx + 0x149]
movsx edi, word [ecx + 0x146]
movsx ecx, word [ecx + 0x144]
imul edx, eax, 0x15d38
test ecx, ecx
js 0x465301
cmp ecx, dword [edx + 0xd2f384]
jge 0x465301
test edi, edi
js 0x465301
mov eax, dword [edx + 0xd2f388]
cmp edi, eax
jge 0x465301
imul eax, edi
add eax, dword [edx + 0xd2f380]
test byte [eax + ecx], 1
jne case.0x465332.1500
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
cmp dword [esi + 0x1c], eax
ja case.0x465332.1500
call edi
mov ecx, dword [esi + 0xc]
lea ecx, [ecx + ecx*4]
add ecx, ecx
sub eax, ecx
add eax, 0x5dc
mov dword [esi + 0x1c], eax
mov eax, dword [esi + 0x20]
cmp eax, 3
ja case.0x465332.1500
jmp dword [eax*4 + 0x4655c4]
mov ecx, esi
call fcn.004655e0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov ebx, dword [eax*4 + 0x20a514c]
test edi, edi
js case.0x465332.1500
cmp edi, 0x1194
jge case.0x465332.1500
mov edi, dword [edi*4 + 0x20a514c]
cmp byte [edi + 0x7a], 0
je 0x4655a8
cmp dword [edi + 0x200], 2
jne 0x4655a8
mov al, byte [ebx + 0x149]
cmp al, byte [edi + 0x149]
jne 0x4655a8
movsx eax, word [ebx + 0x146]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2ss xmm1, eax
movsx eax, word [edi + 0x146]
cvtsi2ss xmm0, eax
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd xmm1, qword [0x56a7a0]
call fcn.005462f0
movsx eax, word [ebx + 0x144]
xorps xmm3, xmm3
movsd xmm1, qword [0x56a7a0]
xorps xmm2, xmm2
movsd qword [esp + 0x10], xmm0
cvtsi2ss xmm3, eax
movsx eax, word [edi + 0x144]
cvtsi2ss xmm2, eax
subss xmm3, xmm2
cvtps2pd xmm0, xmm3
call fcn.005462f0
addsd xmm0, qword [esp + 0x10]
jmp 0x4654d1
mov eax, dword [esi + 0x14]
mov edi, dword [esi + 0x18]
mov ebx, dword [eax*4 + 0x20a514c]
test edi, edi
js case.0x465332.1500
cmp edi, 0x1194
jge case.0x465332.1500
mov edi, dword [edi*4 + 0x20a514c]
cmp byte [edi + 0x7a], 0
je 0x4655a8
cmp dword [edi + 0x200], 2
jne 0x4655a8
mov al, byte [ebx + 0x149]
cmp al, byte [edi + 0x149]
jne 0x4655a8
movsx eax, word [ebx + 0x146]
xorps xmm1, xmm1
xorps xmm0, xmm0
cvtsi2ss xmm1, eax
movsx eax, word [edi + 0x146]
cvtsi2ss xmm0, eax
subss xmm1, xmm0
cvtps2pd xmm0, xmm1
movsd xmm1, qword [0x56a7a0]
call fcn.005462f0
movsx eax, word [ebx + 0x144]
xorps xmm3, xmm3
movsd xmm1, qword [0x56a7a0]
xorps xmm2, xmm2
movsd qword [esp + 0x10], xmm0
cvtsi2ss xmm3, eax
movsx eax, word [edi + 0x144]
cvtsi2ss xmm2, eax
subss xmm3, xmm2
cvtps2pd xmm0, xmm3
call fcn.005462f0
addsd xmm0, qword [esp + 0x10]
xorps xmm1, xmm1
ucomisd xmm1, xmm0
ja 0x4654e0
sqrtsd xmm0, xmm0
jmp 0x4654e5
call fcn.00547010
cvttsd2si eax, xmm0
cmp eax, 7
jge case.0x465332.1500
call fcn.00526930
mov ecx, 0x64
cdq
idiv ecx
mov ecx, dword [edi]
mov ebx, dword [ebx]
mov dword [esp + 0x10], ecx
cmp edx, dword [0xbdb5bc]
jge 0x465528
push ecx
push ebx
call fcn.004657f0
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
mov eax, ebx
mov byte [esp + 0x1c], 0
shr eax, 8
mov byte [esp + 0x1d], al
mov eax, ecx
shr eax, 8
mov byte [esp + 0x1f], al
lea eax, [esp + 0x18]
push 9
push eax
push ebx
mov dword [esp + 0x24], 0xa809c1
mov byte [esp + 0x2a], bl
mov byte [esp + 0x2c], cl
call fcn.005192f0
movzx eax, byte [esp + 0x19]
lea edx, [esp + 0x18]
mov ecx, dword [ebx*4 + 0x20a514c]
push eax
call fcn.005264a0
mov ecx, dword [ebx*4 + 0x20a514c]
add esp, 4
mov edx, 0x33
push 0
push 1
push 0x258
push dword [esp + 0x1c]
call fcn.00523c10
add esp, 0x10
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret
push dword [edi]
mov ecx, esi
call fcn.004659f0
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret