Function at 0x402c10
Capabilities:
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov esi, 0x878a98
call fcn.00466c90
mov eax, dword [0x8d6f50]
xor ebp, ebp
cmp ax, 0xffff
je 0x402cc4
movzx eax, ax
shl eax, 5
mov esi, dword [eax + 0x8d725c]
cmp esi, ebp
je 0x402cc4
call fcn.00401450
mov edx, dword [esi]
mov ecx, esi
mov edi, eax
call dword [edx + 0x1c]
cmp eax, edi
je 0x402c6d
lea ebx, [ebx]
mov ecx, dword [eax + 4]
cmp eax, ecx
je 0x402cc4
mov eax, ecx
cmp eax, edi
jne 0x402c60
mov ebx, dword [esi + 0x8c]
mov edi, dword [esi + 0x88]
mov eax, ebx
push eax
mov ecx, edi
push ecx
mov ecx, 0x8d68e0
call fcn.004013f0
mov esi, eax
cmp esi, ebp
je 0x402cc4
call fcn.004014b0
push eax
mov ecx, esi
call fcn.00401340
test eax, eax
je 0x402cc4
mov eax, esi
call fcn.0045b180
mov edx, dword [esi]
push 0x3d072b02
mov ecx, esi
call dword [edx + 0xc4]
push 1
push ebx
push edi
mov ecx, 0x8d68e0
call fcn.004602f0
mov ecx, 0x84dda8
call fcn.006289b0
fld dword [0x738ac0]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x402ce8
mov ecx, 0x84dda8
call fcn.006289b0
fstp st(0)
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edi, edi
cmp dword [0x84ddb8], ebp
je 0x402d73
lea eax, [esp + 0x30]
push eax
call edi
mov ecx, dword [esp + 0x30]
mov ebx, dword [0x7c1978]
mov eax, dword [esp + 0x34]
mov edi, dword [0x7c197c]
mov edx, dword [0x956cac]
sub ecx, ebx
sbb eax, edi
cmp eax, edx
jg 0x402d36
mov esi, dword [0x956ca8]
jl 0x402d2d
cmp ecx, esi
jae 0x402d36
add esi, 1
adc edx, ebp
mov ecx, esi
mov eax, edx
mov edx, dword [0x84ddb0]
mov esi, dword [0x84dda8]
mov edi, edx
sub edi, esi
mov esi, dword [0x84ddb4]
mov ebx, esi
sbb ebx, dword [0x84ddac]
add edi, ecx
adc ebx, eax
mov dword [esp + 0x18], edi
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov dword [0x956ca8], ecx
mov dword [0x956cac], eax
mov dword [esp + 0x1c], ebx
jmp 0x402d87
mov edx, dword [0x84ddb0]
mov esi, dword [0x84ddb4]
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
fild qword [esp + 0x18]
fld qword [0x7c1968]
fmul dword [0x738aa4]
fdivp st(1)
fld dword [0x738ac0]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x402dc4
cmp dword [0x84ddb8], ebp
je 0x402e47
call fcn.006287f0
mov esi, dword [0x84ddb4]
mov edx, dword [0x84ddb0]
cmp dword [0x84ddb8], ebp
je 0x402e47
lea ecx, [esp + 0x38]
push ecx
call edi
mov ecx, dword [esp + 0x38]
mov ebx, dword [0x7c1978]
mov eax, dword [esp + 0x3c]
mov edi, dword [0x7c197c]
mov edx, dword [0x956cac]
sub ecx, ebx
sbb eax, edi
cmp eax, edx
jg 0x402e0a
mov esi, dword [0x956ca8]
jl 0x402e01
cmp ecx, esi
jae 0x402e0a
add esi, 1
adc edx, ebp
mov ecx, esi
mov eax, edx
mov edx, dword [0x84ddb0]
mov esi, dword [0x84dda8]
mov edi, edx
sub edi, esi
mov esi, dword [0x84ddb4]
mov ebx, esi
sbb ebx, dword [0x84ddac]
add edi, ecx
adc ebx, eax
mov dword [esp + 0x20], edi
mov edi, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov dword [0x956ca8], ecx
mov dword [0x956cac], eax
mov dword [esp + 0x24], ebx
jmp 0x402e4f
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
fild qword [esp + 0x20]
fld qword [0x7c1968]
fmul dword [0x738aa4]
fdivp st(1)
fld dword [0x738ac0]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x402ec6
cmp dword [0x84ddb8], ebp
je 0x402ea6
call fcn.006287f0
mov esi, dword [0x84dda8]
mov ecx, dword [0x84ddb0]
mov ebx, dword [0x84ddac]
sub ecx, esi
mov esi, dword [0x84ddb4]
sbb esi, ebx
add eax, ecx
adc edx, esi
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], edx
jmp 0x402eae
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], esi
fild qword [esp + 0x28]
fld qword [0x7c1968]
fmul dword [0x738aa4]
fdivp st(1)
fstp dword [esp + 0x14]
jmp 0x402ed4
movss xmm0, dword [0x738ac0]
movss dword [esp + 0x14], xmm0
mov edx, dword [esp + 0x14]
push edx
mov esi, 0x7797e0
call fcn.004517c0
movss xmm0, dword [0x7797e4]
mulss xmm0, dword [esp + 0x14]
xorps xmm1, xmm1
comiss xmm1, xmm0
movss dword [esp + 0x14], xmm0
jbe 0x402f0d
movss xmm0, dword [0x7391b4]
movss dword [esp + 0x14], xmm0
lea eax, [esp + 0x40]
push eax
mov dword [0x84ddb8], ebp
mov dword [0x84dda8], ebp
mov dword [0x84ddac], ebp
mov dword [0x84ddb0], ebp
mov dword [0x84ddb4], ebp
mov dword [0x84ddbc], ebp
call edi
mov eax, dword [0x7c1978]
mov ecx, dword [esp + 0x40]
mov ebx, dword [0x7c197c]
mov edx, dword [0x956cac]
sub ecx, eax
mov eax, dword [esp + 0x44]
sbb eax, ebx
cmp eax, edx
jg 0x402f6e
mov esi, dword [0x956ca8]
jl 0x402f65
cmp ecx, esi
jae 0x402f6e
add esi, 1
adc edx, ebp
mov ecx, esi
mov eax, edx
mov dword [0x956cac], eax
mov dword [0x84ddac], eax
mov eax, dword [0x84ddbc]
mov dword [0x956ca8], ecx
mov dword [0x84dda8], ecx
mov ecx, dword [esp + 0x14]
inc eax
mov esi, 1
push ecx
mov dword [0x84ddb8], esi
mov dword [0x84ddbc], eax
call fcn.00401a20
cvtsi2ss xmm0, dword [0x84dbf0]
add esp, 4
ucomiss xmm0, dword [0x738a54]
lahf
test ah, 0x44
jp 0x402ffd
cmp dword [0x8d63f4], ebp
jne 0x402ffd
cmp dword [0x7824a4], ebp
je 0x402fee
cmp dword [0x80dfd0], 0xa
jbe 0x402fda
call fcn.00401cb0
mov eax, 0x878080
call fcn.0041db00
call fcn.00630fd0
jmp 0x402cf0
mov dword [0x8d63f4], 0xffffff00
jmp 0x402cf0
cmp dword [0x878084], ebp
je 0x403095
cmp dword [0x8780ac], ebp
mov dword [0x878084], ebp
je 0x403085
mov eax, dword [0x8780bc]
cmp eax, ebp
je 0x40303f
mov dword [eax + 0xf4], esi
mov edx, dword [0x8780bc]
mov eax, dword [edx + 0xf8]
mov ecx, dword [0x8780ac]
mov dword [ecx*4 + 0x878694], eax
mov eax, dword [0x8780ac]
mov ecx, 0x878080
call fcn.0041e580
mov edx, dword [0x8780ac]
movss xmm0, dword [0x8780b8]
mov eax, dword [0x75a900]
mov dword [0x8780bc], ebp
movss dword [0x8780b4], xmm0
mov dword [0x8780b0], edx
mov dword [0x8780ac], ebp
mov dword [eax], esi
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [0x75a900]
mov dword [ecx], esi
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [0x75a900]
pop edi
mov dword [edx], esi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret