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

Disassembly:
sub esp, 0x40
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
push ebx
push ebp
push esi
push eax
mov eax, dword [esp + 0x5c]
push ecx
mov ecx, dword [esp + 0x5c]
push edx
mov edx, dword [esp + 0x5c]
push eax
push ecx
xor ebx, ebx
or esi, 0xffffffff
push edx
xor ebp, ebp
mov dword [esp + 0x28], 1
mov dword [esp + 0x24], ebx
mov dword [esp + 0x50], esi
call fcn.00554810
add esp, 0x18
test eax, eax
jge 0x554c70
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_QueryPerformanceFrequency]
fild qword [esp + 0x1c]
lea ecx, [esp + 0x24]
push ecx
fdivr dword [0x649444]
fstp dword [esp + 0x1c]
call dword [sym.imp.kernel32.dll_QueryPerformanceCounter]
push edi
lea edx, [esp + 0x20]
push edx
call dword [sym.imp.kernel32.dll_QueryPerformanceCounter]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, eax
sub edx, dword [esp + 0x28]
mov edi, ecx
sbb edi, dword [esp + 0x2c]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], edi
fild qword [esp + 0x30]
xor edi, edi
cmp ebp, ebx
mov dword [esp + 0x28], eax
fmul dword [esp + 0x1c]
mov dword [esp + 0x2c], ecx
fstp dword [esp + 0x18]
jne 0x554d00
cmp esi, ebx
jne 0x554d00
call fcn.00554590
cmp eax, 1
jne 0x554d00
push eax
call fcn.004b5330
push eax
call fcn.00541830
push ebx
push 0x1d
call fcn.005417c0
add esp, 0x10
mov ebp, 1
cmp dword [esp + 0x10], ebx
je 0x554d13
call fcn.005547c0
test eax, eax
jne 0x554e56
call fcn.00552b90
lea eax, [esp + 0x40]
push ebx
push eax
mov dword [esp + 0x48], 0xa
mov byte [esp + 0x4c], bl
mov byte [esp + 0x4d], bl
call fcn.00552910
add esp, 8
cmp dword [esp + 0x14], ebx
je 0x554d49
cmp dword [esp + 0x10], ebx
jne 0x554d5b
cmp dword [esp + 0x40], 0xa
je 0x554d5b
call fcn.005547a0
call fcn.00541810
mov dword [esp + 0x10], 1
call fcn.0051d140
test eax, eax
jne 0x554da5
mov ecx, dword [esp + 0x18]
push ecx
call fcn.00554600
mov dword [esp + 0x18], eax
mov eax, dword [0x7060d0]
mov edx, dword [eax]
add esp, 4
push eax
call dword [edx + 0xa4]
call fcn.00554590
cmp esi, eax
jne 0x554e12
call fcn.0051d7e0
push ebx
call fcn.00554670
add esp, 4
call fcn.0051d820
jmp 0x554db8
mov eax, dword [0x7060d0]
mov ecx, dword [eax]
push eax
call dword [ecx + 0xa4]
call fcn.00554590
mov edi, 1
call fcn.00554590
test eax, eax
jle 0x554e12
movss xmm0, dword [0xa3a150]
addss xmm0, dword [esp + 0x18]
movaps xmm1, xmm0
mulss xmm1, dword [0x64e4a4]
cvttss2si esi, xmm1
cmp esi, edi
cvtsi2ss xmm1, esi
mulss xmm1, dword [0x64e36c]
subss xmm0, xmm1
movss dword [0xa3a150], xmm0
jle 0x554e01
mov esi, edi
call fcn.005547c0
push eax
push esi
push ebx
push ebx
call fcn.0051d850
add esp, 0x10
mov eax, dword [0x7060d0]
mov edx, dword [eax]
push eax
call dword [edx + 0xa8]
call fcn.0051d840
test eax, eax
je 0x554e32
call fcn.005418d0
test al, 1
je 0x554e56
push ebx
call fcn.005416b0
add esp, 4
cmp edi, ebx
je 0x554e44
call fcn.005546a0
mov esi, dword [esp + 0x3c]
call fcn.00554590
mov dword [esp + 0x3c], eax
jmp 0x554c95
call fcn.005547a0
call fcn.005545a0
call fcn.00541810
push 1
call fcn.005416b0
add esp, 4
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x40
ret