Function at 0x412010
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x5d8cf0
mov eax, dword fs:[0]
push eax
sub esp, 0x3c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x638190]
xor eax, esp
push eax
lea eax, [esp + 0x50]
mov dword fs:[0], eax
mov edi, ecx
mov dword [esp + 0x24], edi
mov eax, dword [esp + 0x60]
mov ecx, dword [edi + 0x24]
push eax
call fcn.004c1c90
mov ebx, eax
mov dword [esp + 0x30], ebx
test ebx, ebx
je 0x4126e0
mov ecx, dword [edi + 0x20]
push ebx
call fcn.004530c0
mov edx, dword [ebx]
push eax
mov eax, dword [edx + 0x5c]
mov ecx, ebx
call eax
mov ecx, ebx
call fcn.004c1990
mov ecx, dword [edi + 0x20]
mov esi, eax
push esi
call fcn.004530c0
mov edx, dword [esi]
push eax
mov eax, dword [edx + 0x5c]
mov ecx, esi
call eax
mov ecx, ebx
call fcn.004bc720
mov ecx, dword [edi + 0x20]
mov ebp, eax
push ebp
mov dword [esp + 0x38], ebp
call fcn.004530c0
mov edx, dword [ebp]
push eax
mov eax, dword [edx + 0x5c]
mov ecx, ebp
call eax
mov ecx, dword [sym.imp.MSVCP90.dll_class_std::basic_ostream_char__struct_std::char_traits_char______cdecl_std::endl_class_std::basic_ostream_char__struct_std::char_traits_char____]
mov edx, dword [esp + 0x60]
push ecx
push str._layer.
push edx
push str.BDExport::create
push 0x638398
call fcn.00401320
add esp, 8
push eax
call fcn.00401320
add esp, 8
push eax
call fcn.00401320
add esp, 8
mov ecx, eax
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_ostream_char__struct_std::char_traits_char______thiscall_std::basic_ostream_char__struct_std::char_traits_char__::operator___class_std::basic_ostream_char__struct_std::char_traits_char_______cdecl___class_std::basic_ostream_char__struct_std::char_traits_char_____]
mov eax, dword [edi + 0x24]
mov ecx, dword [eax + 0x30]
mov edx, dword [eax + 0x3c]
mov eax, dword [eax + 0x48]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 0x20]
push ecx
lea ecx, [esp + 0x3c]
mov dword [esp + 0x2c], edx
mov dword [esp + 0x30], eax
call fcn.00455270
lea ecx, [esp + 0x38]
mov dword [esp + 0x58], 0
call fcn.00455290
lea ecx, [esp + 0x38]
call fcn.00459330
test eax, eax
je 0x4121cb
lea esp, [esp]
lea ecx, [esp + 0x38]
call fcn.00459330
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.004c2e70
cmp eax, 4
je 0x4121b1
mov ecx, dword [esp + 0x18]
call fcn.004c2e70
cmp eax, 1
je 0x4121b1
mov ecx, dword [esp + 0x18]
call fcn.00455410
mov dword [esp + 0x14], eax
test eax, eax
je 0x412184
push ebx
mov ecx, eax
call fcn.00455b40
mov ecx, dword [esp + 0x14]
push esi
call fcn.00455b40
mov ecx, dword [esp + 0x14]
push ebp
call fcn.00455b40
mov ecx, dword [esp + 0x18]
call fcn.00491510
mov dword [esp + 0x14], eax
test eax, eax
je 0x4121b1
push ebx
mov ecx, eax
call fcn.00455b40
mov ecx, dword [esp + 0x14]
push esi
call fcn.00455b40
mov ecx, dword [esp + 0x14]
push ebp
call fcn.00455b40
lea ecx, [esp + 0x38]
call fcn.004552a0
lea ecx, [esp + 0x38]
call fcn.00459330
test eax, eax
jne 0x412130
mov ecx, dword [edi + 0xc]
call fcn.004d2e50
mov ecx, eax
call fcn.004cf500
mov ecx, eax
mov dword [esp + 0x14], eax
call fcn.00419a20
mov edx, dword [edi + 0x24]
mov esi, eax
mov eax, dword [edx + 0x3c]
push eax
mov ecx, esi
mov dword [esp + 0x20], esi
call fcn.00422ee0
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x48]
push eax
mov ecx, esi
call fcn.004231e0
mov ecx, dword [esp + 0x14]
xor esi, esi
call fcn.00419a50
xor ecx, ecx
cmp cx, ax
jae 0x41225d
lea esp, [esp]
mov ecx, dword [esp + 0x14]
push esi
call fcn.00419a30
mov edx, dword [edi + 0x24]
mov edx, dword [edx + 0x3c]
push edx
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.00421540
mov eax, dword [edi + 0x24]
mov eax, dword [eax + 0x48]
mov ecx, dword [esp + 0x18]
push eax
call fcn.00420fa0
mov ecx, dword [esp + 0x14]
inc esi
call fcn.00419a50
movzx ecx, ax
cmp esi, ecx
jl 0x412220
mov ecx, dword [esp + 0x14]
call fcn.00419a70
movzx ecx, word [esp + 0x28]
movzx edx, word [esp + 0x20]
movzx eax, ax
movzx esi, ax
add edx, ecx
cmp esi, edx
jl 0x41229c
movzx esi, word [esp + 0x2c]
movzx edx, word [esp + 0x20]
add esi, edx
add esi, ecx
movzx ecx, ax
cmp ecx, esi
jge 0x41229c
mov ecx, dword [esp + 0x14]
inc eax
push eax
call fcn.00419a80
mov ecx, dword [esp + 0x14]
push 0
call fcn.00419a80
mov ecx, dword [edi + 0xc]
call fcn.004d2e50
lea ecx, [esp + 0x40]
mov esi, eax
call fcn.0041c050
lea edx, [esp + 0x40]
push edx
mov ecx, esi
mov byte [esp + 0x5c], 1
call fcn.0041ba70
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 0x1c]
cmp dword [eax + 0x24], 0
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 0
jle 0x41252a
jmp 0x4122f2
mov eax, ecx
mov ecx, dword [edi + 0x24]
mov edx, dword [ecx + 0x3c]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0x18]
mov esi, dword [eax + ecx*4]
lea eax, [eax + ecx*4]
mov dword [esp + 0x2c], edx
test esi, esi
je 0x41232f
mov eax, dword [esi + 8]
test eax, eax
jne 0x41232b
mov edi, dword [esi + 4]
and edi, 0x7f
call fcn.004db3c0
mov edi, dword [eax + edi*4 - 4]
push esi
mov ecx, edi
call fcn.004da850
mov ebx, eax
jmp 0x412331
xor ebx, ebx
mov ecx, ebx
call fcn.004d9ef0
mov ecx, ebx
call fcn.004d9ef0
mov eax, dword [ebx + 0x18]
lea esi, [ebx + 0x14]
test eax, eax
jg 0x412358
mov edx, 1
sub edx, eax
push edx
mov ecx, esi
call fcn.004c1aa0
mov eax, dword [esi + 8]
mov ebp, dword [eax]
test ebp, ebp
je 0x412383
mov eax, dword [ebp + 8]
test eax, eax
jne 0x41237f
mov edi, dword [ebp + 4]
and edi, 0x7f
call fcn.004db3c0
mov eax, dword [eax + edi*4 - 4]
push ebp
mov ecx, eax
call fcn.004da850
mov edi, eax
jmp 0x412385
xor edi, edi
mov ecx, edi
call fcn.004d9ef0
push 1
mov ecx, edi
call fcn.004194f0
mov eax, 9
mov ecx, ebx
mov word [edi + 0x18], ax
call fcn.004d9ef0
mov ecx, ebx
call fcn.004d9ef0
mov eax, dword [esi + 4]
cmp eax, 1
jg 0x4123c3
mov ecx, 2
sub ecx, eax
push ecx
mov ecx, esi
call fcn.004c1aa0
mov eax, dword [esi + 8]
mov ebp, dword [eax + 4]
add eax, 4
test ebp, ebp
je 0x4123f2
mov eax, dword [ebp + 8]
test eax, eax
jne 0x4123ee
mov edi, dword [ebp + 4]
and edi, 0x7f
call fcn.004db3c0
mov eax, dword [eax + edi*4 - 4]
push ebp
mov ecx, eax
call fcn.004da850
mov edi, eax
jmp 0x4123f4
xor edi, edi
mov ecx, edi
call fcn.004d9ef0
push 1
mov ecx, edi
call fcn.004194f0
mov edx, 9
mov ecx, ebx
mov word [edi + 0x18], dx
call fcn.004d9ef0
mov ecx, ebx
call fcn.004d9ef0
mov eax, dword [esi + 4]
cmp eax, 4
jg 0x412432
mov ecx, 5
sub ecx, eax
push ecx
mov ecx, esi
call fcn.004c1aa0
mov eax, dword [esi + 8]
mov edi, dword [eax + 0x10]
add eax, 0x10
test edi, edi
je 0x412461
mov eax, dword [edi + 8]
test eax, eax
jne 0x41245d
mov ebp, dword [edi + 4]
and ebp, 0x7f
call fcn.004db3c0
mov ebp, dword [eax + ebp*4 - 4]
push edi
mov ecx, ebp
call fcn.004da850
mov edi, eax
jmp 0x412463
xor edi, edi
mov ecx, edi
call fcn.004d9ef0
mov ebp, dword [esp + 0x2c]
test bp, bp
ja 0x412477
xor eax, eax
jmp 0x412481
lea edx, [ebp - 1]
movzx eax, dx
shr eax, 5
inc eax
push eax
mov ecx, edi
call fcn.004194f0
mov ecx, ebx
mov word [edi + 0x18], bp
call fcn.004d9ef0
mov ecx, ebx
call fcn.004d9ef0
mov eax, dword [esi + 4]
cmp eax, 5
jg 0x4124b2
mov ecx, 6
sub ecx, eax
push ecx
mov ecx, esi
call fcn.004c1aa0
mov esi, dword [esi + 8]
add esi, 0x14
mov esi, dword [esi]
test esi, esi
je 0x4124e0
mov eax, dword [esi + 8]
test eax, eax
jne 0x4124dc
mov edi, dword [esi + 4]
and edi, 0x7f
call fcn.004db3c0
mov edi, dword [eax + edi*4 - 4]
push esi
mov ecx, edi
call fcn.004da850
mov esi, eax
jmp 0x4124e2
xor esi, esi
mov ecx, esi
call fcn.004d9ef0
test bp, bp
ja 0x4124f2
xor eax, eax
jmp 0x4124fc
lea edx, [ebp - 1]
movzx eax, dx
shr eax, 5
inc eax
push eax
mov ecx, esi
call fcn.004194f0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + 0x24]
inc eax
mov word [esi + 0x18], bp
cmp eax, dword [ecx + 0x24]
mov dword [esp + 0x18], eax
jl 0x4122f0
mov ebx, dword [esp + 0x30]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esp + 0x14]
call fcn.0047ea40
mov ecx, eax
call fcn.00477c70
mov esi, eax
push 0
mov ecx, esi
call fcn.0041df70
push 0
mov ecx, esi
call fcn.0041dfc0
push 0
mov ecx, esi
call fcn.0041e010
push 0
mov ecx, esi
call fcn.0041e060
push 0
mov ecx, esi
call fcn.0041e0b0
mov eax, dword [esp + 0x60]
test eax, eax
je 0x41258d
push 0x11
push str.BM_HeightLimit_A_
push eax
call dword [sym.imp.MSVCR90.dll_strncmp]
add esp, 0xc
test eax, eax
jne 0x41258d
push str.HeightLimit_A
jmp 0x412592
push str.HeightLimit_B
mov ecx, dword [edi + 0x24]
call fcn.004c1a00
mov esi, eax
xor eax, eax
mov dword [esp + 0x60], eax
mov dword [esp + 0x24], eax
cmp esi, eax
je 0x4125e9
mov edx, dword [esi]
mov eax, dword [edx + 0x3c]
mov ecx, esi
call eax
mov ecx, dword [esp + 0x1c]
movzx eax, ax
shl eax, 5
add eax, dword [ecx + 0x14]
mov ecx, esi
mov dword [esp + 0x60], eax
call fcn.004bc720
test eax, eax
je 0x4125e9
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x3c]
call eax
mov ecx, dword [esp + 0x1c]
movzx eax, ax
shl eax, 5
add eax, dword [ecx + 8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x64]
movzx esi, al
mov edx, eax
shr eax, 0x10
shr edx, 8
movzx eax, al
movzx ecx, dl
push eax
push ecx
push esi
mov ecx, edi
call fcn.00404ee0
mov dword [esp + 0x64], eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov edi, dword [esp + 0x1c]
movzx eax, ax
movzx esi, ax
mov eax, dword [ebp]
mov edx, dword [eax + 0x3c]
shl esi, 5
add esi, dword [edi + 0x14]
mov ecx, ebp
call edx
movzx eax, ax
shl eax, 5
add eax, dword [edi + 8]
test esi, esi
je 0x41266f
mov ecx, dword [esp + 0x64]
cmp ecx, 0xffffffff
je 0x412649
mov word [esi + 0x10], cx
mov ecx, dword [esp + 0x60]
mov dword [esi + 0xc], 3
mov edx, dword [ecx + 0x14]
mov dword [esi + 0x14], edx
mov edx, dword [ecx + 0x18]
mov dword [esi + 0x18], edx
movzx ecx, word [ecx + 0x12]
cmp cx, 0x64
je 0x41266b
inc ecx
mov word [esi + 0x12], cx
test eax, eax
je 0x412695
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x412695
movzx edx, word [ecx + 0x10]
mov word [eax + 0x10], dx
mov edx, dword [ecx + 0xc]
mov dword [eax + 0xc], edx
mov edx, dword [ecx + 0x14]
mov dword [eax + 0x14], edx
mov ecx, dword [ecx + 0x18]
mov dword [eax + 0x18], ecx
mov ecx, dword [esp + 0x14]
push 0
call fcn.00419a30
mov esi, eax
mov eax, dword [ebx]
mov edx, dword [eax + 0x3c]
mov ecx, ebx
call edx
mov ecx, dword [esi + 0x18]
movzx eax, ax
lea eax, [eax + eax*2]
lea eax, [ecx + eax*4]
test eax, eax
je 0x4126bf
or dword [eax + 8], 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x58], 0
call fcn.0041c0a0
lea ecx, [esp + 0x38]
mov dword [esp + 0x58], 0xffffffff
call fcn.00440ab0
mov eax, ebx
mov ecx, dword [esp + 0x50]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x48
ret 8