Function at 0x46afc0
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x537e48
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ecx
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov dword [esp + 0x10], esi
call fcn.00460080
mov cx, word [esp + 0x34]
lea edi, [esi + 0x110]
xor eax, eax
mov dx, word [esp + 0x38]
mov dword [edi], eax
mov dword [edi + 4], eax
mov dword [edi + 8], eax
mov dword [esp + 0x1c], eax
mov byte [esi + 0x124], al
mov ax, word [esp + 0x24]
mov dword [esi], 0x53bc5c
mov word [esi + 0x38], ax
mov eax, dword [esp + 0x28]
mov word [esi + 0x12c], cx
mov ecx, eax
mov word [esi + 0x108], dx
mov byte [esi + 0x105], 0x80
mov byte [esi + 0x102], 1
mov ebx, dword [ecx]
mov edx, edi
lea ebp, [esi + 8]
mov dword [edx], ebx
mov ebx, dword [ecx + 4]
mov dword [edx + 4], ebx
mov ecx, dword [ecx + 8]
mov bl, byte [esp + 0x30]
mov dword [edx + 8], ecx
mov ecx, dword [eax]
mov edx, ebp
test bl, 8
mov dword [edx], ecx
mov ecx, dword [eax + 4]
mov dword [edx + 4], ecx
mov eax, dword [eax + 8]
mov dword [edx + 8], eax
je 0x46b073
mov dword [esi + 0x64], 0xfffc4000
jmp 0x46b08a
mov edx, dword [esp + 0x2c]
lea ecx, [esi + 0x60]
mov eax, dword [edx]
mov dword [ecx], eax
mov eax, dword [edx + 4]
mov dword [ecx + 4], eax
mov edx, dword [edx + 8]
mov dword [ecx + 8], edx
mov al, 5
push 0x14
mov byte [esi + 0x78], al
mov byte [esi + 0x79], al
mov byte [esi + 0x7a], al
mov word [esi + 0x8a], 0x18
mov dword [esi + 0x70], 0x8000
call fcn.004e5da0
add eax, 0x5a
add esp, 4
mov word [esi + 0x122], ax
mov eax, 0x10
mov ecx, esi
mov word [esi + 0x11e], ax
mov word [esi + 0x120], ax
mov word [esi + 0xd0], 0x20
call fcn.00460560
test bl, 0x10
je 0x46b0f4
mov byte [esi + 0x103], 1
mov byte [esi + 0x104], 1
jmp 0x46b197
test bl, 4
je 0x46b129
push 0
push 0x1f40
push 0x200
push edi
mov byte [esi + 0x103], 1
call fcn.004e6840
add esp, 0x10
cmp eax, 0xffffffff
mov dword [esi + 0x10c], eax
jne 0x46b197
mov ecx, esi
call fcn.00460570
jmp 0x46b197
push 0
push 0x1f40
push 0x200
push edi
call fcn.004e6840
add esp, 0x10
cmp eax, 0xffffffff
mov dword [esi + 0x10c], eax
jne 0x46b152
mov ecx, esi
call fcn.00460570
jmp 0x46b197
mov ecx, dword [ebp]
mov edx, dword [esi + 0x10]
cmp word [esi + 0x38], 0x12
mov dword [esi + 0xb8], ecx
mov dword [esi + 0xbc], eax
mov dword [esi + 0xc0], edx
jne 0x46b189
mov ecx, dword [esi + 0xc]
sub ecx, eax
sar ecx, 0xc
mov edx, ecx
sar edx, 0x1f
mov edi, edx
xor edi, ecx
sub edi, edx
cmp edi, 0x40
jge 0x46b197
add eax, 0xfffc0000
mov dword [esi + 0x114], eax
mov dword [esi + 0xc], eax
push 0x5487f8
mov ecx, esi
mov word [esi + 0xdc], 0x80
mov word [esi + 0xd4], 0x12c
call fcn.00460020
xor eax, eax
mov ax, word [esi + 0x38]
add eax, 0xfffffff8
cmp eax, 0xa
ja case.0x46b1c7.9
jmp dword [eax*4 + 0x46b404]
xor eax, eax
mov word [esi + 0xe2], 0x14
mov byte [esi + 0x101], 1
mov al, byte [0x6b4678]
push eax
jmp 0x46b21c
xor ecx, ecx
mov word [esi + 0xe2], 0x32
mov byte [esi + 0x101], 1
mov cl, byte [0x6b4678]
push ecx
jmp 0x46b21c
xor edx, edx
mov word [esi + 0xe2], 0x64
mov byte [esi + 0x101], 1
mov dl, byte [0x6b4678]
push edx
push 0x7e74f3d4
call fcn.004c93b0
add esp, 8
mov word [esi + 0x1a], ax
jmp 0x46b352
xor eax, eax
mov word [esi + 0xe2], 0x1000
mov byte [esi + 0x101], 1
mov al, byte [0x6b4678]
push eax
push 0x17646b0d
call fcn.004c93b0
add esp, 8
mov word [esi + 0x1a], ax
jmp 0x46b352
xor ecx, ecx
mov byte [esi + 0x101], 1
mov cl, byte [0x6b4678]
push ecx
push 0x7f648179
call fcn.004c93b0
add esp, 8
mov word [esi + 0x1a], ax
jmp 0x46b352
xor edx, edx
mov byte [esi + 0x101], 1
mov dl, byte [0x6b4678]
push edx
push 0x12820a41
call fcn.004c93b0
add esp, 8
mov word [esi + 0x1a], ax
jmp 0x46b352
xor eax, eax
mov byte [esi + 0x101], 1
mov al, byte [0x6b4678]
push eax
push 0xc6739c3b
call fcn.004c93b0
add esp, 8
mov word [esi + 0x1a], ax
jmp 0x46b352
mov ax, word [esi + 0x12c]
mov byte [esi + 0x101], 0
cmp ax, 0xffff
je 0x46b352
mov word [esi + 0xe2], ax
mov word [esi + 0x12c], 0xffff
jmp 0x46b352
xor ecx, ecx
mov byte [esi + 0x101], 1
mov cl, byte [0x6b4678]
push ecx
push 0xa092d785
call fcn.004c93b0
mov word [esi + 0x1a], ax
mov ax, word [esi + 0x12c]
cmp ax, 0x20
push str.Comic_cover_out_of_range
setl dl
push edx
mov word [esi + 0xe2], ax
call fcn.004015b0
add esp, 0x10
mov word [esi + 0x12c], 0xffff
jmp 0x46b352
push str.Bad_powerup_type
push 0
call fcn.004015b0
add esp, 8
push 0x60fb94
mov ecx, esi
call fcn.00460260
mov al, byte [esi + 0x101]
mov edi, 1
test al, al
jne 0x46b371
or word [esi + 4], di
cmp word [esi + 0x38], 0xa
jne 0x46b3ea
mov cl, byte [esi + 0xe2]
mov eax, edi
shl eax, cl
test dword [0x6828e4], eax
je 0x46b3ea
mov ecx, esi
call fcn.00460700
test eax, eax
jne 0x46b3ea
cmp word [esi + 0x38], 0xb
je 0x46b3be
mov al, byte [esi + 0x100]
test al, al
je 0x46b3be
xor ecx, ecx
mov cx, word [esi + 0x106]
push ecx
call fcn.004e3880
push eax
call fcn.004dfd30
add esp, 8
mov ax, word [esi + 0x108]
cmp ax, 0xffff
je 0x46b3e2
lea edx, [esp + 0x24]
mov word [esp + 0x24], di
push edx
mov word [esp + 0x2a], ax
call fcn.004dffe0
add esp, 4
or byte [esi + 0x46], 0x40
or word [esi + 4], di
mov ecx, dword [esp + 0x14]
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x10
ret 0x18