Function at 0x10011570
Capabilities:
Access peb ldr_data
Get number of processors

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x20
mov eax, dword [0x10052004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword fs:[0x18]
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [eax + 0xf80]
mov dword [ebp - 8], eax
push edi
mov ebx, dword [esi + 0x30]
test eax, eax
je 0x10030979
cmp dword [eax + 4], 0
je 0x1003098b
mov edi, dword [eax + 4]
mov eax, dword [ebx + 0x2c]
mov edx, dword [ebx + 0x34]
mov ecx, dword [ebx + 0x30]
mov dword [ebp - 0x18], edi
mov dword [edi + 4], eax
mov dword [edi + 8], ecx
test eax, eax
jne 0x10011705
mov dword [edi + 0x10], eax
mov eax, dword fs:[0x18]
mov dword [edi + 0x14], edx
mov eax, dword [eax + 0xf80]
mov dword [eax], ecx
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x20], ecx
mov eax, dword [ecx + 0xc]
mov dword [ebp - 0xc], eax
mov dword [ebp - 0x14], eax
mov dword [ecx + 0xc], ebx
xor ebx, ebx
mov eax, dword [esi + 0x30]
mov dword [ebp - 0x1c], eax
add eax, 0x38
mov dword [ebp - 8], eax
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_2.dll_GetCurrentThreadId]
mov dword [ebp - 0x10], eax
mov edx, 1
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
lock xadd dword [ecx], edx
je 0x100309ff
mov eax, dword [eax]
mov ecx, dword [ebp - 0x10]
cmp dword [eax + 8], ecx
jne 0x10030a15
inc dword [eax + 4]
xor ebx, ebx
mov ecx, dword [ebp - 0x1c]
mov ecx, dword [ecx + 0x2c]
test ecx, ecx
jne 0x10011710
mov eax, dword [ebp + 0xc]
mov dword [eax], ebx
test ebx, ebx
js 0x10011723
mov ecx, dword [esi + 0x30]
mov edx, dword [esi + 0x2c]
mov eax, dword [ecx + 8]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [ecx + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [edx + 0x10], eax
mov ebx, dword [esi + 0x28]
mov dword [ecx], 0
mov edx, dword [ebx + 0x68]
test edx, edx
je 0x10030a9d
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0xf80]
mov eax, dword [eax]
add eax, edx
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0xc], eax
je 0x10030a9d
mov esi, dword [esi + 0x30]
mov eax, dword [ebx + 0x70]
mov dword [ebp - 8], eax
mov ebx, dword [esi + 0x38]
call dword [sym.imp.api_ms_win_core_processthreads_l1_1_2.dll_GetCurrentThreadId]
cmp dword [ebx + 8], eax
jne 0x100116ba
add dword [ebx + 4], 0xffffffff
mov eax, dword [esi + 0x38]
je 0x10030aad
lock dec dword [eax]
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 0xc]
test eax, eax
jne 0x10030ad2
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], eax
mov eax, dword fs:[0x18]
mov eax, dword [eax + 0xf80]
mov dword [eax], 0
mov eax, dword [ebp - 0x20]
mov dword [eax + 0xc], 0
mov ecx, dword [ebp - 4]
mov eax, ebx
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.100281a0
mov esp, ebp
pop ebp
ret 8
mov eax, dword [eax + 8]
sub eax, 8
jmp 0x100115c9
mov eax, dword [ecx + 4]
mov eax, dword [eax]
cmp eax, dword [ecx + 8]
je 0x1001163b
jmp 0x10030a81
xor ebx, ebx
jmp 0x100116bd
lea eax, [ebp - 8]
push eax
call dword [sym.imp.api_ms_win_core_com_private_l1_1_0.dll_InternalTlsAllocData]
mov eax, dword [ebp - 8]
jmp 0x100115a2
mov edi, dword [fcn.10004ca0]
mov ecx, edi
push 0x1c
push 0
push dword [0x10052460]
call dword [0x100532e8]
call edi
mov ecx, eax
test ecx, ecx
je 0x100309dd
mov dword [ecx], 0x10001988
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [ecx + 0x18], 1
jmp 0x100309df
xor ecx, ecx
mov eax, dword [ebp - 8]
mov dword [eax + 4], ecx
mov eax, dword [ebp - 8]
test ecx, ecx
jne 0x100115ac
mov dword [eax + 4], 0x1005246c
mov eax, dword [ebp - 8]
jmp 0x100115ac
mov ecx, dword [eax]
mov dword [ecx + 4], 1
mov ecx, dword [eax]
mov eax, dword [ebp - 0x10]
mov dword [ecx + 8], eax
jmp 0x1001162b
mov eax, dword [ebp - 8]
push 0x124f80
push dword [eax + 4]
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_WaitForSingleObject]
test eax, eax
je 0x10030a68
cmp eax, 0x80
je 0x10030a68
cmp eax, 0x102
je 0x10030a5a
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
mov ebx, eax
test ebx, ebx
jle 0x10030a4f
movzx ebx, bx
or ebx, 0x80070000
test ebx, ebx
js 0x1001163b
jmp 0x1001162d
mov eax, dword [ebp + 0xc]
mov dword [eax], 0x80030100
jmp 0x100116bd
mov ecx, dword [ebp - 8]
mov eax, dword [ecx]
mov dword [eax + 4], 1
mov eax, dword [ecx]
mov ecx, dword [ebp - 0x10]
mov dword [eax + 8], ecx
jmp 0x1001162b
call fcn.10028a1b
mov ebx, eax
test ebx, ebx
jns 0x1001163b
mov ecx, dword [ebp - 8]
call fcn.1000e7b5
jmp 0x1001163b
push ecx
push 0
lea ecx, [ebx + 0x64]
call fcn.1000e86f
jmp 0x10011693
mov dword [eax + 8], 0
or ecx, 0xffffffff
mov eax, dword [esi + 0x38]
lock xadd dword [eax], ecx
js 0x100116ba
push dword [esi + 0x3c]
call dword [sym.imp.api_ms_win_core_synch_l1_2_0.dll_SetEvent]
jmp 0x100116ba
mov ecx, dword [ebp - 0x18]
push eax
push 0
push dword [eax + 0x34]
push dword [eax + 0x30]
push dword [eax + 0x2c]
call fcn.10018508
jmp 0x100116f0