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

Disassembly:
push edi
lea edi, [esp + 8]
and esp, 0xfffffff8
push dword [edi - 4]
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x70
call fcn.00492450
mov edi, eax
mov dword [ebp - 0x5c], eax
call fcn.0054f6e0
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3f8f
xor eax, eax
test edi, edi
setne al
mov dword [esp + 4], 0x573220
mov dword [esp], eax
call fcn.00493590
mov dword [esp], 0
mov ecx, 0x55db00
mov eax, edi
mov edx, 8
call fcn.004af180
test eax, eax
je 0x4c73fa
mov edi, eax
mov eax, dword [eax]
lea edx, [ebp - 0x48]
mov dword [esp + 4], edx
mov dword [esp], edi
call dword [eax + 0x2c]
sub esp, 8
mov ebx, eax
mov eax, 0x3f99
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_get_Direct3D3_interface__hr__lx._n
mov dword [esp], ebx
call fcn.00493590
mov eax, dword [edi]
lea edx, [ebp - 0x4c]
mov dword [esp], edi
mov dword [esp + 4], edx
call dword [eax + 0x3c]
sub esp, 8
mov ebx, eax
mov eax, 0x3f9c
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], 0x576204
mov dword [esp], ebx
call fcn.00493590
mov dword [esp], 0x280
xor ecx, ecx
xor edx, edx
mov dword [esp + 4], 0x1e0
mov eax, edi
call fcn.004935b0
mov dword [ebp - 0x54], eax
mov ebx, eax
mov eax, dword [edi]
mov dword [esp + 4], ebx
mov dword [esp], edi
call dword [eax + 0x30]
sub esp, 8
mov ebx, eax
mov eax, 0x3f9f
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], str.Failed_to_set_current_viewport__hr__lx._n
mov dword [esp], ebx
call fcn.00493590
lea eax, [ebp - 0x40]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
sub esp, 4
mov ebx, eax
mov eax, 0x3fa4
call fcn.00492d60
mov dword [esp], ebx
lea ebx, [ebp - 0x50]
mov dword [esp + 4], 0x577fa8
call fcn.00493590
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x38], 0x10
mov dword [ebp - 0x34], 0x10000
mov dword [ebp - 0x30], 0x42
mov dword [ebp - 0x2c], 0x1002
mov edx, dword [eax]
mov dword [esp + 8], ebx
lea ebx, [ebp - 0x38]
mov dword [esp + 4], ebx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x14
mov ebx, eax
mov eax, 0x3fab
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], 0x576c50
mov dword [esp], ebx
lea ebx, [ebp - 0x44]
call fcn.00493590
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x2000
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0x10
mov ebx, eax
mov eax, 0x3fad
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], 0x577000
mov dword [esp], ebx
call fcn.00493590
mov eax, dword [ebp - 0x2c]
shr eax, 2
je 0x4c6ac8
xor edx, edx
lea esi, [esi]
lea esi, [esi]
mov eax, edx
fld1
add edx, 1
fchs
shl eax, 6
add eax, dword [ebp - 0x44]
fst dword [eax]
fst dword [eax + 4]
fldz
mov dword [eax + 0xc], 0xffff0000
fst dword [eax + 8]
fxch st(1)
fst dword [eax + 0x10]
fld1
mov dword [eax + 0x1c], 0xff00ff00
fst dword [eax + 0x14]
fxch st(2)
fst dword [eax + 0x18]
fxch st(2)
fst dword [eax + 0x20]
fxch st(1)
fstp dword [eax + 0x24]
fxch st(1)
fst dword [eax + 0x28]
fxch st(1)
fst dword [eax + 0x30]
fstp dword [eax + 0x34]
mov dword [eax + 0x2c], 0xff0000ff
mov dword [eax + 0x3c], 0xffffffff
fstp dword [eax + 0x38]
mov eax, dword [ebp - 0x2c]
shr eax, 2
cmp edx, eax
jb 0x4c6a60
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 4
mov ebx, eax
mov eax, 0x3fb3
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], 0x577028
mov dword [esp], ebx
call fcn.00493590
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
mov dword [esp], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xff0000ff
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x555830
mov dword [esp + 4], 1
call dword [eax + 0x50]
sub esp, 0x1c
mov ebx, eax
mov eax, 0x3fb7
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], 0x577547
mov dword [esp], ebx
call fcn.00493590
mov eax, dword [edi]
mov dword [esp], edi
call dword [eax + 0x24]
sub esp, 4
mov ebx, eax
mov eax, 0x3fb9
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], 0x576280
mov dword [esp], ebx
call fcn.00493590
mov eax, dword [edi]
mov dword [esp + 0x14], 0
mov edx, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edx
mov edx, dword [ebp - 0x50]
mov dword [esp + 4], 5
mov dword [esp + 8], edx
mov dword [esp], edi
call dword [eax + 0x88]
sub esp, 0x18
mov ebx, eax
mov eax, 0x3fbb
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], 0x5762a1
mov dword [esp], ebx
call fcn.00493590
mov eax, dword [edi]
mov dword [esp], edi
call dword [eax + 0x28]
sub esp, 4
mov ebx, eax
mov eax, 0x3fbd
call fcn.00492d60
mov dword [esp + 8], ebx
not ebx
shr ebx, 0x1f
mov dword [esp + 4], 0x5762bc
mov dword [esp], ebx
call fcn.00493590
mov eax, dword [ebp - 0x4c]
mov edx, 0x140
mov ecx, 0xf0
call fcn.00493840
lea eax, [ebp - 0x28]
mov ebx, dword [sym.imp.kernel32.dll_QueryPerformanceCounter]
mov dword [esp], eax
call ebx
sub esp, 4
mov esi, eax
mov eax, 0x3fc3
call fcn.00492d60
mov dword [esp], esi
mov dword [esp + 4], 0x577fd8
call fcn.00493590
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
mov dword [esp], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xff0000ff
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x555830
mov dword [esp + 4], 1
call dword [eax + 0x50]
sub esp, 0x1c
mov esi, eax
mov eax, 0x3fc5
call fcn.00492d60
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x577547
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp], edi
call dword [eax + 0x24]
sub esp, 4
mov esi, eax
mov eax, 0x3fc7
call fcn.00492d60
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x576280
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp + 0x14], 0
mov edx, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edx
mov edx, dword [ebp - 0x50]
mov dword [esp + 4], 5
mov dword [esp + 8], edx
mov dword [esp], edi
call dword [eax + 0x88]
sub esp, 0x18
mov esi, eax
mov eax, 0x3fc9
call fcn.00492d60
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x5762a1
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp], edi
call dword [eax + 0x28]
sub esp, 4
mov esi, eax
mov eax, 0x3fcb
call fcn.00492d60
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x5762bc
mov dword [esp], esi
call fcn.00493590
mov eax, dword [ebp - 0x4c]
mov edx, 0x140
mov ecx, 0xf0
call fcn.00493840
lea eax, [ebp - 0x20]
mov dword [esp], eax
call ebx
sub esp, 4
mov esi, eax
mov eax, 0x3fcf
call fcn.00492d60
mov dword [esp], esi
mov dword [esp + 4], 0x577fd8
call fcn.00493590
mov ecx, dword [ebp - 0x54]
mov eax, dword [ecx]
mov dword [esp], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 0xff0000ff
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x555830
mov dword [esp + 4], 1
call dword [eax + 0x50]
sub esp, 0x1c
mov esi, eax
mov eax, 0x3fd1
call fcn.00492d60
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x577547
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp], edi
call dword [eax + 0x24]
sub esp, 4
mov esi, eax
mov eax, 0x3fd3
call fcn.00492d60
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x576280
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp + 0x14], 0
mov dword [esp + 0x10], 3
mov dword [esp + 0xc], 0
mov edx, dword [ebp - 0x50]
mov dword [esp + 4], 5
mov dword [esp + 8], edx
mov dword [esp], edi
call dword [eax + 0x88]
sub esp, 0x18
mov esi, eax
mov eax, 0x3fd5
call fcn.00492d60
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x5762a1
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp], edi
call dword [eax + 0x28]
sub esp, 4
mov esi, eax
mov eax, 0x3fd7
call fcn.00492d60
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x5762bc
mov dword [esp], esi
call fcn.00493590
mov eax, dword [ebp - 0x4c]
mov ecx, 0xf0
mov edx, 0x140
call fcn.00493840
lea eax, [ebp - 0x18]
mov dword [esp], eax
call ebx
sub esp, 4
mov ebx, eax
mov eax, 0x3fda
call fcn.00492d60
mov dword [esp], ebx
mov dword [esp + 4], 0x577fd8
call fcn.00493590
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x40]
mov edx, dword [ebp - 0x3c]
sub esp, 4
shld edx, eax, 0xc
shl eax, 0xc
mov ebx, eax
mov esi, edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x28]
sbb edx, dword [ebp - 0x24]
add eax, dword [ebp - 0x20]
adc edx, dword [ebp - 0x1c]
sub eax, dword [ebp - 0x18]
sbb edx, dword [ebp - 0x14]
imul ecx, edx, 0xa
mov dword [ebp - 0x58], ecx
mov ecx, 0xa
mul ecx
mov ecx, dword [ebp - 0x58]
mov dword [esp], ebx
xor ebx, ebx
mov dword [esp + 4], esi
add edx, ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.00550de0
add eax, 5
and eax, 0xfffffffc
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp - 0x48]
lea ecx, [ebp - 0x50]
mov edx, dword [eax]
mov dword [esp + 8], ecx
lea ecx, [ebp - 0x38]
mov dword [esp + 4], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp], eax
call dword [edx + 0x24]
sub esp, 0x14
mov esi, eax
call fcn.0054f6e0
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3fe7
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x576c50
mov dword [esp], esi
call fcn.00493590
mov eax, dword [ebp - 0x50]
lea ecx, [ebp - 0x44]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 4], 0x2000
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0x10
mov esi, eax
call fcn.0054f6e0
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3fe9
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x577000
mov dword [esp], esi
call fcn.00493590
mov eax, dword [ebp - 0x2c]
shr eax, 2
je 0x4c7088
xor edx, edx
nop
mov eax, edx
fld1
add edx, 1
fchs
shl eax, 6
add eax, dword [ebp - 0x44]
fst dword [eax]
fst dword [eax + 4]
fldz
mov dword [eax + 0xc], 0xffff0000
fst dword [eax + 8]
fxch st(1)
fst dword [eax + 0x10]
fld1
mov dword [eax + 0x1c], 0xff00ff00
fst dword [eax + 0x14]
fxch st(2)
fst dword [eax + 0x18]
fxch st(2)
fst dword [eax + 0x20]
fxch st(1)
fstp dword [eax + 0x24]
fxch st(1)
fst dword [eax + 0x28]
fxch st(1)
fst dword [eax + 0x30]
fstp dword [eax + 0x34]
mov dword [eax + 0x2c], 0xff0000ff
mov dword [eax + 0x3c], 0xffffffff
fstp dword [eax + 0x38]
mov eax, dword [ebp - 0x2c]
shr eax, 2
cmp edx, eax
jb 0x4c7020
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 4
mov esi, eax
call fcn.0054f6e0
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3fef
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x577028
mov dword [esp], esi
call fcn.00493590
mov ecx, dword [ebp - 0x54]
fldz
mov eax, dword [ecx]
fstp dword [esp + 0x14]
mov dword [esp], ecx
mov dword [esp + 0x18], 0
mov dword [esp + 0x10], 0xff0000ff
mov dword [esp + 0xc], 1
mov dword [esp + 8], 0x555830
mov dword [esp + 4], 1
call dword [eax + 0x50]
sub esp, 0x1c
mov esi, eax
call fcn.0054f6e0
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3ff3
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x577547
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp], edi
call dword [eax + 0x24]
sub esp, 4
mov esi, eax
call fcn.0054f6e0
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3ff5
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x576280
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp + 0x14], 0
mov edx, dword [ebp - 0x2c]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], edx
mov edx, dword [ebp - 0x50]
mov dword [esp + 4], 5
mov dword [esp + 8], edx
mov dword [esp], edi
call dword [eax + 0x88]
sub esp, 0x18
mov esi, eax
call fcn.0054f6e0
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3ff7
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x5762a1
mov dword [esp], esi
call fcn.00493590
mov eax, dword [edi]
mov dword [esp], edi
call dword [eax + 0x28]
sub esp, 4
mov esi, eax
call fcn.0054f6e0
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3ff9
mov dword [esp + 8], esi
not esi
shr esi, 0x1f
mov dword [esp + 4], 0x5762bc
mov dword [esp], esi
call fcn.00493590
mov eax, dword [ebp - 0x50]
mov esi, dword [ebx*8 + 0x57ab60]
lea ecx, [ebp - 0x44]
mov edx, dword [eax]
mov dword [esp + 8], ecx
mov ecx, esi
or ecx, 1
mov dword [esp + 0xc], 0
mov dword [esp + 4], ecx
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 0x10
mov dword [ebp - 0x58], eax
call fcn.0054f6e0
mov edx, dword [ebp - 0x58]
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x3ffd
mov dword [esp + 8], edx
not edx
shr edx, 0x1f
mov dword [esp + 4], 0x577000
mov dword [esp], edx
call fcn.00493590
mov eax, dword [ebp - 0x2c]
fld1
fchs
shr eax, 2
add eax, 0x3ffffff
shl eax, 6
add eax, dword [ebp - 0x44]
fst dword [eax]
fst dword [eax + 4]
fldz
mov dword [eax + 0xc], 0xffffff00
fst dword [eax + 8]
fxch st(1)
fst dword [eax + 0x10]
fld1
mov dword [eax + 0x1c], 0xffffff00
fst dword [eax + 0x14]
fxch st(2)
fst dword [eax + 0x18]
fxch st(2)
fst dword [eax + 0x20]
fxch st(1)
fstp dword [eax + 0x24]
fxch st(1)
fst dword [eax + 0x28]
fxch st(1)
fst dword [eax + 0x30]
fstp dword [eax + 0x34]
fstp dword [eax + 0x38]
mov dword [eax + 0x2c], 0xffffff00
mov dword [eax + 0x3c], 0xffffff00
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 0x10]
sub esp, 4
mov dword [ebp - 0x58], eax
call fcn.0054f6e0
mov edx, dword [ebp - 0x58]
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x4000
mov dword [esp + 8], edx
not edx
shr edx, 0x1f
mov dword [esp + 4], 0x577028
mov dword [esp], edx
call fcn.00493590
mov eax, dword [ebp - 0x4c]
mov ecx, 0xf0
mov edx, 0x140
call fcn.00493840
mov ecx, 1
mov edx, 0xffff00
call fcn.00492120
mov dword [ebp - 0x58], eax
call fcn.0054f6e0
mov edx, 0x577f5c
mov ecx, 0x577f6b
mov dword [eax], 0x571ae8
mov dword [eax + 4], 0x4004
mov eax, dword [ebx*8 + 0x57ab64]
mov dword [esp + 0xc], esi
test eax, eax
mov dword [esp + 4], 0x578000
cmovne ecx, edx
mov dword [esp + 8], ecx
mov edx, dword [ebp - 0x58]
cmp eax, edx
sete al
add ebx, 1
movzx eax, al
mov dword [esp], eax
call fcn.00493590
mov eax, dword [ebp - 0x50]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
sub esp, 4
cmp ebx, 4
jne 0x4c6f69
mov edx, dword [ebp - 0x54]
mov eax, edi
call fcn.00493950
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [ebp - 0x48]
sub esp, 4
mov edx, dword [eax]
mov dword [esp], eax
call dword [edx + 8]
mov eax, dword [edi]
sub esp, 4
mov dword [esp], edi
call dword [eax + 8]
sub esp, 4
mov ebx, eax
mov eax, 0x400e
call fcn.00492d60
xor eax, eax
test ebx, ebx
mov dword [esp + 8], ebx
sete al
mov dword [esp + 4], 0x571f6c
mov dword [esp], eax
call fcn.00493590
mov eax, dword [ebp - 0x5c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_DestroyWindow]
sub esp, 4
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
lea esp, [edi - 8]
pop edi
ret
mov eax, 0x3f93
call fcn.00492d60
mov dword [esp], 0x577f78
call fcn.00492ff0
mov eax, dword [ebp - 0x5c]
mov dword [esp], eax
call dword [sym.imp.user32.dll_DestroyWindow]
sub esp, 4
jmp 0x4c73ee