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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x44
mov eax, dword [ebp + 0x10]
push ebx
push esi
lea ecx, [eax + 0x738]
mov esi, eax
push edi
mov dword [ebp + 0x10], esi
mov dword [ebp - 0x34], ecx
cmp eax, ecx
ja case.0x100366f6.30991
cmp esi, 0x78d7
ja 0x100366de
je 0x100366c1
cmp esi, 0x5be6
ja 0x1003667f
je 0x10036610
mov eax, esi
sub eax, 0x5b3e
je 0x100365f1
sub eax, 0x38
je 0x100364a0
sub eax, 0x38
jne case.0x100366f6.30992
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
jmp case.0x100366f6.30992
mov ecx, dword [0x1007d820]
mov dword [0x1007d818], 1
mov dword [0x1007d81c], 0
test ecx, ecx
jne case.0x100366f6.30992
mov ebx, 0x345f
jmp 0x100364d0
mov eax, ebx
sub eax, 0x345f
je 0x100365b8
sub eax, 3
jne 0x100365dd
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov eax, dword [0x1007d820]
test eax, eax
jne 0x100365ac
xor esi, esi
lea edi, [eax + 4]
cmp esi, 0x2a
ja case.0x10036512.1
movzx ecx, byte [esi + 0x10036898]
jmp dword [ecx*4 + 0x10036884]
adc al, 0xf2
push ebx
shr dword [edi - 0x75], 1
adc eax, 0x1007d81c
mov eax, dword [0x1007d818]
mov ecx, dword [ebp - 0x38]
push edx
mov edx, dword [ebp - 0x3c]
push eax
push ecx
push edx
call fcn.10003770
and eax, 0x7fffffff
sub dword [0x1007d814], eax
jmp case.0x10036512.1
mov dword [0x1007d820], 1
jmp case.0x10036512.1
lea eax, [ebp - 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_QueryPerformanceCounter]
push 0
push 0x5ecb
call fcn.100361a0
add esp, 8
mov dword [ebp - 0x40], edx
mov dword [0x1007d814], eax
jmp case.0x10036512.1
salc
stc
xchg esi, eax
dec ebp
fsubr qword [eax + 0x18]
fadd dword [edi]
adc bh, bh
adc eax, sym.imp.KERNEL32.dll_QueryPerformanceFrequency
mov ecx, dword [0x1007d818]
or ecx, dword [0x1007d81c]
jne case.0x10036512.1
mov dword [0x1007d818], 1
mov dword [0x1007d81c], ecx
add esi, 0xe
dec edi
jne 0x10036502
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x100365dd
push 0
push 0x453a
push 0
push 0
push 0
lea eax, [ebp - 0x10]
push 0
push eax
mov dword [ebp - 0x10], 0
call fcn.10010240
add esp, 0x1c
mov dword [ebp - 8], eax
add ebx, 3
cmp ebx, 0x3462
jbe 0x100364d0
jmp 0x10036866
xor eax, eax
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
mov dword [0x1007d820], ecx
mov dword [ebp + 0x10], eax
mov edx, dword [ebp + 0x10]
mov dword [0x1007d814], edx
jmp case.0x100366f6.30992
mov esi, dword [ebp + 0x14]
test esi, esi
je 0x1003663b
mov eax, dword [0x1007d81c]
mov ecx, dword [0x1007d818]
mov edx, dword [ebp - 0x38]
push eax
mov eax, dword [ebp - 0x3c]
push ecx
push edx
push eax
call fcn.10003770
mov ecx, dword [0x1007d814]
add ecx, eax
mov dword [esi], ecx
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x10036866
mov esi, dword [0x1007d81c]
mov edi, dword [0x1007d818]
mov edx, dword [ebp - 0x38]
mov eax, dword [ebp - 0x3c]
push esi
push edi
push edx
push eax
call fcn.10002ca0
push 0
push 0xf4240
push edx
push eax
call fcn.10001bd0
push esi
push edi
push edx
push eax
call fcn.10003770
mov dword [ebx], eax
jmp 0x10036866
mov eax, esi
sub eax, 0x7867
je 0x100366ac
sub eax, 0x38
jne case.0x100366f6.30992
ret
mov eax, dword [ebp + 0x14]
movzx ecx, byte [eax]
movzx edx, byte [eax + 1]
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], edx
jmp case.0x100366f6.30992
mov eax, dword [ebp - 0x14]
shl eax, 8
or eax, dword [ebp - 0x18]
shl eax, 8
or eax, dword [ebp - 0x1c]
shl eax, 8
or eax, dword [ebp - 0x20]
mov dword [ebp - 4], eax
jmp case.0x100366f6.30992
lea eax, [esi - 0x790f]
cmp eax, 0xe6
ja case.0x100366f6.30992
movzx eax, byte [eax + 0x100368dc]
jmp dword [eax*4 + 0x100368c4]
mov ecx, dword [0x1007c424]
test ecx, ecx
jne case.0x100366f6.30991
jmp case.0x100366f6.30992
mov edx, dword [ebp - 0xc]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.0x100366f6.30992
push 0x713f
lea eax, [ebp - 0x24]
push eax
push 0
mov dword [ebp - 0x24], 0xffffffff
call fcn.10013180
add esp, 0xc
mov dword [ebp - 0xc], eax
jmp case.0x100366f6.30992
mov ecx, dword [ebp - 0xc]
push ecx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov edx, dword [0x1007c424]
test edx, edx
jne case.0x100366f6.30992
xor ebx, ebx
xor esi, esi
lea edi, [edx + 7]
cmp esi, 0x7e
ja case.0x10036770.1
movzx eax, byte [esi + 0x100369e4]
jmp dword [eax*4 + 0x100369c4]
mov dword [0x1007c41c], ebx
mov dword [0x1007c418], ebx
mov dword [0x1007c420], ebx
jmp case.0x10036770.1
mov ecx, dword [0x10079c64]
push ebx
push ebx
push ebx
lea edx, [ebp - 0x28]
push edx
add ecx, 0xfffffff8
push 0x12a6
mov dword [0x1007c428], ebx
mov dword [ebp - 0x28], ecx
call fcn.10051830
add esp, 0x14
jmp case.0x10036770.1
mov dword [0x1007c414], 0x1006d110
mov dword [0x1007c424], 1
jmp case.0x10036770.1
mov eax, 0x10079854
mov dword [0x10079854], eax
mov dword [0x10079858], eax
mov dword [0x1007c430], ebx
mov dword [0x1007c434], 0xffffffff
jmp case.0x10036770.1
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov edx, dword [ebp + 0x14]
mov eax, dword [edx]
mov dword [ebp - 0x30], ecx
push 0x214c
lea ecx, [ebp - 0x2c]
push ecx
lea edx, [ebp - 0x30]
push edx
mov dword [ebp - 0x2c], eax
call fcn.10025440
push 0x4bcc
push ebx
call fcn.100167d0
add esp, 0x14
jmp case.0x10036770.1
invalid
add esi, 0x15
dec edi
jne 0x10036760
mov esi, dword [ebp + 0x10]
add esi, 0x38
mov dword [ebp + 0x10], esi
cmp esi, dword [ebp - 0x34]
jbe 0x10036452
mov eax, dword [ebp - 4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret