Function at 0x1002f300
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x288
mov eax, dword [0x1005500c]
xor eax, esp
mov dword [esp + 0x284], eax
mov eax, dword [0x10056314]
mov dword [esp + 0x1c], ecx
mov ecx, dword [0x10056310]
push esi
mov eax, dword [eax]
push edi
mov edi, dword [ebp + 8]
mov esi, dword [eax + 0xc]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
call eax
mov ecx, dword [0x10056314]
push eax
call esi
mov dword [esp + 0x2c], eax
mov ax, word [0x10056390]
test ax, ax
jne 0x1002f362
mov ecx, 0x19222c70
call fcn.1002bf00
mov word [0x10056390], ax
movzx eax, ax
cmp byte [eax + edi], 1
je 0x1002f965
mov ax, word [0x10056398]
test ax, ax
jne 0x1002f38a
mov ecx, 0x6e693e43
call fcn.1002bf00
mov word [0x10056398], ax
movzx esi, ax
test ax, ax
jne 0x1002f3a2
mov ecx, 0x6e693e43
call fcn.1002bf00
mov word [0x10056398], ax
mov edx, dword [esp + 0x2c]
movzx ecx, ax
mov eax, dword [esi + edi]
cmp eax, dword [ecx + edx]
je 0x1002f965
cmp edi, edx
je 0x1002f965
mov eax, dword [0x10056310]
lea ecx, [edi + 8]
mov eax, dword [eax]
mov esi, dword [eax + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0x24]
call eax
lea ecx, [esp + 0x40]
push ecx
mov ecx, dword [0x10056310]
push eax
call esi
test al, al
je 0x1002f965
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0x378]
call eax
mov esi, eax
mov dword [esp + 0x28], esi
test esi, esi
je 0x1002f965
mov ecx, dword fs:[0x2c]
mov edx, dword [0x10055d50]
mov eax, dword [ecx + edx*4]
mov ecx, dword [0x1005638c]
mov dword [esp + 0x30], eax
cmp ecx, dword [eax + 4]
jle 0x1002f464
push 0x1005638c
call fcn.100402ff
add esp, 4
cmp dword [0x1005638c], 0xffffffff
jne 0x1002f464
mov edx, str.0F_B7_81_________50_E8_________83_C4_04_C3
mov ecx, str.client.dll
call fcn.100400a0
push 0x1005638c
mov dword [0x100563c0], eax
mov dword [0x100563c4], 0
call fcn.100402b5
add esp, 4
mov eax, dword [0x100563c0]
mov ecx, esi
call eax
test eax, eax
je 0x1002f965
mov ecx, dword [0x10056310]
lea edx, [esp + 0x34]
push edx
lea edx, [esp + 0x3c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x14]
lea eax, [esp + 0x10]
xorps xmm0, xmm0
push eax
push edi
movaps xmmword [esp + 0x18], xmm0
call fcn.1002f980
test al, al
je 0x1002f965
cmp byte [0x10055341], 0
je 0x1002f560
mov eax, dword [0x100562e8]
mov eax, dword [eax]
mov esi, dword [eax + 0x28]
mov ax, word [0x10056398]
test ax, ax
jne 0x1002f4d7
mov ecx, 0x6e693e43
call fcn.1002bf00
mov word [0x10056398], ax
movzx ecx, ax
cmp dword [ecx + edi], 2
jne 0x1002f4f8
mov ecx, edi
call fcn.1003fa10
mov ecx, dword [0x10055370]
test al, al
cmovne ecx, dword [0x10055378]
jmp 0x1002f530
test ax, ax
jne 0x1002f50d
mov ecx, 0x6e693e43
call fcn.1002bf00
mov word [0x10056398], ax
movzx eax, ax
cmp dword [eax + edi], 3
jne 0x1002f52e
mov ecx, edi
call fcn.1003fa10
mov ecx, dword [0x10055374]
test al, al
cmovne ecx, dword [0x1005537c]
jmp 0x1002f530
xor ecx, ecx
push ecx
mov ecx, dword [0x100562e8]
call esi
cvttss2si eax, dword [esp + 0x1c]
mov ecx, dword [0x100562e8]
mov edx, dword [ecx]
push eax
cvttss2si eax, dword [esp + 0x1c]
push eax
cvttss2si eax, dword [esp + 0x1c]
push eax
cvttss2si eax, dword [esp + 0x1c]
push eax
call dword [edx + 0x38]
cmp byte [0x10055342], 0
je 0x1002f68e
mov eax, dword [0x100562e8]
mov eax, dword [eax]
mov eax, dword [eax + 0x28]
mov dword [esp + 0x2c], eax
mov ax, word [0x100563c8]
test ax, ax
jne 0x1002f596
mov ecx, 0xa4f40f36
call fcn.1002bf00
mov word [0x100563c8], ax
movzx eax, ax
mov ecx, 0x64
mov eax, dword [eax + edi]
cmp eax, ecx
cmovl ecx, eax
test ecx, ecx
jns 0x1002f5ae
xor esi, esi
jmp 0x1002f5bc
imul esi, ecx, 0x1fe
cmp esi, 0x639c
jge 0x1002f5cf
mov eax, 0x51eb851f
imul esi
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jmp 0x1002f5d4
mov ecx, 0xff
mov edx, 0xc738
sub edx, esi
cmp edx, 0x639c
jge 0x1002f5f6
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
jmp 0x1002f5fb
mov eax, 0xff
movzx edx, cl
mov ecx, dword [0x100562e8]
or edx, 0xffff0000
shl edx, 8
movzx eax, al
or edx, eax
push edx
call dword [esp + 0x30]
mov ecx, dword [0x100562e8]
mov eax, dword [ecx]
mov esi, dword [eax + 0x38]
mov ax, word [0x100563c8]
test ax, ax
jne 0x1002f643
mov ecx, 0xa4f40f36
call fcn.1002bf00
mov ecx, dword [0x100562e8]
mov word [0x100563c8], ax
movss xmm0, dword [esp + 0x1c]
addss xmm0, dword [0x1004fee4]
movss xmm2, dword [esp + 0x10]
movzx eax, ax
cvttss2si edx, xmm0
movss xmm0, dword [esp + 0x18]
movd xmm1, dword [eax + edi]
subss xmm0, xmm2
cvtdq2ps xmm1, xmm1
push edx
divss xmm0, dword [0x1004ff3c]
mulss xmm1, xmm0
addss xmm1, xmm2
cvttss2si eax, xmm1
push eax
cvttss2si eax, xmm2
push edx
push eax
call esi
cmp byte [0x10055343], 0
je 0x1002f701
mov ecx, dword [0x100562e8]
push 0xff
push 0xff
push 0xff
mov eax, dword [ecx]
push 0xff
call dword [eax + 0x2c]
movss xmm0, dword [esp + 0x18]
subss xmm0, dword [esp + 0x10]
cvttss2si eax, dword [esp + 0x1c]
mov ecx, dword [0x100562e8]
mov edx, dword [ecx]
mulss xmm0, dword [0x1004fe78]
push eax
addss xmm0, dword [esp + 0x14]
cvttss2si eax, xmm0
movd xmm0, dword [esp + 0x3c]
cvtdq2ps xmm0, xmm0
push eax
push dword [esp + 0x3c]
mulss xmm0, dword [0x1004fe78]
cvttss2si eax, xmm0
push eax
call dword [edx + 0x3c]
cmp byte [0x10055344], 0
mov edi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
je 0x1002f7fb
push 0x80
lea eax, [esp + 0x18c]
push eax
push 0xffffffffffffffff
lea eax, [esp + 0x4c]
push eax
push 0
push 0xfde9
call edi
test eax, eax
jle 0x1002f7fb
mov ecx, dword [0x100562e8]
lea edx, [esp + 0x3c]
mov esi, dword [esp + 0x24]
push edx
lea edx, [esp + 0x30]
mov eax, dword [ecx]
push edx
lea edx, [esp + 0x190]
push edx
push dword [esi]
call dword [eax + 0x12c]
movss xmm0, dword [esp + 0x14]
subss xmm0, dword [0x1004ff1c]
movss xmm1, dword [esp + 0x18]
subss xmm1, dword [esp + 0x10]
mov ecx, dword [0x100562e8]
mov esi, dword [esi]
cvttss2si eax, xmm0
mov edx, dword [ecx]
movd xmm0, dword [esp + 0x2c]
mulss xmm1, dword [0x1004fe78]
push eax
cvtdq2ps xmm0, xmm0
addss xmm1, dword [esp + 0x14]
mulss xmm0, dword [0x1004fe78]
subss xmm1, xmm0
cvttss2si eax, xmm1
push eax
call dword [edx + 0x50]
mov ecx, dword [0x100562e8]
push esi
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [0x100562e8]
push 0xffffffffffffffff
mov eax, dword [ecx]
call dword [eax + 0x48]
lea edx, [esp + 0x188]
lea ecx, [edx + 2]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x1002f7d6
sub edx, ecx
mov ecx, dword [0x100562e8]
sar edx, 1
push 0
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x190]
push edx
call dword [eax + 0x58]
cmp byte [0x10055345], 0
je 0x1002f965
mov ecx, dword [esp + 0x28]
mov eax, dword [ecx]
mov eax, dword [eax + 0x5b4]
call eax
mov ecx, dword [0x1005642c]
mov esi, eax
mov eax, dword [esp + 0x30]
cmp ecx, dword [eax + 4]
jle 0x1002f869
push 0x1005642c
call fcn.100402ff
add esp, 4
cmp dword [0x1005642c], 0xffffffff
jne 0x1002f869
mov edx, str.E8_________50_FF_75_94
mov ecx, str.client.dll
call fcn.100400a0
push 0x1005642c
mov ecx, dword [eax + 1]
add ecx, 5
add eax, ecx
mov dword [0x10056430], eax
call fcn.100402b5
add esp, 4
push esi
call dword [0x10056430]
add esp, 4
mov ecx, str.unknown
test eax, eax
cmovne ecx, eax
lea eax, [esp + 0x188]
push 0x80
push eax
push 0xffffffffffffffff
push ecx
push 0
push 0xfde9
call edi
test eax, eax
jle 0x1002f965
mov ecx, dword [0x100562e8]
lea edx, [esp + 0x3c]
mov esi, dword [esp + 0x24]
push edx
lea edx, [esp + 0x34]
mov eax, dword [ecx]
push edx
lea edx, [esp + 0x190]
push edx
push dword [esi]
call dword [eax + 0x12c]
movss xmm0, dword [esp + 0x1c]
addss xmm0, dword [0x1004feb0]
movss xmm1, dword [esp + 0x18]
subss xmm1, dword [esp + 0x10]
mov ecx, dword [0x100562e8]
mov esi, dword [esi]
cvttss2si eax, xmm0
mov edx, dword [ecx]
movd xmm0, dword [esp + 0x30]
mulss xmm1, dword [0x1004fe78]
push eax
cvtdq2ps xmm0, xmm0
addss xmm1, dword [esp + 0x14]
mulss xmm0, dword [0x1004fe78]
subss xmm1, xmm0
cvttss2si eax, xmm1
push eax
call dword [edx + 0x50]
mov ecx, dword [0x100562e8]
push esi
mov eax, dword [ecx]
call dword [eax + 0x44]
mov ecx, dword [0x100562e8]
push 0xffffffffffffffff
mov eax, dword [ecx]
call dword [eax + 0x48]
lea edx, [esp + 0x188]
lea ecx, [edx + 2]
nop dword [eax + eax]
mov ax, word [edx]
add edx, 2
test ax, ax
jne 0x1002f940
sub edx, ecx
mov ecx, dword [0x100562e8]
sar edx, 1
push 0
push edx
mov eax, dword [ecx]
lea edx, [esp + 0x190]
push edx
call dword [eax + 0x58]
mov ecx, dword [esp + 0x28c]
pop edi
pop esi
xor ecx, esp
call fcn.100401be
mov esp, ebp
pop ebp
ret 4