Function at 0x4324f0
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4afa89
mov eax, dword fs:[0]
push eax
sub esp, 0x28
push ebx
push esi
push edi
mov eax, dword [0x4e96d0]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [esp + 0x18], ebx
lea esi, [ebx + 0x64]
push esi
mov dword [esp + 0x30], esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [esp + 0x30], 1
xor eax, eax
mov dword [esp + 0x40], 0
test ebx, ebx
setne al
test eax, eax
jne 0x43256a
push eax
push str.ATLASSERT
mov edx, 0x246
mov ecx, str.SecC::CIOCPThreadPool_class_SecC::TThreadPool2_void__void_class_SecC::CBindCallback_void_::AddThreads
call fcn.0041df40
add esp, 8
push 0x80004005
call fcn.0040abe0
mov eax, dword [ebp + 8]
mov ecx, dword [ebx + 8]
add eax, ecx
mov edx, dword [ebx + 0xa4]
cmp eax, edx
jb 0x432585
mov eax, edx
sub eax, ecx
mov dword [ebp + 8], eax
jmp 0x432588
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], 0
test eax, eax
je 0x4326f1
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
push 0x14
call fcn.00473f4b
mov esi, eax
add esp, 4
mov dword [esp + 0x24], esi
test esi, esi
je 0x432644
mov dword [esi], vtable.SecC::CBindCallback.0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov byte [esp + 0x40], 3
cmp dword [esi + 8], 0
je 0x4325f1
mov ecx, esi
call fcn.004394c0
mov dword [esi + 8], 2
cmp dword [esi + 4], 0
je 0x43260c
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x432605
mov eax, dword [ecx]
push 1
call dword [eax + 0xc]
mov dword [esi + 4], 0
push 0xc
call fcn.00473f4b
add esp, 4
test eax, eax
je 0x43262c
mov dword [eax], vtable.SecC::CBindCallback::CCallbackImplT_0_class_SecC::CIOCPThreadPool_class_SecC::TThreadPool2_void___void__class_SecC::CBindCallback__void___void_.0
mov dword [eax + 4], 0x4338b0
mov dword [eax + 8], ebx
jmp 0x43262e
xor eax, eax
cmp dword [esi + 8], 0
mov dword [esi + 4], eax
jne 0x432646
test eax, eax
je 0x432646
mov dword [esi + 8], 2
jmp 0x432646
xor esi, esi
mov ecx, esi
mov byte [esp + 0x40], 0
call fcn.0041f540
xor ebx, ebx
mov dword [esp + 0x24], eax
test eax, eax
setne bl
call edi
mov esi, eax
test esi, esi
jle 0x43266e
movzx esi, si
or esi, 0x80070000
test ebx, ebx
je 0x43272e
mov ebx, dword [esp + 0x18]
push 0xffffffffffffffff
push dword [ebx + 0x94]
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
neg eax
sbb esi, esi
inc esi
call edi
mov edi, eax
test edi, edi
jle 0x43269e
movzx edi, di
or edi, 0x80070000
test esi, esi
je 0x43270f
mov esi, dword [ebx + 0x98]
lea eax, [esp + 0x28]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x28]
push eax
push esi
lea ecx, [ebx + 4]
call fcn.00436820
test eax, eax
jne 0x4326d5
push dword [esp + 0x1c]
lea ecx, [ebx + 4]
push dword [esp + 0x24]
push esi
call fcn.00436880
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x24]
inc edi
mov dword [eax + 4], ecx
mov dword [esp + 0x14], edi
cmp edi, dword [ebp + 8]
jb 0x432598
lea esi, [ebx + 0x64]
mov eax, dword [ebx + 8]
cmp dword [ebx + 0xa4], eax
sbb eax, eax
inc eax
jne 0x43274d
push eax
push str.ATLASSERT
mov edx, 0x257
jmp 0x432553
push 0
push str.ATLASSERT
mov edx, 0x252
mov ecx, str.SecC::CIOCPThreadPool_class_SecC::TThreadPool2_void__void_class_SecC::CBindCallback_void_::AddThreads
call fcn.0041df40
add esp, 8
push edi
call fcn.0040abe0
push 0
push str.ATLASSERT
mov edx, 0x24f
mov ecx, str.SecC::CIOCPThreadPool_class_SecC::TThreadPool2_void__void_class_SecC::CBindCallback_void_::AddThreads
call fcn.0041df40
add esp, 8
push esi
call fcn.0040abe0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4