Function at 0x402125
Capabilities:
Get number of processors

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x64
push ebx
push esi
mov ebx, ecx
lea ecx, [esp + 0x54]
push edi
mov dword [esp + 0x10], ebx
call dword [0x4061c0]
mov eax, dword [ebx + 0xa0]
xor ecx, ecx
inc ecx
test eax, eax
jne 0x4021f8
mov edi, dword [0x405368]
push 3
push ecx
push 0x36b8
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
mov edi, dword [0x405368]
pop ecx
pop ecx
lea ecx, [esp + 0x58]
mov eax, dword [edi]
push ecx
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
test al, al
je 0x4026b7
mov eax, dword fs:[0x30]
push 0x244
push 0
push dword [eax + 0x18]
call dword [0x406080]
test eax, eax
je 0x4021ce
mov ecx, eax
call dword [0x406154]
jmp 0x4021d0
xor eax, eax
mov dword [ebx + 0xa0], eax
test eax, eax
je 0x40267f
push 0
lea ecx, [esp + 0x5c]
push ecx
mov ecx, eax
call dword [0x40614c]
test al, al
je 0x40267b
xor ecx, ecx
inc ecx
cmp dword [ebx + 0xa4], 0
jne 0x4022a6
mov edi, dword [0x405368]
push 3
push ecx
push 0x36b9
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
mov edi, dword [0x405368]
pop ecx
pop ecx
lea ecx, [esp + 0x58]
mov eax, dword [edi]
push ecx
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
test al, al
je 0x402748
mov eax, dword fs:[0x30]
push 0x244
push 0
push dword [eax + 0x18]
call dword [0x406080]
test eax, eax
je 0x40227f
mov ecx, eax
call dword [0x406154]
jmp 0x402281
xor eax, eax
mov dword [ebx + 0xa4], eax
test eax, eax
je 0x402706
push 0
lea ecx, [esp + 0x5c]
push ecx
mov ecx, eax
call dword [0x40614c]
test al, al
je 0x4026f7
cmp byte [ebx + 0x94], 0
jne 0x4025b8
lea ecx, [esp + 0x28]
call dword [0x4061c0]
lea ecx, [esp + 0x40]
call dword [0x4061c0]
push 0xffffffffffffffff
push 0x4011c0
lea ecx, [esp + 0x48]
call dword [0x406194]
and dword [esp + 0x1c], 0
mov edi, dword [0x405368]
push 3
push 1
push 0x36ba
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
mov ebx, 0x401160
push ebx
push dword [0x405368]
call dword [0x406158]
mov edi, dword [0x405368]
pop ecx
pop ecx
lea ecx, [esp + 0x28]
mov eax, dword [edi]
push ecx
mov esi, dword [eax + 0x1c]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
test al, al
je 0x4028f9
cmp dword [esp + 0x34], 0
je 0x4025a0
push 0
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0x30]
call dword [0x406198]
mov ebx, eax
test ebx, ebx
jne 0x4028c2
xor edi, edi
lea eax, [esp + 0x40]
inc ebx
mov dword [esp + 0x18], edi
push ebx
push eax
lea ecx, [esp + 0x30]
call dword [0x406198]
mov esi, eax
mov dword [esp + 0x14], esi
cmp ebx, dword [esp + 0x34]
jae 0x402388
mov ecx, dword [esp + 0x30]
movzx ecx, word [ecx + ebx*2]
jmp 0x40238d
mov ecx, 0xffff
push ecx
call dword [0x406050]
movzx eax, ax
pop ecx
sub eax, 0x41
je 0x40256f
dec eax
sub eax, 1
je 0x402562
sub eax, 1
je 0x402552
sub eax, 8
je 0x402545
sub eax, 1
je 0x402538
sub eax, 1
je 0x402487
lea ecx, [esp + 0x28]
sub eax, 1
jne 0x402811
cmp esi, 0xffffffff
jne 0x4023f1
push esi
push ebx
call dword [0x406190]
mov edi, eax
mov dword [esp + 0x20], edi
jmp 0x402403
mov eax, esi
sub eax, ebx
push eax
push ebx
call dword [0x406190]
mov edi, eax
mov dword [esp + 0x20], eax
test edi, edi
je 0x40278a
push 0x4011c4
push dword [edi + 8]
call dword [0x406074]
pop ecx
pop ecx
test eax, eax
jne 0x402440
mov eax, dword [esp + 0x10]
push 1
mov byte [eax + 0x93], 0
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 7
jmp 0x402477
push 0x4011d4
push dword [edi + 8]
call dword [0x406074]
pop ecx
pop ecx
test eax, eax
jne 0x40278a
mov eax, dword [esp + 0x10]
push 1
mov byte [eax + 0x93], 0
mov eax, dword [edi]
mov esi, dword [eax]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 3
pop eax
add ebx, eax
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
jmp 0x40257e
inc ebx
cmp ebx, dword [esp + 0x34]
jae 0x402498
mov eax, dword [esp + 0x30]
movzx eax, word [eax + ebx*2]
jmp 0x40249d
mov eax, 0xffff
cmp ax, 0x3d
je 0x4024d8
mov edi, dword [0x405368]
push 3
push 0
push 0x36bd
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
pop ecx
pop ecx
jmp 0x40247a
inc ebx
cmp ebx, esi
je 0x40235b
cmp esi, 0xffffffff
jne 0x4024ea
or edi, esi
jmp 0x4024ee
mov edi, esi
sub edi, ebx
push edi
push ebx
lea eax, [esp + 0x2c]
push eax
lea ecx, [esp + 0x34]
call dword [0x40618c]
lea ecx, [esp + 0x28]
test al, al
je 0x402878
mov esi, dword [esp + 0x10]
push edi
push ebx
lea eax, [esi + 0x98]
push eax
call dword [0x40618c]
test al, al
je 0x402531
xor eax, eax
inc eax
mov byte [esi + 0x92], al
mov byte [esi + 0x91], al
add ebx, edi
jmp 0x40247e
mov eax, dword [esp + 0x10]
mov byte [eax + 0x95], 1
jmp 0x40257d
mov eax, dword [esp + 0x10]
mov byte [eax + 0x92], 1
jmp 0x40257d
mov eax, dword [esp + 0x10]
mov dword [eax + 0x9c], 1
jmp 0x40257d
mov eax, dword [esp + 0x10]
mov byte [eax + 0x90], 1
jmp 0x40257d
mov eax, dword [esp + 0x10]
mov dword [eax + 0x9c], 2
inc ebx
cmp ebx, esi
jne 0x40258b
cmp edi, 0xffffffff
jne 0x40235b
mov ebx, dword [esp + 0x1c]
push 5
inc ebx
pop eax
mov dword [esp + 0x1c], ebx
cmp bx, ax
jb 0x4022dd
lea ecx, [esp + 0x40]
call dword [0x4061c4]
lea ecx, [esp + 0x28]
call dword [0x4061c4]
mov ebx, dword [esp + 0x10]
mov ecx, ebx
call fcn.00402955
cmp byte [ebx + 0x95], 0
jne 0x402944
mov edi, dword [0x405368]
push 3
push 1
push 0x36be
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
mov edi, dword [0x405368]
pop ecx
pop ecx
push 1
mov eax, dword [edi]
mov esi, dword [eax + 0x18]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
test al, al
je 0x402944
mov edi, dword [ebx + 0xa0]
test edi, edi
je 0x40263c
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
and dword [ebx + 0xa0], 0
mov edi, dword [ebx + 0xa4]
test edi, edi
je 0x40265f
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
and dword [ebx + 0xa0], 0
and dword [ebx + 0xa4], 0
xor eax, eax
mov byte [ebx + 0x94], 0
jmp 0x402149
push 0x63
jmp 0x4026ec
mov edi, dword [0x405368]
push 3
push 0
push 0x36b2
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
pop ecx
xor eax, eax
pop ecx
inc eax
jmp 0x4026ed
mov edi, dword [0x405368]
push 3
push 0
push 0x36c2
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
pop ecx
pop ecx
push 0x22
pop eax
mov dword [0x405360], eax
jmp 0x402944
mov dword [0x405360], 0x63
jmp 0x402944
mov edi, dword [0x405368]
push 3
push 0
push 0x36b2
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
pop ecx
pop ecx
mov dword [0x405360], 1
jmp 0x402944
mov edi, dword [0x405368]
push 3
push 0
push 0x36c2
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
pop ecx
pop ecx
mov dword [0x405360], 0x22
jmp 0x402944
push 0xffffffffffffffff
push ebx
lea ecx, [esp + 0x30]
call dword [0x406190]
mov edi, dword [0x405368]
mov ebx, eax
push 3
push 0
push 0x36c3
mov edx, dword [edi]
mov esi, dword [edx + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push ebx
push 0x4011bc
push dword [0x405368]
call dword [0x406158]
add esp, 0xc
mov dword [0x405360], 0x23
test ebx, ebx
je 0x4027ee
mov eax, dword [ebx]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x4061d8]
mov ecx, ebx
call esi
mov edi, dword [esp + 0x20]
test edi, edi
je 0x402930
mov eax, dword [edi]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
jmp 0x402930
push 0xffffffffffffffff
lea eax, [ebx - 1]
push eax
call dword [0x406190]
mov edi, dword [0x405368]
mov ebx, eax
push 3
push 0
push 0x36c3
mov edx, dword [edi]
mov esi, dword [edx + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push ebx
push 0x4011bc
push dword [0x405368]
call dword [0x406158]
add esp, 0xc
mov dword [0x405360], 0x23
test ebx, ebx
je 0x402930
mov eax, dword [ebx]
push 1
mov esi, dword [eax]
mov ecx, esi
call dword [0x4061d8]
mov ecx, ebx
jmp 0x40280a
push 0xffffffffffffffff
push ebx
call dword [0x406190]
mov edi, dword [0x405368]
mov ebx, eax
push 3
push 0
push 0x36b6
mov edx, dword [edi]
mov esi, dword [edx + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push ebx
push 0x4011bc
push dword [0x405368]
call dword [0x406158]
add esp, 0xc
push 5
pop eax
mov dword [0x405360], eax
jmp 0x40285e
mov edi, dword [0x405368]
push 3
push 0
push 0x36b5
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push 0x401160
push dword [0x405368]
call dword [0x406158]
pop ecx
pop ecx
push 4
jmp 0x40292a
mov edi, dword [0x405368]
push 3
push 0
push 0x36c2
mov eax, dword [edi]
mov esi, dword [eax + 0x10]
mov ecx, esi
call dword [0x4061d8]
mov ecx, edi
call esi
push ebx
push dword [0x405368]
call dword [0x406158]
pop ecx
pop ecx
push 0x22
pop eax
mov dword [0x405360], eax
lea ecx, [esp + 0x40]
call dword [0x4061c4]
lea ecx, [esp + 0x28]
call dword [0x4061c4]
lea ecx, [esp + 0x58]
call dword [0x4061c4]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret