Function at 0x100b4fc0
Capabilities:
Check os version
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x10188871
mov eax, dword fs:[0]
push eax
sub esp, 0x1c4
mov eax, dword [0x101cd7b4]
xor eax, esp
mov dword [esp + 0x1c0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101cd7b4]
xor eax, esp
push eax
lea eax, [esp + 0x1d8]
mov dword fs:[0], eax
mov edi, dword [esp + 0x1e8]
xor esi, esi
mov ebp, ecx
mov dword [esp + 0x3c], esi
call fcn.10021980
mov dword [esp + 0x58], eax
add eax, 4
push eax
mov dword [esp + 0x58], 0x10199608
mov dword [esp + 0x3c], eax
call dword [0x10199070]
lea eax, [esp + 0x1ec]
push eax
lea ecx, [esp + 0x18]
mov dword [esp + 0x1e4], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x20], esi
lea esi, [ebp + 0x34]
push ecx
mov ecx, esi
mov dword [esp + 0x2c], 4
call fcn.10004e00
mov ebx, dword [esp + 0x14]
test ebx, ebx
mov edx, dword [esi + 4]
mov dword [esp + 0x34], edx
je 0x100b506a
cmp ebx, esi
je 0x100b506f
call fcn.10158fad
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x34]
je 0x100b5093
test ebx, ebx
jne 0x100b5082
call fcn.10158fad
cmp esi, dword [ebx + 4]
jne 0x100b508c
call fcn.10158fad
mov eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x18]
lea esi, [ebp + 0x1c]
push edx
mov ecx, esi
call fcn.10004e00
mov ebx, dword [esp + 0x14]
test ebx, ebx
mov eax, dword [esi + 4]
mov dword [esp + 0x34], eax
je 0x100b50ba
cmp ebx, esi
je 0x100b50bf
call fcn.10158fad
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x34]
je 0x100b50e3
test ebx, ebx
jne 0x100b50d2
call fcn.10158fad
cmp esi, dword [ebx + 4]
jne 0x100b50dc
call fcn.10158fad
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x1c], ecx
mov dword [esp + 0xc0], 0xf
mov dword [esp + 0xbc], 0
mov byte [esp + 0xac], 0
mov edx, dword [esp + 0x2c]
push 0xffffffffffffffff
push 0
push edi
lea ecx, [esp + 0xb4]
mov byte [esp + 0x1ec], 1
mov dword [esp + 0xb0], edx
call fcn.10005490
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x18]
lea esi, [ebp + 0x60]
push ecx
mov ecx, esi
call fcn.100a9300
push edi
lea ecx, [esp + 0xc8]
call fcn.1010a66a
mov ebx, dword [esp + 0x14]
test ebx, ebx
mov edi, dword [esi + 4]
mov byte [esp + 0x1e0], 2
je 0x100b5160
cmp ebx, esi
je 0x100b5165
call fcn.10158fad
mov esi, dword [esp + 0x18]
cmp esi, edi
je 0x100b56d1
test ebx, ebx
jne 0x100b517a
call fcn.10158fad
cmp esi, dword [ebx + 4]
jne 0x100b5184
call fcn.10158fad
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x161], edx
cmp esi, dword [ebx + 4]
jne 0x100b5198
call fcn.10158fad
cmp dword [esi + 0x17c], 0
je 0x100b520a
cmp esi, dword [ebx + 4]
jne 0x100b51ab
call fcn.10158fad
cmp byte [esi + 0x188], 0
je 0x100b520a
lea ecx, [esp + 0xc4]
call fcn.1002c4e0
cmp dword [esp + 0xc0], 0x10
jb 0x100b51da
mov eax, dword [esp + 0xac]
push eax
call fcn.10158c57
add esp, 4
mov ecx, dword [esp + 0x38]
push ecx
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], 0
mov byte [esp + 0xb0], 0
call dword [0x10199074]
xor eax, eax
jmp 0x100b575e
cmp byte [ebp + 0x59bc], 0
jne 0x100b5224
cmp esi, dword [ebx + 4]
jne 0x100b521d
call fcn.10158fad
mov byte [esi + 0x15c], 1
cmp esi, dword [ebx + 4]
jne 0x100b522e
call fcn.10158fad
cmp byte [esi + 0x15c], 0
jne 0x100b52ae
mov ecx, dword [esp + 0x1c]
mov eax, 0x431bde83
mul ecx
shr edx, 0x12
mov edi, edx
mov eax, 0x51eb851f
mul ecx
shr edx, 5
sub edi, edx
mov edx, dword [ebp + 0x592c]
imul edi, edi, 0x64
add edi, ecx
lea eax, [esp + 0x24]
mov dword [esp + 0x24], edi
lea edi, [ebp + 0x5928]
push eax
lea ecx, [esp + 0x60]
push ecx
mov ecx, edi
mov dword [esp + 0x3c], edx
call fcn.10063080
mov dword [esp + 0x24], eax
mov eax, dword [eax]
test eax, eax
je 0x100b528b
cmp eax, edi
je 0x100b5290
call fcn.10158fad
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
cmp dword [eax + 4], edx
je 0x100b52ae
cmp esi, dword [ebx + 4]
jne 0x100b52a7
call fcn.10158fad
mov byte [esi + 0x15c], 1
cmp esi, dword [ebx + 4]
jne 0x100b52b8
call fcn.10158fad
cmp byte [esi + 0x15c], 0
jne 0x100b52e5
cmp esi, dword [ebx + 4]
jne 0x100b52cb
call fcn.10158fad
cmp byte [esi + 0xad], 0
jne 0x100b52e5
cmp esi, dword [ebx + 4]
jne 0x100b52de
call fcn.10158fad
mov byte [esi + 0x15c], 1
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
lea edi, [ebp + 0x5904]
push edx
mov ecx, edi
call fcn.1005c0b0
mov ebx, dword [esp + 0x24]
test ebx, ebx
mov eax, dword [edi + 4]
mov dword [esp + 0x34], eax
je 0x100b530f
cmp ebx, edi
je 0x100b5314
call fcn.10158fad
mov edi, dword [esp + 0x28]
cmp edi, dword [esp + 0x34]
je 0x100b540a
test ebx, ebx
jne 0x100b532b
call fcn.10158fad
cmp edi, dword [ebx + 4]
jne 0x100b5335
call fcn.10158fad
mov ecx, dword [esp + 0x14]
cmp esi, dword [ecx + 4]
jne 0x100b5343
call fcn.10158fad
movzx edx, word [edi + 0x1a]
mov dword [esi + 0x15d], edx
cmp edi, dword [ebx + 4]
jne 0x100b5357
call fcn.10158fad
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
jne 0x100b5365
call fcn.10158fad
mov cl, byte [edi + 0x1c]
mov byte [esi + 0x165], cl
cmp edi, dword [ebx + 4]
jne 0x100b5378
call fcn.10158fad
cmp byte [edi + 0x28], 0
je 0x100b53a5
cmp edi, dword [ebx + 4]
jne 0x100b5388
call fcn.10158fad
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b5396
call fcn.10158fad
cmp byte [edi + 0x1d], 0
setne al
mov byte [esi + 0xac], al
jmp 0x100b53da
cmp edi, dword [ebx + 4]
jne 0x100b53af
call fcn.10158fad
cmp byte [edi + 0x1d], 0
je 0x100b53da
lea ecx, [esp + 0x24]
call fcn.100a6c40
cmp byte [eax + 0x11], 0
lea ecx, [esp + 0x14]
setne byte [esp + 0x23]
call fcn.100a6c40
mov cl, byte [esp + 0x23]
mov byte [eax + 0xa0], cl
cmp edi, dword [ebx + 4]
jne 0x100b53e4
call fcn.10158fad
cmp byte [edi + 0x25], 0
je 0x100b540a
cmp edi, dword [ebx + 4]
jne 0x100b53f4
call fcn.10158fad
cmp byte [edi + 0x15], 0
je 0x100b540a
lea ecx, [esp + 0x14]
call fcn.100a6c40
mov byte [eax + 0x150], 0
cmp dword [ebp + 0x59c8], 5
jne 0x100b5428
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b5421
call fcn.10158fad
mov byte [esi + 0x15c], 1
push 0x33e8
call fcn.10158fbd
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x1e0], 3
je 0x100b54db
lea ecx, [esp + 0x64]
call fcn.100d9680
mov dword [esp + 0x24], eax
xor eax, eax
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
mov byte [esp + 0x1e0], 4
mov dword [esp + 0x3c], 1
jne 0x100b548a
call fcn.10158fad
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x44]
push edx
push 0
lea eax, [ebp + 0x39dc]
push eax
lea ecx, [ebp + 0x1748]
push ecx
lea edx, [ebp + 0xbe0]
push edx
mov edx, dword [ebp + 0x4cec]
lea eax, [esi + 0x2c]
push eax
mov eax, dword [ebp + 0x4ce8]
lea ecx, [ebp + 0x56bc]
push ecx
mov ecx, dword [ebp + 0x4ca0]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x48]
push ebp
call fcn.100936f0
mov dword [esp + 0x1c], eax
jmp 0x100b54e3
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
mov dword [esp + 0x1e0], 5
jne 0x100b54fc
call fcn.10158fad
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esi + 0x174]
call fcn.10018c80
test byte [esp + 0x3c], 1
mov dword [esp + 0x1e0], 2
je 0x100b5527
lea ecx, [esp + 0x64]
call fcn.100d9580
mov ecx, dword [esp + 0x14]
cmp esi, dword [ecx + 4]
jne 0x100b5535
call fcn.10158fad
test ebx, ebx
lea eax, [ebp + 0x5904]
mov byte [esi + 0x190], 0
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
je 0x100b5551
cmp ebx, eax
je 0x100b5556
call fcn.10158fad
cmp edi, dword [esp + 0x34]
je 0x100b5677
test ebx, ebx
jne 0x100b5569
call fcn.10158fad
cmp edi, dword [ebx + 4]
jne 0x100b5573
call fcn.10158fad
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
jne 0x100b5581
call fcn.10158fad
movzx ecx, byte [edi + 0x39]
push ecx
mov ecx, dword [esi + 0x17c]
call fcn.100873f0
cmp edi, dword [ebx + 4]
jne 0x100b55af
call fcn.10158fad
cmp edi, dword [ebx + 4]
jne 0x100b55af
call fcn.10158fad
cmp edi, dword [ebx + 4]
jne 0x100b55af
call fcn.10158fad
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b55bd
call fcn.10158fad
movzx eax, word [edi + 0x3d]
movzx ecx, word [edi + 0x3b]
movzx edx, byte [edi + 0x3a]
push eax
push ecx
mov ecx, dword [esi + 0x17c]
push edx
call fcn.10087410
cmp edi, dword [ebx + 4]
jne 0x100b55e1
call fcn.10158fad
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
jne 0x100b55ef
call fcn.10158fad
movzx ecx, byte [edi + 0x41]
push ecx
mov ecx, dword [esi + 0x17c]
call fcn.10087490
cmp edi, dword [ebx + 4]
jne 0x100b5609
call fcn.10158fad
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b5617
call fcn.10158fad
movzx eax, byte [edi + 0x40]
mov ecx, dword [esi + 0x17c]
push eax
call fcn.100874a0
cmp edi, dword [ebx + 4]
jne 0x100b5631
call fcn.10158fad
mov ecx, dword [esp + 0x14]
cmp esi, dword [ecx + 4]
jne 0x100b563f
call fcn.10158fad
movzx edx, byte [edi + 0x42]
mov ecx, dword [esi + 0x17c]
push edx
call fcn.100874c0
cmp edi, dword [ebx + 4]
jne 0x100b5659
call fcn.10158fad
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
jne 0x100b5667
call fcn.10158fad
movzx ecx, byte [edi + 0x45]
push ecx
mov ecx, dword [esi + 0x17c]
call fcn.100874e0
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b5685
call fcn.10158fad
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
mov edi, dword [esi + 0x17c]
jne 0x100b5699
call fcn.10158fad
push 1
lea ecx, [ebp + 0x4cb4]
push ecx
mov ecx, edi
call fcn.10090350
mov edx, dword [esp + 0x14]
mov byte [esi + 0x188], al
cmp esi, dword [edx + 4]
jne 0x100b56bd
call fcn.10158fad
mov al, byte [esi + 0x188]
neg al
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
mov dword [esp + 0x24], eax
mov ebx, dword [ebp + 0x58fc]
lea ecx, [esp + 0x2c]
push ecx
lea esi, [ebp + 0x58f8]
lea edx, [esp + 0x60]
push edx
mov ecx, esi
call fcn.10063080
mov edi, eax
mov eax, dword [edi]
test eax, eax
je 0x100b56fa
cmp eax, esi
je 0x100b56ff
call fcn.10158fad
cmp dword [edi + 4], ebx
je 0x100b570b
mov ecx, ebp
call fcn.100a80c0
lea ecx, [esp + 0xc4]
call fcn.1002c4e0
cmp dword [esp + 0xc0], 0x10
jb 0x100b5731
mov eax, dword [esp + 0xac]
push eax
call fcn.10158c57
add esp, 4
mov ecx, dword [esp + 0x38]
push ecx
mov dword [esp + 0xc4], 0xf
mov dword [esp + 0xc0], 0
mov byte [esp + 0xb0], 0
call dword [0x10199074]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x1d8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x1c0]
xor ecx, esp
call fcn.101593ee
add esp, 0x1d0
ret 8