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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0xf0
mov eax, dword [0x690c9c]
mov ecx, dword [eax + 0x118]
push ebx
push ebp
xor ebp, ebp
xor edx, edx
push esi
xor ebx, ebx
cmp ecx, ebp
push edi
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x28], edx
je 0x45816a
mov esi, dword [ecx + 0xc]
cmp esi, ebp
mov edi, dword [ecx]
je 0x457af9
cmp esi, 7
je 0x457af9
cmp esi, 0xb
je 0x457af9
cmp esi, 0xa
jne 0x457b1f
cmp edi, ebp
je 0x457b10
imul edi, edi, 0x70
mov edi, dword [edi + 0x630a44]
cmp edi, 7
je 0x457b10
cmp edi, 5
jne 0x457b1f
mov dword [ecx + 0x8c], edx
add ebx, 1
mov dword [esp + 0x28], ecx
mov edx, ecx
mov ecx, dword [ecx + 0x88]
cmp ecx, ebp
jne 0x457ae1
mov eax, 1
cmp ebx, eax
mov dword [esp + 0x44], ebx
jle 0x45816a
movzx ecx, word [edx + 0x9c]
mov esi, dword [edx + 0x8c]
movsx ebx, word [esi + 0x9e]
mov word [esp + 0x24], cx
mov cx, word [edx + 0xa2]
movsx edx, cx
mov dword [esp + 0x30], ebp
xor edi, edi
lea ebp, [eax + 3]
mov word [esp + 0x26], cx
mov dword [esp + 0x20], eax
sub ebx, edx
jmp 0x457b78
mov eax, 1
add dword [esp + 0x30], 4
mov dword [esp + 0xa8], eax
mov dword [esp + 0xcc], eax
mov eax, dword [esi + 0xc]
xor ecx, ecx
imul eax, eax, 0x84
mov edx, dword [eax + 0x62d91c]
mov dword [esp + 0xac], ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0xb8], ecx
or ecx, 0xffffffff
mov dword [esp + 0xb4], ecx
mov dword [esp + 0xd0], ecx
lea ecx, [esp + 0xa8]
push ecx
mov dword [esp + 0xc0], esi
call edx
mov ax, word [esp + 0x28]
add edi, dword [esp + 0xd4]
add esp, 4
add ebp, 4
cmp word [esi + 0x9c], ax
jne 0x457c0e
movsx ecx, word [esp + 0x26]
movsx edx, word [esi + 0x9e]
add ecx, ebx
cmp edx, ecx
jne 0x457c0e
mov ax, word [esi + 0xa2]
mov word [esp + 0x26], ax
jmp 0x457c16
mov dword [esp + 0x20], 0
mov esi, dword [esi + 0x8c]
test esi, esi
jne 0x457b73
cmp dword [esp + 0x20], esi
je 0x457c43
cmp ebx, 0xc8
jge 0x457c43
add ebx, 1
mov dword [esp + 0x20], ebx
mov dword [esp + 0x38], 1
jmp 0x457c53
mov dword [esp + 0x20], 2
mov dword [esp + 0x38], 0xa
mov eax, dword [esp + 0x44]
add eax, 0xffffffff
lea ebx, [eax + eax*2]
add ebx, ebx
push 0
add ebx, ebx
call fcn.0043ace0
xor esi, esi
add esp, 4
cmp eax, esi
mov dword [esp + 0x40], eax
je 0x45815e
mov ebx, dword [esp + 0x30]
lea ecx, [esp + 0x30]
push ecx
lea edx, [edi + ebp]
add edx, ebx
push edx
lea eax, [esp + 0x50]
push 3
push eax
mov dword [esp + 0x58], 0x1d
mov word [esp + 0x5c], 0xffff
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
call fcn.004c5af0
add esp, 0x10
cmp eax, esi
mov dword [esp + 0x5c], eax
je 0x457e82
mov eax, dword [esp + 0x30]
mov ecx, ebx
and ecx, 0xffffff
or ecx, 0x15000000
mov dword [eax], ecx
add eax, 4
mov edx, edi
mov dword [esp + 0x30], eax
add eax, ebx
and edx, 0xffffff
or edx, 0x16000000
mov dword [eax], edx
add eax, 4
lea ebx, [eax + edi]
and ebp, 0xffffff
mov ecx, 1
or ebp, 0x1a000000
mov dword [ebx], ebp
add ebx, 4
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x94], eax
call fcn.0049a700
mov edi, dword [esp + 0x28]
call fcn.0049a7f0
mov dword [ebx], edi
mov bp, word [edi + 0xa2]
add bp, word [esp + 0x20]
mov edi, dword [edi + 0x8c]
add ebx, 4
cmp edi, esi
mov word [esp + 0x26], bp
je 0x457de9
mov esi, dword [esp + 0x40]
add esi, 6
mov eax, dword [esp + 0x24]
mov dword [esi - 6], edi
movzx ecx, word [edi + 0x9c]
mov word [esi - 2], cx
mov dx, word [edi + 0x9e]
mov word [esi], dx
mov dword [esi + 2], eax
movzx ecx, word [edi + 0xa2]
sub cx, word [edi + 0x9e]
add cx, word [esp + 0x20]
add bp, cx
mov word [esp + 0x26], bp
call fcn.0049a7f0
mov eax, dword [esp + 0x30]
mov dword [ebx], edi
mov dword [eax], edi
add eax, 4
mov dword [esp + 0x30], eax
or eax, 0xffffffff
mov dword [esp + 0x74], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x7c], edi
mov edx, dword [edi + 0xc]
imul edx, edx, 0x84
mov ecx, dword [edx + 0x62d91c]
lea eax, [esp + 0x68]
push eax
add ebx, 4
call ecx
mov edi, dword [edi + 0x8c]
add esp, 4
add esi, 0xc
test edi, edi
jne 0x457d5a
xor esi, esi
mov ebp, dword [esp + 0x38]
cmp ebp, 1
mov dword [esp + 0x24], 1
jl 0x458146
fild dword [esp + 0x38]
mov dword [esp + 0x3c], 1
fstp qword [esp + 0x48]
fild dword [esp + 0x24]
mov eax, dword [esp + 0x44]
cmp eax, 1
fdiv qword [esp + 0x48]
fst qword [esp + 0x60]
jle 0x457fad
fld1
mov edi, dword [esp + 0x40]
fsubrp st(1)
add edi, 8
add eax, 0xffffffff
mov ebp, eax
fstp qword [esp + 0x30]
jmp 0x457e40
mov esi, dword [edi - 8]
mov eax, esi
call fcn.0049b260
movsx edx, word [edi - 4]
movsx eax, word [edi]
mov dword [esp + 0x20], edx
fild dword [esp + 0x20]
mov dword [esp + 0x20], eax
fmul qword [esp + 0x30]
fild dword [esp + 0x20]
fmul qword [esp + 0x60]
faddp st(1)
fld qword [0x650ce0]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x457e9b
fstp st(0)
mov bx, 0x7530
jmp 0x457ece
mov eax, dword [esp + 0x40]
push eax
call fcn.005ce619
mov eax, dword [esp + 0x40]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
fld qword [0x650cd8]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x457eb2
fstp st(0)
mov bx, 0x8ad0
jmp 0x457ece
fadd qword [0x650c98]
sub esp, 8
fstp qword [esp]
call fcn.00602bb0
add esp, 8
call fcn.005d9ed0
mov bx, ax
movsx ecx, word [edi - 2]
movsx edx, word [edi + 2]
mov dword [esp + 0x20], ecx
fild dword [esp + 0x20]
mov dword [esp + 0x20], edx
fmul qword [esp + 0x30]
fild dword [esp + 0x20]
fmul qword [esp + 0x60]
faddp st(1)
fld qword [0x650ce0]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x457f07
fstp st(0)
mov ax, 0x7530
jmp 0x457f37
fld qword [0x650cd8]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x457f1e
fstp st(0)
mov ax, 0x8ad0
jmp 0x457f37
fadd qword [0x650c98]
sub esp, 8
fstp qword [esp]
call fcn.00602bb0
add esp, 8
call fcn.005d9ed0
movsx ecx, word [esi + 0x9c]
movsx edx, bx
sub edx, ecx
mov dword [esp + 0x20], edx
movsx edx, ax
fild dword [esp + 0x20]
fstp qword [esp + 0xa8]
movsx ecx, word [esi + 0x9e]
sub edx, ecx
mov ecx, dword [0x629fbc]
mov dword [esp + 0x20], edx
push ecx
lea edx, [esp + 0xac]
fild dword [esp + 0x24]
push edx
push esi
push esi
fstp qword [esp + 0xc0]
mov eax, dword [esi + 0xc]
imul eax, eax, 0x84
mov eax, dword [eax + 0x62d92c]
call eax
add esp, 0x10
mov eax, esi
call fcn.0049b260
add edi, 0xc
sub ebp, 1
jne 0x457e40
mov ebp, dword [esp + 0x38]
xor esi, esi
jmp 0x457faf
fstp st(0)
cmp dword [esp + 0x24], ebp
jge 0x458133
fld qword [0x650c98]
fdiv qword [esp + 0x48]
fmul qword [0x650c90]
call fcn.005d9ed0
mov edi, eax
cmp edi, esi
je 0x458060
mov eax, dword [0x692a7c]
cmp eax, esi
jne 0x45803f
push 0x685a18
call dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
test eax, eax
je 0x458016
lea ecx, [esp + 0x28]
push ecx
mov dword [0x692a7c], 1
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea esi, [esp + 0x28]
call fcn.0053b1d0
mov ebp, dword [esp + 0x38]
xor esi, esi
jmp 0x458068
mov dword [0x692a7c], 2
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0x2c], esi
lea esi, [esp + 0x28]
mov dword [esp + 0x28], eax
call fcn.0053b1d0
mov ebp, dword [esp + 0x38]
xor esi, esi
jmp 0x458068
cmp eax, 1
jne 0x458020
lea ecx, [esp + 0x28]
push ecx
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
lea esi, [esp + 0x28]
call fcn.0053b1d0
mov ebp, dword [esp + 0x38]
xor esi, esi
jmp 0x458068
mov dword [esp + 0x28], esi
mov dword [esp + 0x2c], esi
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x28]
push edx
push eax
call fcn.0053b310
add esp, 8
test eax, eax
jne 0x458133
push 4
call fcn.004f0110
add esp, 4
test eax, eax
jne 0x45812c
mov eax, dword [0x690c9c]
cmp eax, esi
je 0x4580d9
cmp dword [0x691980], esi
jne 0x4580d9
mov cx, word [eax + 0x182]
cmp cx, word [eax + 0x17e]
jl 0x4580d9
mov dx, word [eax + 0x180]
cmp dx, word [eax + 0x17c]
jl 0x4580d9
mov eax, dword [eax + 0x3a0]
cmp eax, esi
je 0x4580d9
mov ebx, 1
call fcn.004ecea0
mov dword [0x691950], esi
call fcn.00454690
cmp dword [0x691950], esi
je 0x458101
cmp dword [0x69194c], 0xfa
jge 0x458110
add dword [0x69194c], 0x1e
jmp 0x458110
cmp dword [0x69194c], esi
je 0x458110
sub dword [0x69194c], 0xf
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x28]
push eax
push ecx
call fcn.0053b310
add esp, 8
test eax, eax
je 0x458082
jmp 0x458133
lea edx, [ebp - 1]
mov dword [esp + 0x24], edx
mov eax, dword [esp + 0x24]
add eax, 1
cmp eax, ebp
mov dword [esp + 0x24], eax
jle 0x457e0e
mov eax, dword [esp + 0x5c]
push esi
push eax
call fcn.004c5c80
mov ecx, dword [esp + 0x48]
push ecx
call fcn.005ce619
add esp, 0xc
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret
pop edi
mov eax, ebp
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret