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

Disassembly:
push 0xffffffffffffffff
push 0x101870e1
mov eax, dword fs:[0]
push eax
sub esp, 0x1c4
mov eax, dword [0x101c6444]
xor eax, esp
mov dword [esp + 0x1c0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101c6444]
xor eax, esp
push eax
lea eax, [esp + 0x1d8]
mov dword fs:[0], eax
mov edi, dword [esp + 0x1e8]
xor esi, esi
mov ebx, ecx
mov dword [esp + 0x3c], esi
call fcn.10023df0
mov dword [esp + 0x58], eax
add eax, 4
push eax
mov dword [esp + 0x58], 0x101975f4
mov dword [esp + 0x3c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
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, [ebx + 0x34]
push ecx
mov ecx, esi
mov dword [esp + 0x2c], 4
call fcn.100ac430
mov ebp, dword [esp + 0x14]
test ebp, ebp
mov edx, dword [esi + 4]
mov dword [esp + 0x34], edx
je 0x100b959a
cmp ebp, esi
je 0x100b959f
call fcn.1015828d
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x34]
je 0x100b95c3
test ebp, ebp
jne 0x100b95b2
call fcn.1015828d
cmp esi, dword [ebp + 4]
jne 0x100b95bc
call fcn.1015828d
mov eax, dword [esi + 0x10]
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x18]
lea esi, [ebx + 0x1c]
push edx
mov ecx, esi
call fcn.100ac430
mov ebp, dword [esp + 0x14]
test ebp, ebp
mov eax, dword [esi + 4]
mov dword [esp + 0x34], eax
je 0x100b95ea
cmp ebp, esi
je 0x100b95ef
call fcn.1015828d
mov esi, dword [esp + 0x18]
cmp esi, dword [esp + 0x34]
je 0x100b9613
test ebp, ebp
jne 0x100b9602
call fcn.1015828d
cmp esi, dword [ebp + 4]
jne 0x100b960c
call fcn.1015828d
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.10001a10
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x18]
lea esi, [ebx + 0x60]
push ecx
mov ecx, esi
call fcn.100acde0
push edi
lea ecx, [esp + 0xc8]
call fcn.10109967
mov ebp, dword [esp + 0x14]
test ebp, ebp
mov edi, dword [esi + 4]
mov byte [esp + 0x1e0], 2
je 0x100b9690
cmp ebp, esi
je 0x100b9695
call fcn.1015828d
mov esi, dword [esp + 0x18]
cmp esi, edi
je 0x100b9c28
test ebp, ebp
jne 0x100b96aa
call fcn.1015828d
cmp esi, dword [ebp + 4]
jne 0x100b96b4
call fcn.1015828d
mov edx, dword [esp + 0x1c]
mov dword [esi + 0x161], edx
cmp esi, dword [ebp + 4]
jne 0x100b96c8
call fcn.1015828d
cmp dword [esi + 0x17c], 0
je 0x100b973a
cmp esi, dword [ebp + 4]
jne 0x100b96db
call fcn.1015828d
cmp byte [esi + 0x188], 0
je 0x100b973a
lea ecx, [esp + 0xc4]
call fcn.1002e6d0
cmp dword [esp + 0xc0], 0x10
jb 0x100b970a
mov eax, dword [esp + 0xac]
push eax
call fcn.10157f3b
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 [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
jmp 0x100b9cb5
cmp byte [ebx + 0x59bc], 0
jne 0x100b9754
cmp esi, dword [ebp + 4]
jne 0x100b974d
call fcn.1015828d
mov byte [esi + 0x15c], 1
cmp esi, dword [ebp + 4]
jne 0x100b975e
call fcn.1015828d
cmp byte [esi + 0x15c], 0
jne 0x100b97de
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 [ebx + 0x592c]
imul edi, edi, 0x64
add edi, ecx
lea eax, [esp + 0x24]
mov dword [esp + 0x24], edi
lea edi, [ebx + 0x5928]
push eax
lea ecx, [esp + 0x60]
push ecx
mov ecx, edi
mov dword [esp + 0x3c], edx
call fcn.10066b00
mov dword [esp + 0x24], eax
mov eax, dword [eax]
test eax, eax
je 0x100b97bb
cmp eax, edi
je 0x100b97c0
call fcn.1015828d
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x24]
cmp dword [eax + 4], edx
je 0x100b97de
cmp esi, dword [ebp + 4]
jne 0x100b97d7
call fcn.1015828d
mov byte [esi + 0x15c], 1
cmp esi, dword [ebp + 4]
jne 0x100b97e8
call fcn.1015828d
cmp byte [esi + 0x15c], 0
jne 0x100b9815
cmp esi, dword [ebp + 4]
jne 0x100b97fb
call fcn.1015828d
cmp byte [esi + 0xad], 0
jne 0x100b9815
cmp esi, dword [ebp + 4]
jne 0x100b980e
call fcn.1015828d
mov byte [esi + 0x15c], 1
cmp esi, dword [ebp + 4]
jne 0x100b981f
call fcn.1015828d
cmp dword [esi + 0x15d], 0
jne 0x100b983c
cmp esi, dword [ebp + 4]
jne 0x100b9832
call fcn.1015828d
mov dword [esi + 0x15d], 0x12c
lea ecx, [esp + 0x1c]
push ecx
lea edx, [esp + 0x28]
lea edi, [ebx + 0x5904]
push edx
mov ecx, edi
call fcn.1005f140
mov ebp, dword [esp + 0x24]
test ebp, ebp
mov eax, dword [edi + 4]
mov dword [esp + 0x34], eax
je 0x100b9866
cmp ebp, edi
je 0x100b986b
call fcn.1015828d
mov edi, dword [esp + 0x28]
cmp edi, dword [esp + 0x34]
je 0x100b9961
test ebp, ebp
jne 0x100b9882
call fcn.1015828d
cmp edi, dword [ebp + 4]
jne 0x100b988c
call fcn.1015828d
mov ecx, dword [esp + 0x14]
cmp esi, dword [ecx + 4]
jne 0x100b989a
call fcn.1015828d
movzx edx, word [edi + 0x1a]
mov dword [esi + 0x15d], edx
cmp edi, dword [ebp + 4]
jne 0x100b98ae
call fcn.1015828d
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
jne 0x100b98bc
call fcn.1015828d
mov cl, byte [edi + 0x1c]
mov byte [esi + 0x165], cl
cmp edi, dword [ebp + 4]
jne 0x100b98cf
call fcn.1015828d
cmp byte [edi + 0x28], 0
je 0x100b98fc
cmp edi, dword [ebp + 4]
jne 0x100b98df
call fcn.1015828d
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b98ed
call fcn.1015828d
cmp byte [edi + 0x1d], 0
setne al
mov byte [esi + 0xac], al
jmp 0x100b9931
cmp edi, dword [ebp + 4]
jne 0x100b9906
call fcn.1015828d
cmp byte [edi + 0x1d], 0
je 0x100b9931
lea ecx, [esp + 0x24]
call fcn.10065c60
cmp byte [eax + 0x11], 0
lea ecx, [esp + 0x14]
setne byte [esp + 0x23]
call fcn.10065c60
mov cl, byte [esp + 0x23]
mov byte [eax + 0xa0], cl
cmp edi, dword [ebp + 4]
jne 0x100b993b
call fcn.1015828d
cmp byte [edi + 0x25], 0
je 0x100b9961
cmp edi, dword [ebp + 4]
jne 0x100b994b
call fcn.1015828d
cmp byte [edi + 0x15], 0
je 0x100b9961
lea ecx, [esp + 0x14]
call fcn.10065c60
mov byte [eax + 0x150], 0
cmp dword [ebx + 0x59c8], 5
jne 0x100b997f
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b9978
call fcn.1015828d
mov byte [esi + 0x15c], 1
push 0x33e0
call fcn.101582b6
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov byte [esp + 0x1e0], 3
je 0x100b9a32
lea ecx, [esp + 0x64]
call fcn.100dee20
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 0x100b99e1
call fcn.1015828d
mov ecx, dword [esp + 0x24]
push ecx
lea edx, [esp + 0x44]
push edx
push 0
lea eax, [ebx + 0x39dc]
push eax
lea ecx, [ebx + 0x1748]
push ecx
lea edx, [ebx + 0xbe0]
push edx
mov edx, dword [ebx + 0x4cec]
lea eax, [esi + 0x2c]
push eax
mov eax, dword [ebx + 0x4ce8]
lea ecx, [ebx + 0x56bc]
push ecx
mov ecx, dword [ebx + 0x4ca0]
push edx
push eax
push ecx
mov ecx, dword [esp + 0x48]
push ebx
call fcn.10097bb0
mov dword [esp + 0x1c], eax
jmp 0x100b9a3a
mov dword [esp + 0x1c], 0
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
mov dword [esp + 0x1e0], 5
jne 0x100b9a53
call fcn.1015828d
mov eax, dword [esp + 0x1c]
push eax
lea ecx, [esi + 0x174]
call fcn.100386d0
test byte [esp + 0x3c], 1
mov dword [esp + 0x1e0], 2
je 0x100b9a7e
lea ecx, [esp + 0x64]
call fcn.100ded20
mov ecx, dword [esp + 0x14]
cmp esi, dword [ecx + 4]
jne 0x100b9a8c
call fcn.1015828d
test ebp, ebp
lea eax, [ebx + 0x5904]
mov byte [esi + 0x190], 0
mov edx, dword [eax + 4]
mov dword [esp + 0x34], edx
je 0x100b9aa8
cmp ebp, eax
je 0x100b9aad
call fcn.1015828d
cmp edi, dword [esp + 0x34]
je 0x100b9bce
test ebp, ebp
jne 0x100b9ac0
call fcn.1015828d
cmp edi, dword [ebp + 4]
jne 0x100b9aca
call fcn.1015828d
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
jne 0x100b9ad8
call fcn.1015828d
movzx ecx, byte [edi + 0x39]
push ecx
mov ecx, dword [esi + 0x17c]
call fcn.1008af00
cmp edi, dword [ebp + 4]
jne 0x100b9b06
call fcn.1015828d
cmp edi, dword [ebp + 4]
jne 0x100b9b06
call fcn.1015828d
cmp edi, dword [ebp + 4]
jne 0x100b9b06
call fcn.1015828d
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b9b14
call fcn.1015828d
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.1008af20
cmp edi, dword [ebp + 4]
jne 0x100b9b38
call fcn.1015828d
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
jne 0x100b9b46
call fcn.1015828d
movzx ecx, byte [edi + 0x41]
push ecx
mov ecx, dword [esi + 0x17c]
call fcn.1008afa0
cmp edi, dword [ebp + 4]
jne 0x100b9b60
call fcn.1015828d
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b9b6e
call fcn.1015828d
movzx eax, byte [edi + 0x40]
mov ecx, dword [esi + 0x17c]
push eax
call fcn.1008afb0
cmp edi, dword [ebp + 4]
jne 0x100b9b88
call fcn.1015828d
mov ecx, dword [esp + 0x14]
cmp esi, dword [ecx + 4]
jne 0x100b9b96
call fcn.1015828d
movzx edx, byte [edi + 0x42]
mov ecx, dword [esi + 0x17c]
push edx
call fcn.1008afd0
cmp edi, dword [ebp + 4]
jne 0x100b9bb0
call fcn.1015828d
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
jne 0x100b9bbe
call fcn.1015828d
movzx ecx, byte [edi + 0x45]
push ecx
mov ecx, dword [esi + 0x17c]
call fcn.1008aff0
mov edx, dword [esp + 0x14]
cmp esi, dword [edx + 4]
jne 0x100b9bdc
call fcn.1015828d
mov eax, dword [esp + 0x14]
cmp esi, dword [eax + 4]
mov edi, dword [esi + 0x17c]
jne 0x100b9bf0
call fcn.1015828d
push 1
lea ecx, [ebx + 0x4cb4]
push ecx
mov ecx, edi
call fcn.10094810
mov edx, dword [esp + 0x14]
mov byte [esi + 0x188], al
cmp esi, dword [edx + 4]
jne 0x100b9c14
call fcn.1015828d
mov al, byte [esi + 0x188]
neg al
sbb eax, eax
and eax, 0xfffffffd
add eax, 3
mov dword [esp + 0x24], eax
mov ebp, dword [ebx + 0x58fc]
lea ecx, [esp + 0x2c]
push ecx
lea esi, [ebx + 0x58f8]
lea edx, [esp + 0x60]
push edx
mov ecx, esi
call fcn.10066b00
mov edi, eax
mov eax, dword [edi]
test eax, eax
je 0x100b9c51
cmp eax, esi
je 0x100b9c56
call fcn.1015828d
cmp dword [edi + 4], ebp
je 0x100b9c62
mov ecx, ebx
call fcn.100abc90
lea ecx, [esp + 0xc4]
call fcn.1002e6d0
cmp dword [esp + 0xc0], 0x10
jb 0x100b9c88
mov eax, dword [esp + 0xac]
push eax
call fcn.10157f3b
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 [sym.imp.KERNEL32.dll_LeaveCriticalSection]
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.101586e7
add esp, 0x1d0
ret 8