Function at 0x423f20
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x467856
mov eax, dword fs:[0]
push eax
sub esp, 0x650
mov eax, dword [0x482110]
xor eax, esp
mov dword [esp + 0x648], eax
push ebx
push esi
push edi
mov eax, dword [0x482110]
xor eax, esp
push eax
lea eax, [esp + 0x660]
mov dword fs:[0], eax
xor eax, eax
mov edi, ecx
push 0x206
push eax
lea ecx, [esp + 0x46]
push ecx
mov dword [esp + 0x34], edi
mov word [esp + 0x48], ax
call fcn.00469e30
add esp, 0xc
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0x28]
push ecx
push 0x46c538
push 0x46c558
push 0x80000002
mov dword [esp + 0x30], 0x102
mov dword [esp + 0x38], 1
call dword [0x469348]
test eax, eax
jne 0x424052
push 0x46c5d8
lea edx, [esp + 0x40]
push edx
call dword [0x469354]
lea eax, [esp + 0x3c]
lea edx, [edi + 0x2c]
lea esi, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x423fd6
sub eax, esi
lea ecx, [esp + 0x3c]
sar eax, 1
push ecx
push edx
mov ebx, eax
call fcn.0041a000
mov eax, dword [edi + 0x6c]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x40
or eax, ecx
jge 0x424014
mov eax, 0x40
lea ecx, [edi + 0x6c]
call fcn.00418d30
mov eax, dword [edi + 0x6c]
push eax
push edi
call fcn.00424480
mov eax, dword [edi + 0x6c]
mov ecx, dword [eax - 8]
test eax, eax
je 0x42403a
push ecx
push eax
call fcn.00468258
add esp, 8
test eax, eax
js 0x42414c
mov ecx, dword [edi + 0x6c]
cmp eax, dword [ecx - 8]
jg 0x42414c
mov dword [ecx - 0xc], eax
mov edx, dword [edi + 0x6c]
xor ecx, ecx
mov word [edx + eax*2], cx
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x24e]
push eax
mov word [esp + 0x250], dx
call fcn.00469e30
add esp, 0xc
lea ecx, [esp + 0x24]
push ecx
push 0x23
push 0
call dword [0x469338]
test eax, eax
jne 0x4240a3
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x244]
push edx
push eax
call dword [fcn.00469328]
mov ecx, dword [esp + 0x24]
push ecx
call dword [0x469610]
lea edx, [esp + 0x20]
push edx
mov ecx, 0x46c5e0
call fcn.00419f00
lea ecx, [esp + 0x244]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, eax
mov dword [esp + 0x670], 0
call fcn.00426f80
add esp, 8
mov byte [esp + 0x668], 2
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4240fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [edi + 0x70]
mov ebx, dword [esp + 0x14]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x104
or eax, ecx
jge 0x424124
mov eax, 0x104
lea ecx, [edi + 0x70]
call fcn.00418d30
mov eax, dword [edi + 0x70]
push ebx
push 0x104
push eax
push 0
push 0x46c630
push 0x46c638
call dword [0x4691b8]
mov eax, dword [edi + 0x70]
mov ecx, dword [eax - 8]
test eax, eax
jne 0x424156
jmp 0x424164
push 0x80070057
call fcn.00419610
push ecx
push eax
call fcn.00468258
add esp, 8
test eax, eax
js 0x42414c
mov ecx, dword [edi + 0x70]
cmp eax, dword [ecx - 8]
jg 0x42414c
mov dword [ecx - 0xc], eax
mov ecx, dword [edi + 0x70]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [edi + 0x74]
mov ebx, dword [esp + 0x14]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x104
or eax, ecx
jge 0x4241a0
mov eax, 0x104
lea ecx, [edi + 0x74]
call fcn.00418d30
mov eax, dword [edi + 0x74]
push ebx
push 0x104
push eax
push 0
push 0x46c648
push 0x46c638
call dword [0x4691b8]
mov eax, dword [edi + 0x74]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4241d8
push ecx
push eax
call fcn.00468258
add esp, 8
test eax, eax
js 0x42414c
mov ecx, dword [edi + 0x74]
cmp eax, dword [ecx - 8]
jg 0x42414c
mov dword [ecx - 0xc], eax
mov ecx, dword [edi + 0x74]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [edi + 0x78]
mov ebx, dword [esp + 0x14]
lea esi, [edi + 0x78]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x104
or eax, ecx
jge 0x42421a
mov eax, 0x104
mov ecx, esi
call fcn.00418d30
mov eax, dword [esi]
push ebx
push 0x104
push eax
push 0
push 0x46b884
push 0x46c650
call dword [0x4691b8]
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x424250
push ecx
push eax
call fcn.00468258
add esp, 8
test eax, eax
js 0x42414c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x42414c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x80]
mov ecx, 1
sub ecx, dword [eax - 4]
mov eax, dword [eax - 8]
sub eax, 0x104
or eax, ecx
jge 0x424298
mov eax, 0x104
lea ecx, [edi + 0x80]
call fcn.00418d30
mov ecx, dword [esp + 0x18]
mov eax, dword [edi + 0x80]
push ecx
push 0x104
push eax
push 0x46c660
push 0x46c664
push 0x46c650
call dword [0x4691b8]
mov eax, dword [edi + 0x80]
mov ecx, dword [eax - 8]
test eax, eax
je 0x4242dd
push ecx
push eax
call fcn.00468258
add esp, 8
test eax, eax
js 0x42414c
mov ecx, dword [edi + 0x80]
cmp eax, dword [ecx - 8]
jg 0x42414c
mov dword [ecx - 0xc], eax
mov edx, dword [edi + 0x80]
xor ecx, ecx
mov word [edx + eax*2], cx
mov eax, dword [esi]
cmp dword [eax - 4], 1
jle 0x42430d
mov edx, dword [eax - 0xc]
push edx
push esi
call fcn.00418c70
mov eax, dword [esi]
push eax
call dword [0x469358]
mov edi, eax
mov eax, dword [esi]
mov ecx, dword [eax - 8]
test eax, eax
je 0x424333
push ecx
push eax
call fcn.00468258
add esp, 8
test eax, eax
js 0x42414c
mov ecx, dword [esi]
cmp eax, dword [ecx - 8]
jg 0x42414c
mov dword [ecx - 0xc], eax
mov ecx, dword [esi]
xor edx, edx
mov word [ecx + eax*2], dx
mov eax, 0x68db8bad
imul edi
sar edx, 0xc
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov ecx, ebx
imul ecx, ecx, 0x2710
mov eax, edi
sub eax, ecx
cdq
mov ecx, 0x64
idiv ecx
mov edi, eax
mov eax, dword [esi]
cmp dword [eax - 0xc], 0
jne 0x4243e9
lea ecx, [esp + 0x2c]
push ecx
call dword [0x469210]
movzx ebx, word [esp + 0x2c]
movzx edi, word [esp + 0x2e]
movzx esi, word [esp + 0x32]
xor edx, edx
push 0x206
push edx
lea eax, [esp + 0x456]
push eax
mov word [esp + 0x458], dx
call fcn.00469e30
add esp, 0xc
push esi
push edi
push ebx
lea ecx, [esp + 0x458]
push 0x46c680
push ecx
call fcn.004684c8
mov edx, dword [esp + 0x28]
add esp, 0x14
push edx
lea eax, [esp + 0x450]
push eax
push 0x46b884
push 0x46c650
call dword [0x4691b4]
mov edx, esi
push ebx
mov ecx, edi
lea esi, [esp + 0x1c]
call fcn.00421d50
push 0
call fcn.00469008
add esp, 4
sub eax, dword [esp + 0x18]
push 0
sbb edx, dword [esp + 0x20]
push 0x15180
push edx
push eax
call fcn.0046fd90
mov edi, dword [esp + 0x28]
push edx
push eax
push 0x46c69c
add edi, 0x7c
call fcn.00418bd0
mov dword [esp + 0x674], 0xffffffff
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
add esp, 0xc
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x424456
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x660]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x648]
xor ecx, esp
call fcn.004673fc
mov esp, ebp
pop ebp
ret