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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x111e26a8
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push edi
mov eax, dword [0x11279148]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov eax, dword [esi + 0x924]
mov ecx, dword [esi + 0x134]
mov edi, dword [esi + 0x920]
mov edx, dword [esi + 0x91c]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov byte [esi + 0x910], 1
mov dword [esi + 0x924], eax
mov dword [esi + 0x920], eax
mov eax, dword [ecx]
mov ebx, ecx
mov dword [ebp - 0x10], edx
mov edx, dword [eax + 0x8c]
mov dword [ebp - 0x18], ebx
call edx
mov ecx, dword [esi + 0x134]
call fcn.110c4530
mov ecx, dword [esi + 0x134]
cmp eax, 3
jne 0x110cffa8
mov eax, dword [ecx]
mov edx, dword [eax + 0x10]
call edx
jmp 0x110cffad
call fcn.110c2eb0
cmp dword [esi + 0x840], 0
mov dword [ebp - 0x14], eax
je 0x110d011a
test byte [esi + 0x928], 2
jne 0x110d011a
add dword [esi + 0x7e0], edi
lea eax, [edi + 0xfff]
cdq
and edx, 0xfff
add eax, edx
sar eax, 0xc
lea ecx, [edi + eax*4]
lea edx, [eax + ecx + 0x22]
push edx
call fcn.11170a40
add esp, 4
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x14]
lea ecx, [ebp - 0x2c]
push ecx
mov dword [esi + 0x92c], 0
mov dword [esi + 0x8cc], eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov edx, dword [ebp - 0x14]
mov eax, dword [ebp - 0x1c]
mov ecx, dword [ebp - 0x10]
push esi
push 0x110c3c90
push edx
mov edx, dword [esi + 0x914]
add eax, 2
push eax
push edi
add ecx, 2
push ecx
push edx
call fcn.110e6670
mov edi, eax
add esp, 0x1c
lea eax, [ebp - 0x24]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
mov ecx, dword [ebp - 0x24]
sub ecx, dword [ebp - 0x2c]
mov edx, dword [ebp - 0x20]
sbb edx, dword [ebp - 0x28]
add dword [esi + 0x7e8], ecx
mov eax, dword [esi + 0x92c]
mov ecx, dword [ebp - 0x1c]
adc dword [esi + 0x7ec], edx
add dword [esi + 0x7dc], edi
add ecx, eax
neg eax
sbb eax, eax
and eax, 0xffff8000
add eax, 0x8046
mov word [ecx], ax
sub edi, dword [esi + 0x92c]
mov eax, dword [esi + 0x928]
mov edx, dword [ebx]
mov edx, dword [edx + 0x4c]
push eax
add edi, 2
push edi
push ecx
mov ecx, ebx
call edx
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x110d00ab
push eax
call sub.MSVCR100.dll_void___cdecl_operator_delete___void__
add esp, 4
mov ebx, dword [ebx + 0x2c]
mov ebx, dword [ebx + 0x58]
lea edi, [ebx + 0xde30]
push edi
mov dword [ebp - 0x1c], edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
cmp dword [esi + 0x138], 0
mov dword [ebp - 4], 0
jne 0x110d00fb
lea eax, [ebp - 0x18]
push eax
lea ecx, [ebp - 0x2c]
push ecx
lea ecx, [ebx + 0xde48]
call fcn.110cc1b0
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x2c]
push edx
push eax
lea ecx, [ebp - 0x18]
push ecx
lea ecx, [ebx + 0xde48]
call fcn.1103f7c0
push edi
mov byte [esi + 0x910], 0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [ebp - 0x1c], 1
jne 0x110d0180
mov eax, dword [ebx]
mov edx, dword [eax + 0xc]
mov ecx, ebx
call edx
cmp edi, eax
jg 0x110d0180
mov ecx, dword [esi + 0x928]
mov eax, dword [ebp - 0x10]
mov edx, dword [ebx]
mov edx, dword [edx + 0x4c]
push ecx
add eax, 4
add edi, 0xfffffffe
push edi
push eax
mov ecx, ebx
mov dword [ebp - 0x1c], eax
call edx
mov eax, dword [ebp - 0x1c]
mov cx, word [eax]
mov edx, 0xfff
xor eax, eax
and cx, dx
cmp cx, 0x32
sete al
mov byte [esi + 0x910], 0
mov dword [esi + 0x918], eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop ebx
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov eax, 0x8000
test edi, edi
je 0x110d00ab
mov edx, dword [ebp - 0x14]
add edx, 0xfffffffe
mov dword [ebp - 0x1c], edx
mov ebx, dword [ebp - 0x1c]
cmp edi, ebx
jle 0x110d01a4
or eax, 0x44
jmp 0x110d01a9
mov ebx, edi
or eax, 0x45
mov edx, dword [ebp - 0x10]
mov word [edx], ax
mov eax, dword [ebp - 0x18]
mov edx, dword [eax]
mov eax, dword [esi + 0x928]
mov edx, dword [edx + 0x4c]
or eax, ecx
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [ebx + 2]
push ecx
mov ecx, dword [ebp - 0x18]
push eax
call edx
add dword [ebp - 0x10], ebx
xor eax, eax
sub edi, ebx
mov ecx, 0x800
jne 0x110d0198
mov ebx, dword [ebp - 0x18]
jmp 0x110d00ab