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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xc0
mov esi, ecx
mov eax, dword [0x511014]
xor eax, ebp
mov dword [esp + 0xb8], eax
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 0xc]
xor eax, eax
mov ecx, edx
neg ecx
sbb eax, edi
jge 0x45d997
pcmpeqd xmm0, xmm0
lea eax, [esp + 0x68]
movdqa xmmword [eax - 8], xmm0
movdqa xmmword [eax + 8], xmm0
movdqa xmmword [eax + 0x18], xmm0
movdqa xmmword [eax + 0x28], xmm0
movdqa xmmword [eax + 0x38], xmm0
mov byte [eax - 8], 0
pxor xmm0, xmm0
movdqu xmmword [eax], xmm0
movdqu xmmword [eax + 0x10], xmm0
movdqu xmmword [eax + 0x20], xmm0
movdqu xmmword [eax + 0x30], xmm0
mov al, byte [esi + 4]
xor ecx, ecx
dec ecx
mov ebx, ecx
mov dword [esp + 0x1c], ecx
mov byte [esp + 0x1b], al
test al, al
mov dword [esp + 0x2c], esi
jne 0x45d7e7
mov eax, edx
not eax
mov ecx, edi
xor ecx, 0x7fffffff
or ecx, eax
mov dword [esp + 0x34], ebx
je 0x45d7d3
mov dword [esp + 0x20], edx
mov ecx, dword [0x514bd0]
cmp ecx, 0x493220
jne 0x45d7b9
xor eax, eax
lea esi, [esp + 0x48]
mov dword [esi + 4], eax
mov dword [esi], eax
push esi
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esi]
mov esi, dword [esi + 4]
cmp ebx, 0x7bd05af7
mov eax, esi
sbb eax, 0x863
jge 0x45da52
mov ecx, 0xf4240
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add ecx, edx
push dword [0x52120c]
push dword [0x521208]
push ecx
push eax
call fcn.004b5fc0
mov esi, dword [esp + 0x20]
add eax, esi
adc edx, edi
seto cl
mov ebx, edx
sar ebx, 0x1f
mov dword [esp + 0xc], edi
lea edi, [ebx - 0x80000000]
test cl, cl
cmove ebx, eax
mov dword [esp + 0x28], ebx
test cl, cl
cmove edi, edx
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0xc]
mov edx, esi
mov esi, dword [esp + 0x2c]
mov eax, edx
xor ecx, ecx
dec ecx
xor eax, ecx
mov ecx, edi
mov ebx, edi
mov edi, edx
mov edx, 0x7fffffff
xor ecx, edx
or ecx, eax
je 0x45d773
push 0
mov esi, 0x3e8
push esi
push ebx
push edi
call fcn.004b23a0
mov ecx, eax
mov dword [esp + 0xc], ebx
mov ebx, edx
mul esi
imul esi, ebx, 0x3e8
add esi, edx
cmp eax, edi
sbb esi, dword [esp + 0xc]
mov esi, dword [esp + 0x2c]
adc ecx, 0
adc ebx, 0
neg ebx
mov eax, 0
sbb eax, eax
or eax, ecx
push eax
push dword [esi]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
je 0x45d77a
jmp 0x45d8d9
mov eax, 0xffffffff
jmp 0x45d761
mov bl, 1
test byte [0x513224], 0x19
jne 0x45d9b5
cmp byte [esp + 0x60], 0
jne 0x45d889
cmp byte [esp + 0x1b], 0
jne 0x45d8a4
mov ecx, dword [esp + 0xb8]
xor ecx, ebp
call fcn.00496ce3
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 8
call dword [section..00cfg]
lea esi, [esp + 0x40]
push esi
call ecx
add esp, 4
mov eax, dword [esi]
mov edx, dword [esi + 4]
jmp 0x45d6d7
xor eax, eax
dec eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x14], 0x7fffffff
jmp 0x45d70d
mov dword [esp + 0x20], edx
call fcn.00459380
mov ebx, eax
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], 0
mov ecx, dword [0x52113c]
xor esi, esi
test ecx, ecx
jne 0x45dae3
mov eax, esi
shr eax, 0xe
mov ecx, esi
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x518914]
bt ecx, eax
jb 0x45daef
mov eax, esi
shr eax, 0x15
mov byte [eax + 0x520914], 1
test esi, esi
mov dword [esp + 0x1c], esi
jne 0x45dafd
xor ebx, ebx
dec ebx
lea esi, [esp + 0x48]
push 0x26
push str....._base_synchronizationwaitable_event.cc
push str.TimedWait
push esi
call fcn.00454af0
add esp, 0x10
lea ecx, [esp + 0x68]
push 1
push 0
push esi
call fcn.0046afe0
test byte [0x512ba0], 0x19
jne 0x45db15
mov byte [esp + 0x60], 1
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
jmp 0x45d65b
test byte [0x512ba0], 0x19
jne 0x45db45
lea ecx, [esp + 0x68]
call fcn.00471300
jmp 0x45d794
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jne 0x45db8a
mov eax, ecx
shr eax, 0xe
shr ecx, 0x13
mov ecx, dword [ecx*4 + 0x518914]
bt ecx, eax
jae 0x45d79f
push dword [esp + 0x1c]
call fcn.00454d60
add esp, 4
jmp 0x45d79f
mov ecx, dword [0x514bd0]
cmp ecx, 0x493220
jne 0x45d97d
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
lea eax, [esp + 0x48]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ebx, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
cmp ebx, 0x7bd05af7
mov eax, edi
sbb eax, 0x863
jge 0x45dbc3
mov eax, ebx
mov ecx, 0xf4240
mul ecx
imul ecx, edi, 0xf4240
add ecx, edx
push dword [0x52120c]
push dword [0x521208]
push ecx
push eax
call fcn.004b5fc0
mov ecx, dword [esp + 0x28]
sub ecx, eax
mov eax, dword [esp + 0x14]
sbb eax, edx
mov edx, ecx
seto cl
mov edi, eax
sar edi, 0x1f
test cl, cl
cmovne edx, edi
add edi, 0x80000000
test cl, cl
cmove edi, eax
xor ebx, ebx
mov eax, edx
neg eax
mov eax, 0
sbb eax, edi
jl 0x45d70d
jmp 0x45d789
call dword [section..00cfg]
lea eax, [esp + 0x48]
push eax
call ecx
add esp, 4
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
jmp 0x45d93f
mov ecx, esi
call fcn.0044f930
mov ebx, eax
mov ecx, dword [esp + 0xb8]
xor ecx, ebp
call fcn.00496ce3
mov eax, ebx
jmp 0x45d7af
mov edi, esi
mov esi, dword [0x515c3c]
xor edi, dword [0x515c38]
mov dword [esp + 0x54], 0x401170
mov dword [esp + 0x58], 0x506e90
push 8
call fcn.00494aa6
add esp, 4
mov dword [eax + 4], esi
mov dword [eax], edi
mov dword [esp + 0x4c], eax
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
sub esp, 0x1c
movsd xmm0, qword [esp + 0x5c]
movsd qword [esp + 0x10], xmm0
lea eax, [esp + 0x64]
mov dword [esp + 0x18], eax
mov dword [esp + 0xc], 0x502e28
mov dword [esp + 8], str.WaitableEvent::Wait_Complete
mov dword [esp + 4], 0x513224
mov dword [esp], 0x49
call section..text
add esp, 0x1c
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x45d789
mov esi, dword [esp + 0x4c]
call dword [section..00cfg]
push esi
call ecx
add esp, 4
jmp 0x45d789
mov eax, dword [0x521208]
mov dword [esp + 0xc], eax
mov ecx, dword [0x52120c]
mov dword [esp + 0x28], ecx
push ecx
push eax
push esi
push ebx
call fcn.004b5fc0
mov dword [esp + 0x14], eax
mov dword [esp + 0x30], edx
mul dword [esp + 0xc]
mov dword [esp + 0x24], eax
mov ecx, dword [esp + 0x14]
imul ecx, dword [esp + 0x28]
add edx, ecx
mov eax, dword [esp + 0x30]
imul ecx, eax, 0xf4240
mov dword [esp + 0x10], ecx
imul eax, dword [esp + 0xc]
add eax, edx
sub ebx, dword [esp + 0x24]
sbb esi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 0x14]
mul ecx
mov dword [esp + 0x14], eax
add edx, dword [esp + 0x10]
mov dword [esp + 0x10], edx
mov eax, ebx
mul ecx
imul ecx, esi, 0xf4240
add edx, ecx
push dword [esp + 0x28]
push dword [esp + 0x10]
push edx
push eax
call fcn.004b5fc0
add eax, dword [esp + 0x14]
adc edx, dword [esp + 0x10]
jmp 0x45d6d7
call fcn.004d7a40
mov esi, eax
jmp 0x45d80e
push esi
call fcn.00455550
add esp, 4
jmp 0x45d834
lea eax, [esp + 0x48]
mov ecx, esi
push eax
push 0x30
push 0
push ebx
call fcn.004d7280
mov ebx, eax
jmp 0x45d843
lea edx, [esp + 0x3c]
mov dword [edx], esi
xor eax, eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x40], eax
sub esp, 8
movq xmm0, qword [esp + 0x48]
movq qword [esp], xmm0
mov ecx, str.ScopedBlockingCallWithBaseSyncPrimitives
call fcn.004d87a0
add esp, 8
jmp 0x45d877
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x48], eax
sub esp, 0x18
movq xmm0, qword [esp + 0x60]
movq qword [esp + 0x10], xmm0
mov dword [esp + 0xc], 0x502e28
mov dword [esp + 8], 0x504a73
mov dword [esp + 4], 0x512ba0
mov dword [esp], 0x45
call fcn.00414a30
add esp, 0x18
jmp 0x45d896
mov eax, dword [esp + 0x34]
cmp dword [ecx + 0xc], eax
jbe 0x45dbac
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
mov ecx, dword [esp + 0x34]
shl ecx, 7
cmp dword [eax + ecx + 0x68], 0
jne 0x45dc54
mov ecx, dword [esp + 0x1c]
mov eax, dword [ecx + 4]
lock dec dword [eax + 0x38]
mov eax, dword [ecx + 4]
lock inc dword [eax + 0x3c]
jmp 0x45d8b0
mov esi, dword [0x521208]
mov dword [esp + 0x20], esi
mov eax, dword [0x52120c]
mov dword [esp + 0xc], eax
push eax
push esi
push edi
push ebx
call fcn.004b5fc0
mov dword [esp + 0x38], edx
mov ecx, eax
mul esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x30], ecx
imul ecx, dword [esp + 0xc]
add edx, ecx
mov esi, dword [esp + 0x2c]
mov eax, dword [esp + 0x38]
imul ecx, eax, 0xf4240
mov dword [esp + 0x24], ecx
imul eax, dword [esp + 0x20]
add eax, edx
sub ebx, dword [esp + 0x10]
sbb edi, eax
mov ecx, 0xf4240
mov eax, dword [esp + 0x30]
mul ecx
mov dword [esp + 0x10], eax
add edx, dword [esp + 0x24]
mov dword [esp + 0x24], edx
mov eax, ebx
mul ecx
imul ecx, edi, 0xf4240
add edx, ecx
push dword [esp + 0xc]
push dword [esp + 0x24]
push edx
push eax
call fcn.004b5fc0
add eax, dword [esp + 0x10]
adc edx, dword [esp + 0x24]
jmp 0x45d93f
mov edi, dword [0x52113c]
lea esi, [edi + 0x74]
push esi
call dword [sym.imp.KERNEL32.dll_TryAcquireSRWLockExclusive]
test al, al
je 0x45dc85
add edi, 0x48
mov ecx, dword [esp + 0x1c]
push edi
push dword [esp + 0x38]
call fcn.004d7640
push esi
call dword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
jmp 0x45dbac
mov ecx, esi
call fcn.004597a0
jmp 0x45dc68