Function at 0x40f250
Capabilities:
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x4c9328
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4f59b8]
xor eax, esp
push eax
lea eax, [esp + 0x30]
mov dword fs:[0], eax
mov esi, ecx
movzx edi, word [esi + 0xa8]
lea ebx, [esi + 0xa8]
call fcn.0040ed70
movzx eax, di
add eax, 0xffffffd2
cmp eax, 0x49
ja case.0x40f2a1.47
movzx eax, byte [eax + 0x40f7f8]
jmp dword [eax*4 + 0x40f7d4]
mov ecx, dword [esp + 0x40]
mov eax, dword [ecx]
test al, 0x10
je 0x40f2c1
and al, 1
neg al
sbb eax, eax
add eax, 0xa
push eax
jmp 0x40f7b6
and al, 1
neg al
sbb eax, eax
add eax, 2
push eax
jmp 0x40f7b6
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
and eax, 0x10
or eax, 6
shr eax, 1
push eax
jmp 0x40f7b6
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
and edx, 0x10
or edx, 8
shr edx, 1
push edx
jmp 0x40f7b6
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
and ecx, 0x10
or ecx, 0xa
shr ecx, 1
push ecx
jmp 0x40f7b6
mov edx, dword [esp + 0x40]
mov eax, dword [edx]
and eax, 0x10
or eax, 0xc
shr eax, 1
push eax
jmp 0x40f7b6
mov ecx, dword [esp + 0x40]
mov edx, dword [ecx]
and edx, 0x10
or edx, 0xe
shr edx, 1
push edx
jmp 0x40f7b6
mov eax, dword [esp + 0x40]
mov ecx, dword [eax]
and cl, 0x10
neg cl
sbb ecx, ecx
and ecx, 8
add ecx, 8
push ecx
jmp 0x40f7b6
lea edx, [esp + 0x1c]
xor edi, edi
mov ebp, 1
push edx
mov ecx, ebx
mov word [esp + 0x20], 0x3a
mov dword [esp + 0x24], ebp
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
call fcn.0040a0a0
test eax, eax
mov dword [esp + 0x24], edi
mov dword [esp + 0x28], edi
je 0x40f428
mov dword [esp + 0x20], edi
mov dword [esp + 0x1c], vtable.CBufferT_char_.0
mov dword [esp + 0x2c], edi
mov dword [esp + 0x38], edi
movzx eax, word [ebx]
movzx ecx, al
cmp cx, ax
jne 0x40f3aa
mov dl, byte [ebx]
mov byte [esp + 0x14], dl
jmp 0x40f3af
mov byte [esp + 0x14], 0
push ebp
push ebp
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x28]
call fcn.0040a540
mov ecx, esi
call fcn.0040ed70
cmp word [ebx], di
je 0x40f3d6
cmp word [ebx], 0x5d
jne 0x40f397
cmp dword [ebx + 4], ebp
jne 0x40f397
mov ecx, esi
call fcn.0040ed70
push 0x10
call fcn.0049f7e2
add esp, 4
cmp eax, edi
je 0x40f40c
mov ecx, dword [esp + 0x28]
cmp ecx, edi
jne 0x40f3f8
mov ecx, 0x4d6a90
mov edx, dword [esp + 0x40]
mov edx, dword [edx]
and edx, 0x10
push edx
push ecx
mov ecx, eax
call fcn.0040a6e0
jmp 0x40f40e
xor eax, eax
push eax
mov ecx, esi
call fcn.0040a120
lea ecx, [esp + 0x1c]
mov esi, eax
call fcn.0040a410
mov eax, esi
jmp 0x40f7bd
lea eax, [esp + 0x1c]
push eax
mov ecx, ebx
mov word [esp + 0x20], 0x5e
mov dword [esp + 0x24], ebp
call fcn.0040a0a0
test eax, eax
je 0x40f45b
mov ecx, esi
call fcn.0040ed70
push 0x48
call fcn.0049f7e2
add esp, 4
cmp eax, edi
je 0x40f47d
push edi
jmp 0x40f46a
push 0x48
call fcn.0049f7e2
add esp, 4
cmp eax, edi
je 0x40f47d
push ebp
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
and edx, 0x10
push edx
mov ecx, eax
call fcn.0040d020
jmp 0x40f47f
xor eax, eax
push eax
mov ecx, esi
call fcn.0040a120
mov ebp, eax
mov dword [esp + 0x18], ebp
lea ecx, [ecx]
cmp word [ebx], di
jne 0x40f49f
cmp dword [ebx + 4], 1
je 0x40f5a5
cmp word [ebx], 0x5d
jne 0x40f4af
cmp dword [ebx + 4], 1
je 0x40f5a5
cmp dword [esi + 0xac], 1
movzx edi, word [ebx]
jne 0x40f534
cmp di, 0x2e
je 0x40f518
cmp di, 0x77
je 0x40f518
cmp di, 0x57
je 0x40f518
cmp di, 0x73
je 0x40f518
cmp di, 0x53
je 0x40f518
cmp di, 0x64
je 0x40f518
cmp di, 0x44
je 0x40f518
cmp di, 0x5b
jne 0x40f534
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esi + 0xb8]
mov word [esp + 0x20], 0x3a
mov dword [esp + 0x24], 1
call fcn.0040a0a0
test eax, eax
je 0x40f534
mov ecx, dword [esp + 0x40]
push ecx
mov ecx, esi
call fcn.0040f250
push eax
lea ecx, [ebp + 0x2c]
call fcn.0040a0d0
xor edi, edi
jmp 0x40f490
cmp word [esi + 0xb8], 0x2d
jne 0x40f58e
cmp dword [esi + 0xbc], 1
jne 0x40f58e
cmp dword [esi + 0xcc], 0
jne 0x40f58e
mov ebp, dword [esp + 0x18]
add ebp, 4
push edi
mov ecx, ebp
call fcn.0040a2e0
movzx edx, word [esi + 0xc8]
push edx
mov ecx, ebp
call fcn.0040a2e0
mov ecx, esi
call fcn.0040ed70
mov ecx, esi
call fcn.0040ed70
mov ecx, esi
call fcn.0040ed70
mov ebp, dword [esp + 0x18]
xor edi, edi
jmp 0x40f490
push edi
lea ecx, [ebp + 0x18]
call fcn.0040a2e0
mov ecx, esi
call fcn.0040ed70
xor edi, edi
jmp 0x40f490
mov ecx, esi
call fcn.0040ed70
mov eax, dword [esp + 0x40]
test byte [eax], 8
je 0x40f7ae
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0xc]
add esi, 4
cdq
sub eax, edx
sar eax, 1
xor edi, edi
test eax, eax
mov dword [esp + 0x40], eax
jle 0x40f6e8
jmp 0x40f5e0
mov ecx, dword [esi + 0xc]
movzx eax, word [ecx + edi*4]
cmp ax, 0x5a
lea ecx, [ecx + edi*4]
ja 0x40f65e
cmp word [ecx + 2], 0x41
jb 0x40f65e
cmp ax, 0x41
jae 0x40f604
mov eax, 0x41
jmp 0x40f607
movzx eax, ax
movzx edx, ax
push edx
call fcn.004a14ec
movzx ebp, ax
mov eax, dword [esi + 0xc]
movzx eax, word [eax + edi*4 + 2]
add esp, 4
cmp ax, 0x5a
jbe 0x40f62b
mov eax, 0x5a
jmp 0x40f62e
movzx eax, ax
movzx ecx, ax
push ecx
call fcn.004a14ec
mov edx, dword [esi + 0xc]
movzx ebx, ax
lea eax, [edx + edi*4]
add esp, 4
cmp bp, word [eax]
jb 0x40f64e
cmp bx, word [eax + 2]
jbe 0x40f65e
push ebp
mov ecx, esi
call fcn.0040a2e0
push ebx
mov ecx, esi
call fcn.0040a2e0
mov eax, dword [esi + 0xc]
lea ecx, [eax + edi*4]
movzx eax, word [ecx]
cmp ax, 0x7a
ja 0x40f6db
cmp word [ecx + 2], 0x61
jb 0x40f6db
cmp ax, 0x61
jae 0x40f681
mov eax, 0x61
jmp 0x40f684
movzx eax, ax
movzx ecx, ax
push ecx
call fcn.004a0b8d
mov edx, dword [esi + 0xc]
movzx ebp, ax
movzx eax, word [edx + edi*4 + 2]
add esp, 4
cmp ax, 0x7a
jbe 0x40f6a8
mov eax, 0x7a
jmp 0x40f6ab
movzx eax, ax
movzx eax, ax
push eax
call fcn.004a0b8d
mov ecx, dword [esi + 0xc]
movzx ebx, ax
lea eax, [ecx + edi*4]
add esp, 4
cmp bp, word [eax]
jb 0x40f6cb
cmp bx, word [eax + 2]
jbe 0x40f6db
push ebp
mov ecx, esi
call fcn.0040a2e0
push ebx
mov ecx, esi
call fcn.0040a2e0
add edi, 1
cmp edi, dword [esp + 0x40]
jl 0x40f5e0
mov esi, dword [esp + 0x18]
mov eax, dword [esi + 0x20]
add esi, 0x18
xor ebx, ebx
test eax, eax
mov dword [esp + 0x40], eax
jle 0x40f7ae
mov ebp, dword [esp + 0x18]
mov eax, dword [esi + 0xc]
lea edi, [ebx + ebx]
movzx edx, word [eax + edi]
add eax, edi
push edx
call fcn.004a0c82
add esp, 4
test eax, eax
je 0x40f754
mov eax, dword [esi + 0xc]
add eax, edi
movzx eax, word [eax]
push eax
call fcn.004a14ec
add esp, 4
push eax
mov ecx, ebp
call fcn.0040a960
test eax, eax
jne 0x40f754
mov eax, dword [esi + 0xc]
movzx ecx, word [eax + edi]
add eax, edi
push ecx
call fcn.004a14ec
add esp, 4
push eax
mov ecx, esi
call fcn.0040a2e0
mov eax, dword [esi + 0xc]
movzx edx, word [eax + edi]
add eax, edi
push edx
call fcn.004a0cfa
add esp, 4
test eax, eax
je 0x40f7a1
mov eax, dword [esi + 0xc]
add eax, edi
movzx eax, word [eax]
push eax
call fcn.004a0b8d
add esp, 4
push eax
mov ecx, ebp
call fcn.0040a960
test eax, eax
jne 0x40f7a1
mov eax, dword [esi + 0xc]
movzx ecx, word [eax + edi]
add eax, edi
push ecx
call fcn.004a0b8d
add esp, 4
push eax
mov ecx, esi
call fcn.0040a2e0
add ebx, 1
cmp ebx, dword [esp + 0x40]
jl 0x40f704
mov eax, dword [esp + 0x18]
jmp 0x40f7bd
push 0
mov ecx, esi
call fcn.0040ee10
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x28
ret 4