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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x42d2db
mov eax, dword fs:[0]
push eax
sub esp, 0x1f8
mov eax, dword [0x440028]
xor eax, esp
mov dword [esp + 0x1f0], eax
push ebx
push esi
push edi
mov eax, dword [0x440028]
xor eax, esp
push eax
lea eax, [esp + 0x208]
mov dword fs:[0], eax
mov esi, dword [0x45185c]
lea ecx, [esp + 0x14]
mov dword [esp + 0x40], esi
call dword [0x42ff78]
xor edi, edi
mov dword [esp + 0x210], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x30], edi
cmp edi, esi
jge 0x405af9
lea ecx, [ecx]
xor ebx, ebx
mov dword [0x4516bc], ebx
mov dword [0x45169c], ebx
mov dword [0x451698], ebx
mov dword [0x451694], ebx
mov dword [0x4516b4], 0xffffffff
mov ecx, edi
cmp edi, dword [0x45185c]
jge 0x405209
cmp edi, ebx
jl 0x405209
mov eax, dword [0x451854]
je 0x405205
lea esp, [esp]
dec ecx
mov eax, dword [eax]
jne 0x405200
mov esi, eax
jmp 0x40520b
xor esi, esi
add esi, 8
push esi
lea ecx, [esp + 0x1c]
call dword [0x42ff7c]
mov byte [esp + 0x210], 1
mov eax, dword [esi + 4]
mov dword [esp + 0x1c], eax
mov ecx, dword [esi + 8]
lea edx, [esi + 0xc]
mov dword [esp + 0x20], ecx
push edx
lea ecx, [esp + 0x28]
call dword [0x42ff7c]
lea eax, [esi + 0x10]
push eax
lea ecx, [esp + 0x2c]
mov byte [esp + 0x214], 2
call dword [0x42ff7c]
mov esi, dword [esi + 0x14]
mov dword [esp + 0x2c], esi
mov byte [esp + 0x210], 3
cmp edi, ebx
jne 0x4057ef
cmp esi, 1
jne 0x4057ef
lea ecx, [esp + 0x4c]
call dword [0x42fe74]
push ebx
mov byte [esp + 0x214], 4
mov ecx, dword [esp + 0x1c]
push ebx
push ecx
lea ecx, [esp + 0x58]
call dword [0x42fe78]
test eax, eax
je 0x405b54
push 0xd0
call dword [0x42fe98]
mov ebx, eax
add esp, 4
lea ecx, [esp + 0x4c]
test ebx, ebx
je 0x405b4e
push 0xd0
push ebx
call dword [0x42fe80]
push ebx
cmp eax, 0xd0
jne 0x405b41
mov ecx, 0x34
mov esi, ebx
lea edi, [esp + 0xb0]
rep movsd dword es:[edi], dword [esi]
call dword [0x42fe94]
mov edx, dword [esp + 0x100]
add esp, 4
push 0x3f
lea eax, [esp + 0x181]
push 0
push eax
mov dword [esp + 0x78], edx
mov byte [esp + 0x188], 0
call fcn.004299d0
add esp, 0xc
push 0x40
lea ecx, [esp + 0x1c0]
push 0
push ecx
call fcn.004299d0
add esp, 0xc
push 0x80
call dword [0x42fe98]
mov esi, eax
add esp, 4
lea ecx, [esp + 0x4c]
mov dword [esp + 0x48], esi
call dword [0x42fe84]
test esi, esi
je 0x405b54
xor ebx, ebx
mov dword [0x4516c0], ebx
mov dword [esp + 0x34], ebx
cmp ebx, dword [esp + 0xfc]
jge 0x40570f
mov edx, dword [esp + 0x18]
push 0
push 0
push edx
lea ecx, [esp + 0x58]
mov dword [0x45169c], 0
call dword [0x42fe78]
test eax, eax
je 0x405bbe
push 0
mov eax, ebx
shl eax, 7
add eax, 0xd0
push 0
push eax
lea ecx, [esp + 0x58]
call dword [0x42fe7c]
push 0x80
push esi
lea ecx, [esp + 0x54]
call dword [0x42fe80]
test eax, eax
je 0x405bb4
mov ecx, 0x20
lea edi, [esp + 0x17c]
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x1dc]
test eax, eax
jne 0x4053e3
lea ecx, [esp + 0x4c]
call dword [0x42fe84]
jmp 0x4056f9
add dword [0x4516c0], eax
push eax
mov dword [0x4516a0], eax
call dword [0x42fe98]
add esp, 4
mov dword [0x4516a4], eax
test eax, eax
je 0x405bca
mov ecx, dword [esp + 0x1e4]
push 0
push 0
push ecx
lea ecx, [esp + 0x58]
call dword [0x42fe7c]
mov edx, dword [0x4516a0]
mov eax, dword [0x4516a4]
push edx
push eax
lea ecx, [esp + 0x54]
call dword [0x42fe80]
lea ecx, [esp + 0x4c]
test eax, eax
je 0x405bff
call dword [0x42fe84]
mov ecx, dword [esp + 0x1e0]
mov dword [0x4516a8], ecx
push str.compat_write
mov ecx, 0x4516ac
call dword [0x42ff5c]
lea edx, [esp + 0x1bc]
push edx
mov ecx, 0x4516b0
call dword [0x42fe68]
test ebx, ebx
jne 0x4054f9
lea eax, [esp + 0x78]
push 0x90
push eax
call fcn.00401360
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x214], 5
call dword [0x42ffac]
lea ecx, [esp + 0x78]
mov byte [esp + 0x210], 4
call dword [0x42ffa8]
lea ecx, [esp + 0x7c]
push ecx
lea ecx, [esp + 0x18]
mov ebx, 0x430a34
call fcn.00403180
add esp, 4
push 0
mov byte [esp + 0x214], 6
mov eax, dword [eax]
push 0
push eax
call fcn.00401d90
push eax
call fcn.0041ac10
lea ecx, [esp + 0x7c]
mov byte [esp + 0x210], 4
call dword [0x42ffa8]
mov ebx, dword [esp + 0x34]
lea edx, [esp + 0x68]
push 0x91
push edx
call fcn.00401360
lea esi, [ebx + 1]
mov byte [esp + 0x218], 7
mov eax, dword [esp + 0x70]
push esi
push eax
lea ecx, [esp + 0x24]
push ecx
mov dword [esp + 0x4c], esi
call dword [0x42fff8]
lea edx, [esp + 0xa8]
add esp, 0x14
push edx
lea ecx, [esp + 0x18]
mov ebx, 0x430a34
call fcn.00403180
add esp, 4
push 0
mov byte [esp + 0x214], 8
mov eax, dword [eax]
push 0
push eax
call fcn.00401d90
push eax
call fcn.0041ac10
lea ecx, [esp + 0x94]
mov byte [esp + 0x210], 7
call dword [0x42ffa8]
lea eax, [esp + 0x17c]
push eax
lea ecx, [esp + 0x84]
call dword [0x42fe64]
lea ecx, [esp + 0x74]
push ecx
mov ecx, eax
mov byte [esp + 0x214], 9
call fcn.00403180
add esp, 4
push 0
mov byte [esp + 0x214], 0xa
mov eax, dword [eax]
push 0
push eax
call fcn.00401d90
push eax
call fcn.0041ac10
lea ecx, [esp + 0x74]
call dword [0x42ffa8]
lea ecx, [esp + 0x80]
mov byte [esp + 0x210], 7
call dword [0x42ffa8]
mov edi, dword [esp + 0xfc]
mov eax, dword [esp + 0x34]
lea edx, [edi - 1]
cmp eax, edx
jne 0x4055f4
mov dword [0x4516b4], 0
push eax
mov ecx, 0x451638
call fcn.0040a780
mov ebx, eax
mov eax, dword [0x4516a4]
test eax, eax
je 0x40561e
push eax
call dword [0x430014]
add esp, 4
mov dword [0x4516a4], 0
test ebx, ebx
je 0x405c0c
lea eax, [esp + 0x70]
push 0x92
push eax
call fcn.00401360
mov byte [esp + 0x218], 0xb
mov ecx, dword [esp + 0x78]
push esi
push ecx
lea edx, [esp + 0x24]
push edx
call dword [0x42fff8]
lea eax, [esp + 0xa4]
add esp, 0x14
push eax
lea ecx, [esp + 0x18]
mov ebx, 0x430a34
call fcn.00403180
add esp, 4
push 0
mov byte [esp + 0x214], 0xc
mov eax, dword [eax]
push 0
push eax
call fcn.00401d90
push eax
call fcn.0041ac10
lea ecx, [esp + 0x90]
mov byte [esp + 0x210], 0xb
call dword [0x42ffa8]
fild dword [esp + 0x38]
mov ecx, dword [esp + 0x40]
lea edx, [edi + ecx - 1]
mov dword [esp + 0x38], edx
fild dword [esp + 0x38]
fdivp st(1)
fmul qword [0x437f70]
fadd qword [0x437f30]
call fcn.00429a20
mov esi, eax
call fcn.00401d90
mov eax, dword [eax + 0x20]
push 0
push esi
push 0x402
push eax
call dword [0x42f264]
lea ecx, [esp + 0x70]
call dword [0x42ffa8]
lea ecx, [esp + 0x68]
mov byte [esp + 0x210], 4
call dword [0x42ffa8]
mov ebx, dword [esp + 0x34]
mov esi, dword [esp + 0x48]
inc ebx
mov dword [esp + 0x34], ebx
cmp ebx, dword [esp + 0xfc]
jl 0x405365
jne 0x4057a4
lea ecx, [esp + 0x88]
push 0x14c
push ecx
call fcn.00401360
add esp, 8
push eax
lea ecx, [esp + 0x18]
mov byte [esp + 0x214], 0xd
call dword [0x42ffac]
lea ecx, [esp + 0x88]
mov byte [esp + 0x210], 4
call dword [0x42ffa8]
lea edx, [esp + 0x84]
push edx
lea ecx, [esp + 0x18]
mov ebx, 0x430a34
call fcn.00403180
add esp, 4
mov byte [esp + 0x210], 0xe
mov edi, dword [eax]
call dword [0x42ff70]
test eax, eax
je 0x40578a
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
jmp 0x40578c
xor eax, eax
push 0
push 0
push edi
push eax
call fcn.0041ac10
lea ecx, [esp + 0x84]
call dword [0x42ffa8]
push esi
call dword [0x42fe94]
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x210], 3
call dword [0x42fe88]
lea ecx, [esp + 0x28]
mov byte [esp + 0x210], 0
call dword [0x42ffa8]
lea ecx, [esp + 0x24]
call dword [0x42ffa8]
lea ecx, [esp + 0x18]
call dword [0x42ffa8]
mov edi, dword [esp + 0x30]
jmp 0x405ae4
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x405abe
push eax
mov dword [0x4516b4], edi
mov dword [0x4516a0], eax
mov dword [0x4516c0], eax
call dword [0x42fe98]
add esp, 4
mov dword [0x4516a4], eax
cmp eax, ebx
je 0x405b66
mov ecx, dword [esp + 0x18]
push ebx
push ecx
lea ecx, [esp + 0xa0]
call dword [0x42fe70]
mov byte [esp + 0x210], 0xf
mov edx, dword [0x4516a0]
mov eax, dword [0x4516a4]
push edx
push eax
lea ecx, [esp + 0xa0]
call dword [0x42fe80]
test eax, eax
je 0x405c26
lea ecx, [esp + 0x98]
call dword [0x42fe84]
mov ecx, dword [esp + 0x20]
lea edx, [esp + 0x24]
mov dword [0x4516a8], ecx
push edx
mov ecx, 0x4516ac
call dword [0x42ffac]
lea eax, [esp + 0x28]
push eax
mov ecx, 0x4516b0
call dword [0x42ffac]
lea ecx, [esp + 0x64]
push 0x13d
push ecx
call fcn.00401360
lea eax, [edi + 1]
push eax
mov byte [esp + 0x21c], 0x13
mov edx, dword [esp + 0x70]
mov dword [esp + 0x40], eax
push edx
lea eax, [esp + 0x24]
push eax
call dword [0x42fff8]
lea ecx, [esp + 0xa0]
add esp, 0x14
push ecx
lea ecx, [esp + 0x18]
mov ebx, 0x430a34
call fcn.00403180
add esp, 4
mov byte [esp + 0x210], 0x14
mov esi, dword [eax]
call dword [0x42ff70]
test eax, eax
je 0x405900
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
jmp 0x405902
xor eax, eax
push 0
push 0
push esi
push eax
call fcn.0041ac10
lea ecx, [esp + 0x8c]
mov byte [esp + 0x210], 0x13
call dword [0x42ffa8]
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x1c]
mov ebx, 0x430a34
call fcn.00403180
add esp, 4
mov byte [esp + 0x210], 0x15
mov esi, dword [eax]
call dword [0x42ff70]
xor ebx, ebx
cmp eax, ebx
je 0x405959
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
jmp 0x40595b
xor eax, eax
push ebx
push ebx
push esi
push eax
call fcn.0041ac10
lea ecx, [esp + 0x60]
mov byte [esp + 0x210], 0x13
call dword [0x42ffa8]
push edi
mov ecx, 0x451638
call fcn.0040a780
mov esi, eax
mov eax, dword [0x4516a4]
cmp eax, ebx
je 0x40599c
push eax
call dword [0x430014]
add esp, 4
mov dword [0x4516a4], ebx
cmp esi, ebx
je 0x405cda
mov esi, dword [esp + 0x6c]
call dword [0x42ff70]
cmp esi, ebx
jne 0x4059cb
cmp eax, ebx
je 0x4059c1
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
mov ebx, eax
fild dword [esp + 0x34]
fidiv dword [esp + 0x40]
jmp 0x4059f7
cmp eax, ebx
je 0x4059da
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
mov ebx, eax
mov edx, dword [esp + 0x40]
lea ecx, [esi + edi]
mov dword [esp + 0x38], ecx
fild dword [esp + 0x38]
lea eax, [esi + edx - 1]
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fdivp st(1)
fmul qword [0x437f70]
fadd qword [0x437f30]
call fcn.00429a20
mov ecx, dword [ebx + 0x20]
push 0
push eax
push 0x402
push ecx
call dword [0x42f264]
lea edx, [esp + 0x3c]
push 0x93
push edx
call fcn.00401360
mov eax, dword [esp + 0x3c]
mov byte [esp + 0x218], 0x16
mov ecx, dword [esp + 0x44]
push eax
push ecx
lea edx, [esp + 0x24]
push edx
call dword [0x42fff8]
lea eax, [esp + 0x58]
add esp, 0x14
push eax
lea ecx, [esp + 0x18]
mov ebx, 0x430a34
call fcn.00403180
add esp, 4
mov byte [esp + 0x210], 0x17
mov ebx, dword [eax]
call dword [0x42ff70]
test eax, eax
je 0x405a7e
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
jmp 0x405a80
xor eax, eax
push 0
push 0
push ebx
push eax
call fcn.0041ac10
lea ecx, [esp + 0x44]
call dword [0x42ffa8]
lea ecx, [esp + 0x3c]
call dword [0x42ffa8]
lea ecx, [esp + 0x64]
call dword [0x42ffa8]
lea ecx, [esp + 0x98]
mov byte [esp + 0x210], 3
call dword [0x42fe88]
lea ecx, [esp + 0x28]
mov byte [esp + 0x210], 0
call dword [0x42ffa8]
lea ecx, [esp + 0x24]
call dword [0x42ffa8]
lea ecx, [esp + 0x18]
call dword [0x42ffa8]
inc edi
mov dword [esp + 0x30], edi
cmp edi, dword [esp + 0x40]
jl 0x4051c0
mov esi, dword [esp + 0x40]
cmp edi, esi
jne 0x405b84
lea ecx, [esp + 0x3c]
push 0x94
push ecx
call fcn.00401360
add esp, 8
mov byte [esp + 0x210], 0x18
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x44], esi
call dword [0x42ff70]
test eax, eax
je 0x405cf0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
mov dword [esp + 0x30], eax
jmp 0x405cf8
call dword [0x42fe94]
add esp, 4
lea ecx, [esp + 0x4c]
call dword [0x42fe84]
lea ecx, [esp + 0x4c]
mov byte [esp + 0x210], 3
call dword [0x42fe88]
lea ecx, [esp + 0x28]
call dword [0x42ffa8]
lea ecx, [esp + 0x24]
call dword [0x42ffa8]
lea ecx, [esp + 0x18]
call dword [0x42ffa8]
lea ecx, [esp + 0x14]
call dword [0x42ffa8]
xor eax, eax
mov ecx, dword [esp + 0x208]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x1f0]
xor ecx, esp
call fcn.00428fe6
mov esp, ebp
pop ebp
ret
lea ecx, [esp + 0x4c]
call dword [0x42fe84]
push esi
call dword [0x42fe94]
add esp, 4
jmp 0x405b54
lea ecx, [esp + 0x4c]
call dword [0x42fe84]
mov ecx, dword [esp + 0x48]
push ecx
call dword [0x42fe94]
add esp, 4
lea ecx, [esp + 0x4c]
mov byte [esp + 0x210], 3
call dword [0x42fe88]
lea ecx, [esp + 0x18]
call fcn.00405e40
jmp 0x405b84
call dword [0x42fe84]
mov edx, dword [esp + 0x48]
push edx
jmp 0x405bd9
mov eax, dword [esp + 0x48]
push eax
call dword [0x42fe94]
add esp, 4
lea ecx, [esp + 0x68]
call dword [0x42ffa8]
jmp 0x405be2
lea ecx, [esp + 0x30]
push 0x131
push ecx
call fcn.00401360
lea edx, [esp + 0x68]
push edx
lea ecx, [esp + 0x3c]
mov ebx, 0x430a34
mov byte [esp + 0x21c], 0x10
call fcn.00403180
add esp, 0xc
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x48]
push edx
mov ecx, eax
mov byte [esp + 0x218], 0x11
call fcn.00403060
add esp, 8
mov byte [esp + 0x210], 0x12
mov esi, dword [eax]
call dword [0x42ff70]
test eax, eax
je 0x405c8e
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
jmp 0x405c90
xor eax, eax
push 0
push 0
push esi
push eax
call fcn.0041ac10
lea ecx, [esp + 0x44]
call dword [0x42ffa8]
lea ecx, [esp + 0x60]
mov byte [esp + 0x210], 0x10
call dword [0x42ffa8]
lea ecx, [esp + 0x98]
call dword [0x42fe84]
lea ecx, [esp + 0x30]
call dword [0x42ffa8]
lea ecx, [esp + 0x98]
jmp 0x405b58
lea ecx, [esp + 0x64]
call dword [0x42ffa8]
lea ecx, [esp + 0x98]
jmp 0x405b58
mov dword [esp + 0x30], 0
test esi, esi
je 0x405d6f
mov eax, esi
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x405d01
sub eax, edx
sar eax, 1
mov ebx, eax
je 0x405d6f
xor ecx, ecx
lea edi, [ebx + 1]
mov eax, edi
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call dword [0x42fe98]
mov esi, eax
add esp, 4
test esi, esi
je 0x405d6f
lea eax, [ebx + ebx + 2]
push eax
push 0
push esi
call fcn.004299d0
mov ecx, dword [esp + 0x50]
add esp, 0xc
push ecx
push edi
push esi
call dword [0x42f1b4]
mov edx, dword [esp + 0x3c]
mov eax, dword [edx + 0x20]
add esp, 0xc
push 0
push esi
push 0x401
push eax
call dword [0x42f264]
call dword [0x42ff70]
test eax, eax
je 0x405d84
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x7c]
call eax
jmp 0x405d86
xor eax, eax
mov ecx, dword [eax + 0x20]
push 0
push 0x64
push 0x402
push ecx
call dword [0x42f264]
lea ecx, [esp + 0x3c]
call dword [0x42ffa8]
lea ecx, [esp + 0x14]
call dword [0x42ffa8]
mov eax, 1
jmp 0x405b90