Function at 0x402580
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x5245a9
mov eax, dword fs:[0]
push eax
sub esp, 0x3c4
mov eax, dword [0x5873b0]
xor eax, ebp
mov dword [ebp - 0x14], eax
push esi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x3b0], ecx
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041ab60
push 2
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x30
mov ecx, eax
call fcn.00422010
push eax
lea ecx, [ebp - 0x38c]
call fcn.0040e0a0
mov dword [ebp - 4], 0
mov dword [ebp - 0x3a8], 0
jmp 0x40260b
mov eax, dword [ebp - 0x3a8]
add eax, 1
mov dword [ebp - 0x3a8], eax
push 2
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x30
mov ecx, eax
call fcn.00422010
cmp dword [ebp - 0x3a8], eax
jae 0x402666
mov ecx, dword [ebp - 0x3a8]
push ecx
push 2
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x30
mov ecx, eax
call fcn.004e0750
push eax
mov edx, dword [ebp - 0x3a8]
push edx
lea ecx, [ebp - 0x38c]
call fcn.004e0750
mov ecx, eax
call fcn.00421280
jmp 0x4025fc
push 2
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x30
push eax
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041af30
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041bbb0
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x64
push eax
lea ecx, [ebp - 0x374]
call fcn.004211c0
mov byte [ebp - 4], 1
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x68
push eax
lea ecx, [ebp - 0x10]
call fcn.004211c0
mov byte [ebp - 4], 2
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov eax, dword [eax + 0x50]
mov dword [ebp - 0x3a0], eax
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, dword [eax + 0x4c]
mov dword [ebp - 0x394], ecx
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov dl, byte [eax + 0x6c]
mov byte [ebp - 0x36d], dl
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov al, byte [eax + 0x6d]
mov byte [ebp - 0x3a1], al
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, dword [eax + 0x70]
mov dword [ebp - 0x39c], ecx
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov edx, dword [eax + 0x74]
mov dword [ebp - 0x398], edx
mov eax, dword [ebp - 0x3b0]
mov ecx, dword [eax + 8]
push ecx
lea ecx, [ebp - 0x36c]
call fcn.00402f10
mov byte [ebp - 4], 3
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e50
push eax
call fcn.00510430
push 0
call fcn.00418d70
mov ecx, eax
call fcn.00418ca0
call dword [0x5353b8]
push eax
lea ecx, [ebp - 0x36c]
call fcn.0040f230
push 1
call fcn.00418d70
mov ecx, eax
call fcn.00418ca0
push 0
call fcn.00418eb0
mov ecx, eax
call fcn.00418e50
push eax
call fcn.00510430
cmp dword [ebp - 0x20], 0
jl 0x4027e8
mov edx, dword [ebp - 0x3b0]
mov eax, dword [ebp - 0x20]
mov dword [edx + 8], eax
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041ab60
push 0
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041af30
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.0041e8d0
mov dword [ebp - 0x3b4], eax
mov ecx, dword [ebp - 0x3b4]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3b4]
mov eax, dword [edx + 0x10]
call eax
movzx ecx, byte [eax]
test ecx, ecx
je 0x40285a
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041a7d0
jmp 0x4028d8
push 2
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x2c
mov ecx, eax
call fcn.00421860
movzx edx, al
test edx, edx
jne 0x4028d8
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.0041e8d0
mov dword [ebp - 0x3b8], eax
push 1
mov eax, dword [ebp - 0x3b8]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x3b8]
mov eax, dword [edx + 0x14]
call eax
mov ecx, dword [eax]
push ecx
push 2
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x2c
mov ecx, eax
call fcn.00486730
push eax
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041a720
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.0041e8d0
mov dword [ebp - 0x3bc], eax
mov edx, dword [ebp - 0x3bc]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x3bc]
mov edx, dword [eax + 0x14]
call edx
mov eax, dword [eax]
push eax
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041a7f0
mov dword [ebp - 0x3ac], 0
jmp 0x402937
mov ecx, dword [ebp - 0x3ac]
add ecx, 1
mov dword [ebp - 0x3ac], ecx
call fcn.00418c10
add eax, 4
mov ecx, eax
call fcn.00424320
mov edx, dword [ebp - 0x3ac]
cmp edx, dword [eax + 0x50]
jge 0x4029e9
mov eax, dword [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004e0750
mov ecx, eax
call fcn.00421860
movzx ecx, al
test ecx, ecx
jne 0x4029e4
push 0
mov edx, dword [ebp - 0x3ac]
push edx
mov eax, dword [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004e0750
mov ecx, eax
call fcn.00486730
push eax
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041abb0
mov ecx, dword [ebp - 0x3ac]
push ecx
lea ecx, [ebp - 0x38c]
call fcn.004e0750
push eax
mov edx, dword [ebp - 0x3ac]
push edx
push 2
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x30
mov ecx, eax
call fcn.004e0750
mov ecx, eax
call fcn.00421280
jmp 0x402928
jmp 0x4029fa
mov eax, dword [ebp - 0x3ac]
add eax, 1
mov dword [ebp - 0x3ac], eax
lea ecx, [ebp - 0x38c]
call fcn.00422010
cmp dword [ebp - 0x3ac], eax
jge 0x402c09
mov ecx, dword [ebp - 0x3ac]
push ecx
lea ecx, [ebp - 0x38c]
call fcn.004e0750
mov ecx, eax
call fcn.00421860
movzx edx, al
test edx, edx
jne 0x402c04
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.0041e8d0
mov dword [ebp - 0x3c0], eax
mov eax, dword [ebp - 0x3c0]
mov edx, dword [eax]
mov ecx, dword [ebp - 0x3c0]
mov eax, dword [edx + 0x28]
call eax
movzx ecx, al
test ecx, ecx
je 0x402b1f
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.0041e8d0
mov dword [ebp - 0x3c4], eax
mov edx, dword [ebp - 0x3c4]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x3c4]
mov edx, dword [eax + 0x2c]
call edx
movzx eax, byte [eax]
test eax, eax
je 0x402b1a
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.0041e8d0
mov dword [ebp - 0x3c8], eax
mov ecx, dword [ebp - 0x3c8]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3c8]
mov eax, dword [edx + 0x30]
call eax
mov ecx, dword [eax]
push ecx
call fcn.00418c10
add eax, 4
mov ecx, eax
call fcn.00424320
mov edx, dword [ebp - 0x3ac]
sub edx, dword [eax + 0x50]
push edx
mov eax, dword [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004e0750
mov ecx, eax
call fcn.00486730
push eax
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041adc0
jmp 0x402bcb
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.0041e8d0
mov dword [ebp - 0x3cc], eax
mov ecx, dword [ebp - 0x3cc]
mov edx, dword [ecx]
mov ecx, dword [ebp - 0x3cc]
mov eax, dword [edx + 0x20]
call eax
movzx ecx, byte [eax]
test ecx, ecx
je 0x402bcb
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.0041e8d0
mov dword [ebp - 0x3d0], eax
mov edx, dword [ebp - 0x3d0]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x3d0]
mov edx, dword [eax + 0x24]
call edx
mov eax, dword [eax]
push eax
call fcn.00418c10
add eax, 4
mov ecx, eax
call fcn.00424320
mov ecx, dword [ebp - 0x3ac]
sub ecx, dword [eax + 0x50]
push ecx
mov edx, dword [ebp - 0x3ac]
push edx
lea ecx, [ebp - 0x38c]
call fcn.004e0750
mov ecx, eax
call fcn.00486730
push eax
call fcn.00418d70
mov ecx, eax
call fcn.00418c20
mov ecx, eax
call fcn.0041adc0
mov eax, dword [ebp - 0x3ac]
push eax
lea ecx, [ebp - 0x38c]
call fcn.004e0750
push eax
mov ecx, dword [ebp - 0x3ac]
push ecx
push 2
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x30
mov ecx, eax
call fcn.004e0750
mov ecx, eax
call fcn.00421280
jmp 0x4029eb
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov edx, dword [eax + 0x98]
push edx
push 5
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, eax
call fcn.00418ec0
mov byte [ebp - 0x38d], 0
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x64
mov ecx, eax
call fcn.00486730
push eax
lea ecx, [ebp - 0x374]
call fcn.00421360
test eax, eax
jne 0x402c87
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x68
mov ecx, eax
call fcn.00486730
push eax
lea ecx, [ebp - 0x10]
call fcn.00421360
test eax, eax
je 0x402ceb
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x64
mov ecx, eax
call fcn.00486730
push eax
call fcn.00417ba0
mov ecx, eax
call fcn.00417b20
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
add eax, 0x68
mov ecx, eax
call fcn.00486730
push eax
call fcn.00417ba0
mov ecx, eax
call fcn.00417b60
call fcn.00418d70
mov ecx, eax
call fcn.0044f590
mov ecx, eax
call fcn.004d2f60
mov byte [ebp - 0x38d], 1
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, dword [ebp - 0x3a0]
cmp ecx, dword [eax + 0x50]
jne 0x402d1d
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov edx, dword [ebp - 0x394]
cmp edx, dword [eax + 0x4c]
je 0x402d42
push 0xffffffffffffffff
push 1
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0041c1a0
mov byte [ebp - 0x38d], 1
movzx esi, byte [ebp - 0x36d]
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
movzx eax, byte [eax + 0x6c]
cmp esi, eax
jne 0x402dae
movzx esi, byte [ebp - 0x3a1]
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
movzx ecx, byte [eax + 0x6d]
cmp esi, ecx
jne 0x402dae
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov edx, dword [ebp - 0x39c]
cmp edx, dword [eax + 0x70]
jne 0x402dae
push 1
call fcn.00418eb0
mov ecx, eax
call fcn.00418e70
mov ecx, dword [ebp - 0x398]
cmp ecx, dword [eax + 0x74]
je 0x402db5
mov byte [ebp - 0x38d], 1
movzx edx, byte [ebp - 0x38d]
test edx, edx
je 0x402e3e
push 3
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0046eb10
movzx eax, al
test eax, eax
je 0x402dff
push 3
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0041d550
push 5
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0046eb10
movzx ecx, al
test ecx, ecx
je 0x402e3e
push 5
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0041faf0
push 0
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0041bff0
push 3
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0041f1e0
push 1
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0041c2e0
push 2
call fcn.00418d70
mov ecx, eax
call fcn.004cc900
mov ecx, eax
call fcn.0041be60
mov ecx, eax
call fcn.0041c470
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x36c]
call fcn.004030e0
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x10]
call fcn.00421260
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x374]
call fcn.00421260
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x38c]
call fcn.00421fb0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop esi
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.00510f13
mov esp, ebp
pop ebp
ret