Function at 0x418c00
Capabilities:
Get number of processors

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x64
mov eax, dword [section..data]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov dword [ebp - 0x44], ecx
xor ecx, ecx
mov edi, ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x3c], ecx
mov ebx, ecx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x34], ecx
lea ecx, [ebp - 0x24]
push ecx
push 0x4051d4
push eax
mov dword [ebp - 0x28], edi
call fcn.0040fbf0
mov esi, eax
test esi, esi
jns 0x418c5e
cmp esi, 0xc0000034
jne 0x418da5
xor esi, esi
jmp 0x418da5
lea eax, [ebp - 0x58]
push eax
lea eax, [ebp - 0x3c]
push eax
push 0x24000001
push dword [ebp - 0x24]
call fcn.004130ac
mov esi, eax
test esi, esi
js 0x418cc0
mov eax, dword [ebp - 0x58]
shr eax, 4
mov dword [ebp - 0x20], eax
shl eax, 2
push eax
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov edi, eax
mov dword [ebp - 0x28], edi
test edi, edi
jne 0x418caa
mov esi, 0xc000009a
jmp 0x418d8b
mov ecx, dword [ebp - 0x3c]
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x44]
mov eax, edi
call fcn.00419508
mov esi, dword [ebp - 0x20]
jmp 0x418cd1
cmp esi, 0xc0000225
jne 0x418d8b
xor esi, esi
mov dword [ebp - 0x20], esi
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x2c]
push eax
call fcn.0041a462
test byte [ebp + 0xc], 1
mov dword [ebp - 0x54], eax
je 0x418e62
test eax, eax
js 0x418e62
mov eax, dword [ebp - 0x40]
add eax, esi
mov dword [ebp - 0x48], eax
mov edx, 0xc0000095
cmp eax, esi
jb 0x418d08
xor esi, esi
jmp 0x418d10
or eax, 0xffffffff
mov dword [ebp - 0x48], eax
mov esi, edx
test esi, esi
js 0x418d5b
mov ecx, eax
xor eax, eax
shld eax, ecx, 2
shl ecx, 2
test eax, eax
ja 0x418d2e
jb 0x418d2a
cmp ecx, 0xffffffff
ja 0x418d2e
xor esi, esi
jmp 0x418d33
or ecx, 0xffffffff
mov esi, edx
test esi, esi
js 0x418d5b
mov eax, dword fs:[0x30]
push ecx
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlAllocateHeap]
mov edi, eax
test edi, edi
jne 0x418e12
mov esi, 0xc000009a
mov edi, dword [ebp - 0x28]
test edi, edi
je 0x418d71
mov eax, dword fs:[0x30]
push edi
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
cmp dword [ebp - 0x30], 0
je 0x418d8b
push dword [ebp - 0x30]
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
cmp dword [ebp - 0x3c], 0
je 0x418da5
push dword [ebp - 0x3c]
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
cmp dword [ebp - 0x24], 0
je 0x418db3
push dword [ebp - 0x24]
call fcn.00414312
mov eax, dword [ebp - 0x38]
test eax, eax
je 0x418dcc
push eax
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
cmp dword [ebp - 0x2c], 0
je 0x418de6
push dword [ebp - 0x2c]
mov eax, dword fs:[0x30]
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
mov ecx, dword [ebp - 0x34]
test ecx, ecx
je 0x418dff
mov eax, dword fs:[0x30]
push ecx
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
mov ecx, dword [ebp - 4]
pop edi
mov eax, esi
pop esi
xor ecx, ebp
pop ebx
call fcn.0041b8aa
leave
ret 8
mov esi, dword [ebp - 0x28]
test esi, esi
je 0x418e2a
mov eax, dword [ebp - 0x20]
shl eax, 2
push eax
push esi
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x40]
shl eax, 2
push eax
mov eax, dword [ebp - 0x20]
push dword [ebp - 0x2c]
lea eax, [edi + eax*4]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
test esi, esi
je 0x418e59
mov eax, dword fs:[0x30]
push esi
push 0
push dword [eax + 0x18]
call dword [sym.imp.ntdll.dll_RtlFreeHeap]
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x20]
push eax
lea eax, [ebp - 0x28]
push eax
push dword [ebp - 0x24]
push dword [ebp - 0x44]
call fcn.004193c0
mov esi, eax
test esi, esi
js 0x418d58
mov edi, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
cmp dword [ebp - 0x54], ebx
jl 0x418ea9
test esi, esi
je 0x418ea9
cmp dword [ebp - 0x40], esi
jne 0x418ea9
mov eax, esi
shl eax, 2
push eax
push dword [ebp - 0x2c]
push edi
call sub.msvcrt.dll_memcmp
add esp, 0xc
test eax, eax
je 0x418eba
push esi
push edi
call fcn.0041a2cc
mov esi, eax
test esi, esi
js 0x418d5b
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x38]
push eax
push 0x25000004
push dword [ebp - 0x24]
mov dword [ebp - 0x18], 0x18
mov dword [ebp - 0x1c], 1
call fcn.004130ac
mov esi, eax
test esi, esi
js 0x418f01
mov eax, dword [ebp - 0x38]
xor ebx, ebx
inc ebx
cmp dword [eax + 4], 0
ja 0x418efb
cmp dword [eax], 0xffffffff
ja 0x418efb
mov eax, dword [eax]
mov dword [ebp - 0x14], eax
jmp 0x418f24
or dword [ebp - 0x14], 0xffffffff
jmp 0x418f24
cmp esi, 0xc0000225
jne 0x418d5b
mov ecx, 0x420f00
call fcn.0041a190
mov esi, eax
test esi, esi
js 0x418d5b
and dword [ebp - 0x14], ebx
lea eax, [ebp - 0x60]
push eax
lea eax, [ebp - 0x30]
push eax
push 0x24000002
push dword [ebp - 0x24]
call fcn.004130ac
mov esi, eax
test esi, esi
js 0x418f63
mov edx, dword [ebp - 0x44]
lea eax, [ebp - 0x4c]
push eax
push dword [ebp - 0x30]
or ebx, 2
call fcn.00419564
mov esi, eax
test esi, esi
js 0x418d5b
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0xc], eax
jmp 0x418f87
cmp esi, 0xc0000225
jne 0x418d5b
mov ecx, 0x420f10
call fcn.0041a190
mov esi, eax
test esi, esi
js 0x418d5b
and dword [ebp - 0xc], 0
and dword [ebp - 0x50], 0
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x34]
push eax
call fcn.0041a526
test eax, eax
js 0x418fc9
mov ecx, dword [ebp - 0x34]
mov eax, dword [ecx]
cmp eax, dword [ebp - 0x1c]
jne 0x418fc9
test bl, 1
je 0x418fb6
mov eax, dword [ecx + 8]
cmp eax, dword [ebp - 0x14]
jne 0x418fb6
and ebx, 0xfffffffe
test bl, 2
je 0x418fc9
mov eax, dword [ebp - 0x34]
mov eax, dword [eax + 0x10]
cmp eax, dword [ebp - 0xc]
jne 0x418fc9
and ebx, 0xfffffffd
test ebx, ebx
je 0x418d5b
push ebx
lea eax, [ebp - 0x1c]
push eax
call fcn.0041a32c
mov esi, eax
jmp 0x418d5b