Function at 0x100a6370
Capabilities:
Check for time delay via gettickcount
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x10188150
mov eax, dword fs:[0]
push eax
sub esp, 0x14
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101cd7b4]
xor eax, esp
push eax
lea eax, [esp + 0x28]
mov dword fs:[0], eax
mov esi, ecx
call fcn.10021db0
mov ebp, dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov dword [esp + 0x24], eax
add eax, 4
push eax
mov dword [esp + 0x24], 0x10199614
mov dword [esp + 0x20], eax
call ebp
mov edi, dword [esp + 0x38]
xor ebx, ebx
or eax, 0xffffffff
cmp edi, eax
mov dword [esp + 0x30], ebx
jne 0x100a6409
cmp byte [esi + 0x5800], bl
je 0x100a63df
mov dword [esi + 0x5808], 2
jmp 0x100a63e9
mov dword [esi + 0x5808], 3
cmp dword [esi + 0x583c], eax
je 0x100a647a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x5840], eax
mov dword [esi + 0x5854], ebx
jmp 0x100a647a
cmp byte [esi + 0x5800], bl
je 0x100a6419
mov dword [esi + 0x5808], ebx
jmp 0x100a6423
mov dword [esi + 0x5808], 1
cmp dword [esi + 0x583c], eax
jne 0x100a647a
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, dword [esi + 0x5840]
cmp eax, ecx
jb 0x100a643f
sub eax, ecx
jmp 0x100a6444
sub eax, ecx
sub eax, 1
mov ecx, eax
mov eax, 0x10624dd3
mul ecx
mov eax, dword [esi + 0x5690]
mov ecx, dword [esi + 0x568c]
shr edx, 6
add dword [esi + 0x5680], edx
cmp eax, ecx
mov dword [esi + 0x5840], ebx
ja 0x100a646e
mov eax, ecx
mov dword [esi + 0x568c], eax
mov dword [esi + 0x5690], ebx
mov bl, 0x64
mov dword [esi + 0x583c], edi
cmp byte [0x101cc039], bl
jbe 0x100a6490
mov byte [0x101cc039], bl
mov eax, dword [esi + 0x5808]
cmp eax, 3
ja case.default.0x100a649f
jmp dword [eax*4 + 0x100a6648]
push 0
push 0
push 0
mov ecx, esi
call fcn.100a6110
mov eax, 1
cmp dword [esi + 0x57e8], eax
je case.default.0x100a649f
mov dword [esi + 0x57e8], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x57e0], eax
jmp case.default.0x100a649f
mov eax, dword [esi + 0x5534]
test eax, eax
jbe 0x100a64ee
push 0
push 1
jmp 0x100a661c
cmp byte [0x101cc03b], 9
jne 0x100a660d
call fcn.1005f420
mov ecx, eax
call fcn.1005a3e0
cmp eax, 0x25800
jbe 0x100a6517
xor eax, eax
push eax
push eax
jmp 0x100a6619
movzx ecx, byte [0x101cc039]
imul ecx, eax
mov eax, 0x51eb851f
mul ecx
movzx eax, byte [0x101cc03a]
shr edx, 5
shl eax, 0xa
cmp edx, eax
jbe 0x100a653b
mov eax, edx
push 0
push 0
jmp 0x100a6619
mov eax, dword [esi + 0x5534]
test eax, eax
ja 0x100a64e5
cmp byte [0x101cc04e], 0
jbe 0x100a6599
lea ecx, [esi + 0x4b60]
call fcn.1004ff40
test eax, eax
jne 0x100a6599
lea ecx, [esi + 0x4c68]
call fcn.1004ff40
test eax, eax
jle 0x100a6599
movzx ebx, byte [0x101cc04e]
call fcn.10021db0
lea edi, [eax + 4]
push edi
call ebp
push edi
mov dword [esi + 0x5538], ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp case.default.0x100a649f
cmp byte [0x101cc03b], 9
jne 0x100a660d
call fcn.1005f420
mov ecx, eax
call fcn.1005a3e0
cmp eax, 0x25800
jbe 0x100a65bf
xor edx, edx
push edx
push edx
shr edx, 0xa
push edx
jmp 0x100a661d
mov cl, byte [0x101cc03d]
test cl, cl
jne 0x100a65cd
mov cl, 0x5a
jmp 0x100a65d3
cmp cl, bl
jbe 0x100a65d9
mov cl, bl
mov byte [0x101cc03d], cl
movzx edx, cl
movzx ecx, byte [0x101cc039]
imul edx, ecx
imul edx, eax
mov eax, 0xd1b71759
mul edx
movzx eax, byte [0x101cc03a]
shr edx, 0xd
shl eax, 0xa
cmp edx, eax
ja 0x100a6603
mov edx, eax
push 0
push 0
shr edx, 0xa
push edx
jmp 0x100a661d
push 0
push 0
push edi
mov ecx, esi
call fcn.100a46d0
shr eax, 0xa
push eax
mov ecx, esi
call fcn.100a6110
mov edx, dword [esp + 0x1c]
push edx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x28]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 4