Function at 0x451d50
Capabilities:
Check for time delay via gettickcount
Check for time delay via queryperformancecounter

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x46a148
mov eax, dword fs:[0]
push eax
sub esp, 0x31c
push ebx
push esi
push edi
mov eax, dword [0x48700c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
cmp dword [eax + 0x10], 0
je 0x452278
mov eax, dword [edi + 0x240]
or eax, dword [edi + 0x244]
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
jne 0x451ff2
xorps xmm0, xmm0
push 1
movlpd qword [ebp - 0x20], xmm0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
cmp dword [0x48b398], 0
mov dword [ebp - 0x14], eax
jne 0x451e96
cmp dword [0x48b39c], 0
jne 0x451e96
push 0x48b398
call esi
test eax, eax
jne 0x451e96
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x476fd0]
mulsd xmm0, qword [0x476f78]
call fcn.00462a20
mov bl, byte [0x48b173]
lea ecx, [ebp - 0xe8]
sub esp, 8
mov dword [ebp - 0x10], edx
mov esi, eax
call fcn.00402c10
mov dword [ebp - 4], 0
lea ecx, [ebp - 0xe8]
mov eax, dword [ebp - 0xe8]
push 0
push 0
mov eax, dword [eax + 4]
add ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov byte [ebp - 0x37], bl
mov dword [ebp - 0x30], 4
mov byte [ebp - 0x38], 0
mov dword [ebp - 0x34], 0
lea eax, [ebp - 0xd8]
mov dword [ebp - 4], 1
push 0x47538c
push eax
call fcn.00403720
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0xe8]
call fcn.0042c650
jmp 0x451fb1
xor esi, esi
lea eax, [ebp - 0x28]
push eax
call ebx
test eax, eax
jne 0x451f72
cmp esi, 0xa
je 0x451ebf
inc esi
cmp esi, 0xa
jle 0x451e98
mov eax, dword [ebp - 0x1c]
mov esi, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
jmp 0x451fb1
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x476fd0]
mulsd xmm0, qword [0x476f78]
call fcn.00462a20
mov bl, byte [0x48b173]
lea ecx, [ebp - 0x1a8]
sub esp, 8
mov dword [ebp - 0x10], edx
mov esi, eax
call fcn.00402c10
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x1a8]
mov eax, dword [ebp - 0x1a8]
push 0
push 0
mov eax, dword [eax + 4]
add ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov byte [ebp - 0xf7], bl
mov dword [ebp - 0xf0], 4
mov byte [ebp - 0xf8], 0
mov dword [ebp - 0xf4], 0
lea eax, [ebp - 0x198]
mov dword [ebp - 4], 3
push 0x4753b0
push eax
call fcn.00403720
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x1a8]
call fcn.0042c650
jmp 0x451fb1
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x28]
call fcn.00462b80
mulsd xmm0, qword [0x476f80]
mov edx, dword [0x48b39c]
mov ecx, dword [0x48b398]
movsd qword [ebp - 0x20], xmm0
call fcn.00462b80
movsd xmm1, qword [ebp - 0x20]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.00462a20
mov esi, eax
mov dword [ebp - 0x10], edx
push dword [ebp - 0x14]
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
call eax
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
push 0x1f3
push 0xfffffc18
push dword [ebp - 0x10]
push esi
call fcn.00462780
mov ebx, dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov esi, dword [sym.imp.KERNEL32.dll_QueryPerformanceFrequency]
mov dword [edi + 0x240], eax
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
mov dword [edi + 0x244], edx
xorps xmm0, xmm0
push 1
movlpd qword [ebp - 0x28], xmm0
call eax
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
cmp dword [0x48b398], 0
mov dword [ebp - 0x14], eax
jne 0x4520e6
cmp dword [0x48b39c], 0
jne 0x4520e6
push 0x48b398
call esi
test eax, eax
jne 0x4520e6
call dword [sym.imp.KERNEL32.dll_GetTickCount]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x476fd0]
mulsd xmm0, qword [0x476f78]
call fcn.00462a20
mov bl, byte [0x48b173]
lea ecx, [ebp - 0x268]
sub esp, 8
mov dword [ebp - 0x10], edx
mov esi, eax
call fcn.00402c10
mov dword [ebp - 4], 4
lea ecx, [ebp - 0x268]
mov eax, dword [ebp - 0x268]
push 0
push 0
mov eax, dword [eax + 4]
add ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov byte [ebp - 0x1b7], bl
mov dword [ebp - 0x1b0], 4
mov byte [ebp - 0x1b8], 0
mov dword [ebp - 0x1b4], 0
lea eax, [ebp - 0x258]
mov dword [ebp - 4], 5
push 0x47538c
push eax
call fcn.00403720
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x268]
call fcn.0042c650
jmp 0x452200
xor esi, esi
lea eax, [ebp - 0x20]
push eax
call ebx
test eax, eax
jne 0x4521c1
cmp esi, 0xa
je 0x45210f
inc esi
cmp esi, 0xa
jle 0x4520e8
mov eax, dword [ebp - 0x24]
mov esi, dword [ebp - 0x28]
mov dword [ebp - 0x10], eax
jmp 0x452200
call dword [sym.imp.KERNEL32.dll_GetTickCount]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x476fd0]
mulsd xmm0, qword [0x476f78]
call fcn.00462a20
mov bl, byte [0x48b173]
lea ecx, [ebp - 0x328]
sub esp, 8
mov dword [ebp - 0x10], edx
mov esi, eax
call fcn.00402c10
mov dword [ebp - 4], 6
lea ecx, [ebp - 0x328]
mov eax, dword [ebp - 0x328]
push 0
push 0
mov eax, dword [eax + 4]
add ecx, eax
call dword [sym.imp.MSVCP140.dll_public:_void___thiscall_std::basic_ios_char__struct_std::char_traits_char__::clear_int__bool_]
mov byte [ebp - 0x277], bl
mov dword [ebp - 0x270], 4
mov byte [ebp - 0x278], 0
mov dword [ebp - 0x274], 0
lea eax, [ebp - 0x318]
mov dword [ebp - 4], 7
push 0x4753b0
push eax
call fcn.00403720
add esp, 8
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x328]
call fcn.0042c650
jmp 0x452200
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x20]
call fcn.00462b80
mulsd xmm0, qword [0x476f80]
mov edx, dword [0x48b39c]
mov ecx, dword [0x48b398]
movsd qword [ebp - 0x28], xmm0
call fcn.00462b80
movsd xmm1, qword [ebp - 0x28]
divsd xmm1, xmm0
movaps xmm0, xmm1
call fcn.00462a20
mov esi, eax
mov dword [ebp - 0x10], edx
push dword [ebp - 0x14]
mov eax, dword [sym.imp.KERNEL32.dll_GetCurrentThread]
call eax
push eax
call dword [sym.imp.KERNEL32.dll_SetThreadAffinityMask]
push 0x1f3
push 0xfffffc18
push dword [ebp - 0x10]
push esi
call fcn.00462780
mov ecx, edi
mov dword [edi + 0x248], eax
mov dword [edi + 0x24c], edx
call fcn.00452290
test al, al
je 0x452242
mov ecx, edi
call fcn.0044fed0
mov ebx, dword [ebp + 8]
lea ecx, [edi + 0x178]
push ebx
call fcn.0040a540
mov eax, dword [ebx + 0x10]
add dword [edi + 0x228], eax
adc dword [edi + 0x22c], 0
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [eax + 0x10]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4