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

Disassembly:
push 0xffffffffffffffff
push 0x73e0f0
mov eax, dword fs:[0]
push eax
sub esp, 0x278
mov eax, dword [0x81f390]
xor eax, esp
mov dword [esp + 0x274], eax
push esi
push edi
mov eax, dword [0x81f390]
xor eax, esp
push eax
lea eax, [esp + 0x284]
mov dword fs:[0], eax
mov eax, dword [esp + 0x2a4]
mov ecx, dword [esp + 0x2d4]
mov esi, dword [esp + 0x298]
mov edi, dword [esp + 0x294]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x2ac]
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x2d8]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x2b4]
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 0x34c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2d0]
mov dword [esp + 0x30], ecx
mov ecx, dword [esp + 0x350]
mov dword [esp + 0x18], esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], ecx
lea ecx, [edi + 0xe8]
mov dword [esp + 0x28c], 1
mov byte [eax], 0
call fcn.00405200
lea ecx, [edi + 0xe8]
call fcn.005aa270
mov dword [edi], eax
mov ecx, dword [esi]
mov eax, ecx
and eax, 0x700
cmp eax, 0x400
jne 0x41b1fc
mov eax, dword [esp + 0x29c]
and ecx, 0xfffff8ff
and al, 0x13
mov dword [esi], ecx
cmp al, 1
jne 0x41b1e6
and dword [edi], 0xfffffbff
jmp 0x41b1fc
or ecx, 0x100
mov dword [esi], ecx
mov eax, dword [edi]
and eax, 0xfffffbff
or eax, 0x100
mov dword [edi], eax
push 0x90
lea eax, [esp + 0x1b8]
push 0
push eax
call fcn.006f87a0
mov ax, word [esi + 0x22]
add esp, 0xc
cmp dword [esi + 0x28], 1
mov word [esp + 0x1b6], ax
mov eax, dword [esi + 0x24]
mov dword [esp + 0x1b8], eax
mov al, byte [esi + 0x20]
mov byte [esp + 0x1b4], al
mov al, byte [esi + 0x21]
mov byte [esp + 0x1b5], al
jbe 0x41b25e
cmp dword [esi + 4], 0
je 0x41b24f
cmp dword [esi + 8], 0
jne 0x41b25e
mov eax, dword [esp + 0x3c]
mov dword [eax], 0x69
jmp 0x41bb9c
cmp dword [esi + 4], 0
jne 0x41b58b
mov eax, dword [esi]
test eax, 0x80000
je 0x41b2c1
mov eax, dword [esp + 0x38]
push dword [eax]
lea eax, [esp + 0x2bc]
sub esp, 0x18
mov ecx, esp
push 0xffffffffffffffff
push 0
mov dword [ecx + 0x14], 0xf
mov dword [ecx + 0x10], 0
push eax
mov byte [ecx], 0
call fcn.00404c20
mov eax, dword [esp + 0x48]
push dword [eax]
push dword [esp + 0x2d0]
push esi
push edi
call fcn.0041cf20
mov eax, dword [esp + 0x50]
add esp, 0x2c
mov byte [eax], 1
jmp 0x41bb9c
mov ecx, dword [0x833348]
shr eax, 0x10
and al, 1
mov dword [esp + 0x34], 0
mov byte [esp + 0x28], al
mov eax, dword [esp + 0x3c]
push dword [esp + 0x28]
push esi
mov eax, dword [eax]
mov dword [esp + 0x40], eax
lea eax, [esp + 0x3c]
mov ecx, dword [ecx + 0xac]
push eax
lea eax, [esp + 0x1c0]
push eax
lea eax, [esp + 0x48]
push eax
call fcn.004ba280
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
test ecx, ecx
je 0x41b350
mov ecx, dword [ecx + 0xf4]
mov ecx, dword [ecx + 0x37c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x2c]
call edx
cmp eax, 6
jne 0x41b34c
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0xf4]
mov ecx, dword [eax + 0x37c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
call eax
cmp eax, 8
jne 0x41b34c
mov ecx, dword [esp + 0x34]
mov dl, 1
jmp 0x41b352
mov ecx, dword [esp + 0x34]
xor dl, dl
movzx eax, word [esi + 0x22]
mov dword [esp + 0x30], 0x270f
cmp word [esp + 0x30], ax
jne 0x41b36e
cmp dword [esi + 0x24], 0xf423f
je 0x41b383
mov dword [esp + 0x30], 1
cmp word [esp + 0x30], ax
jne 0x41b387
cmp dword [esi + 0x24], 1
jne 0x41b387
mov al, 1
jmp 0x41b389
xor al, al
cmp dword [esp + 0x28], 0
jne 0x41b3a7
test ecx, ecx
je 0x41b3a7
cmp dword [esi + 8], 0
jne 0x41b3a7
cmp dword [esi + 0x18], 0
jne 0x41b3a7
mov ecx, 1
jmp 0x41b3a9
xor ecx, ecx
push 1
push dword [esp + 0x3c]
or al, dl
push dword [esp + 0x44]
and al, cl
mov ecx, dword [0x833348]
mov byte [esp + 0x4f], al
call fcn.004d5240
mov eax, dword [esp + 0x28]
test eax, eax
jne 0x41b3f3
cmp byte [esp + 0x43], al
jne 0x41b3fa
mov ecx, dword [esp + 0x3c]
cmp dword [ecx], eax
jne 0x41bb9c
mov eax, dword [esi + 8]
neg eax
sbb eax, eax
add eax, 0xc9
mov dword [ecx], eax
jmp 0x41bb9c
cmp byte [esp + 0x43], 0
je 0x41b40b
push dword [esp + 0x34]
lea ecx, [edi + 0xe8]
call fcn.004052d0
jmp 0x41b423
cmp dword [eax], 0
lea ecx, [edi + 0xe8]
push eax
jne 0x41b41e
call fcn.00405290
jmp 0x41b423
call fcn.004052f0
push 0
lea ecx, [edi + 0xe8]
call fcn.00405230
mov eax, dword [esp + 0x24]
or dword [edi], 0x100
cmp byte [esp + 0x2b0], 0
mov byte [eax], 1
je 0x41bb9c
sub esp, 0xf0
lea eax, [esp + 0x334]
mov edi, esp
add esi, 0x1d0
mov ecx, 0x3c
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.004ada60
add esp, 0xf4
mov esi, dword [esp + 0x18]
xorps xmm0, xmm0
mov byte [esp + 0x28c], 2
mov byte [esp + 0x260], 0
movdqu xmmword [esp + 0x261], xmm0
mov eax, dword [esi + 0x28]
movq qword [esp + 0x271], xmm0
mov dword [esp + 0x279], 0
mov word [esp + 0x27d], 0
mov byte [esp + 0x27f], 0
cmp eax, 1
jbe 0x41b4d9
push eax
push str.LQ:__u
lea eax, [esp + 0x268]
push 0x20
push eax
call fcn.006f8e26
add esp, 0x10
mov eax, dword [esp + 0x29c]
lea edx, [esp + 0x248]
shr eax, 0x1e
lea ecx, [esp + 0x2b8]
test al, 1
mov edi, 0x77e880
lea eax, [esp + 0x260]
push eax
mov eax, dword [esp + 0x30]
push dword [eax]
mov eax, str.with_LifeTime
jne 0x41b541
cmp dword [esp + 0x264], 0x10
cmovae edx, dword [esp + 0x250]
cmp dword [esp + 0x2d4], 0x10
cmovae ecx, dword [esp + 0x2c0]
cmp dword [esi + 0x1dc], 0
cmove eax, edi
push eax
push edx
push ecx
push str.Access_from__s_s_to_IFI__s_Handle__d___s_n
jmp 0x41b573
cmp dword [esp + 0x264], 0x10
cmovae edx, dword [esp + 0x250]
cmp dword [esp + 0x2d4], 0x10
cmovae ecx, dword [esp + 0x2c0]
cmp dword [esi + 0x1dc], 0
cmove eax, edi
push eax
push edx
push ecx
push str.Access_from__s_s_to_SubSystem__s_Handle__d___s_n
mov eax, dword [0x833348]
push dword [eax + 0xbc]
call fcn.004a5250
add esp, 0x1c
jmp 0x41bb90
xor al, al
lea ecx, [esi + 0x1d0]
cmp dword [ecx], 0
mov edx, 1
movzx eax, al
cmove eax, edx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov eax, dword [eax]
cmp eax, edx
je 0x41b5e6
cmp eax, 2
je 0x41b5e6
cmp eax, 5
je 0x41b5e6
push dword [esp + 0x30]
lea eax, [esp + 0x2e0]
push edi
push esi
push eax
call fcn.004ca980
add esp, 0x10
test al, al
jne 0x41b5e6
mov eax, dword [esp + 0x3c]
mov dword [eax], 0xe7
jmp 0x41bb9c
test byte [esi + 3], 1
je 0x41b63b
cmp byte [esp + 0x2a8], 0
jne 0x41b63b
lea eax, [esp + 0x30]
push eax
call fcn.004fa120
mov ecx, dword [esi + 0x1c4]
add esp, 4
sub ecx, dword [eax]
mov eax, ecx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x15f90
jbe 0x41b63b
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x2b8]
mov dword [eax], 0xe8
mov eax, dword [esp + 0x34]
mov byte [eax], 1
call fcn.00404550
jmp 0x41bbd3
mov ecx, dword [esi]
test ecx, 0x6000000
je 0x41b80b
shr ecx, 0x1a
and cl, 1
mov byte [esp + 0x30], cl
mov ecx, dword [0x833348]
push dword [esp + 0x30]
push esi
mov ecx, dword [ecx + 0xa8]
call fcn.0047ce30
mov edi, eax
mov dword [esp + 0x30], edi
test edi, edi
je 0x41b7f0
mov edx, dword [esi]
mov ecx, edx
shr ecx, 0x19
test cl, 1
je 0x41b793
lea ecx, [esp + 0x144]
call fcn.00419b10
push 0x100
lea eax, [esp + 0x48]
push 0
push eax
call fcn.006f87a0
lea eax, [esi + 0xd0]
push eax
lea eax, [esp + 0x54]
push eax
call fcn.0056f1a0
push 0x64
lea eax, [esp + 0x5c]
push eax
lea eax, [esp + 0x160]
push eax
call fcn.006e6560
push 0x10
lea eax, [esp + 0x168]
push 0x7801d4
push eax
call fcn.006e6560
lea eax, [esp + 0x170]
push eax
lea eax, [esp + 0x290]
push eax
call fcn.006e6440
add esp, 0x34
lea ecx, [esi + 0x1b4]
lea edx, [esp + 0x260]
mov edi, 0xc
mov eax, dword [ecx]
cmp eax, dword [edx]
jne 0x41b71c
add ecx, 4
add edx, 4
sub edi, 4
jae 0x41b707
xor eax, eax
jmp 0x41b741
cmp al, byte [edx]
jne 0x41b73c
mov al, byte [ecx + 1]
cmp al, byte [edx + 1]
jne 0x41b73c
mov al, byte [ecx + 2]
cmp al, byte [edx + 2]
jne 0x41b73c
mov al, byte [ecx + 3]
cmp al, byte [edx + 3]
jne 0x41b73c
xor eax, eax
jmp 0x41b741
sbb eax, eax
or eax, 1
test eax, eax
jne 0x41b989
mov eax, dword [esi]
shr eax, 0x1b
test al, 1
jne 0x41b780
test dword [esi + 0xd0], 0x101
jne 0x41b780
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x2b8]
mov dword [eax], 0xe3
mov eax, dword [esp + 0x34]
mov byte [eax], 1
call fcn.00404550
jmp 0x41bbd3
mov edi, dword [esp + 0x30]
push 3
lea ecx, [edi + 0xe8]
call fcn.00405260
jmp 0x41b7ab
shr edx, 0x1a
test dl, 1
je 0x41b7ab
test dword [esi + 0xd0], 0x101
jne 0x41b989
mov esi, dword [esp + 0x2c]
mov ecx, dword [0x833348]
push 1
push dword [esi]
mov ecx, dword [ecx + 0xa8]
call fcn.0047de90
mov eax, dword [edi + 0x5fc]
mov ecx, dword [esp + 0x14]
mov dword [esi], eax
mov eax, dword [edi + 0x108]
mov dword [ecx], eax
lea ecx, [esp + 0x2b8]
mov eax, dword [esp + 0x24]
mov byte [eax], 1
call fcn.00404550
jmp 0x41bbd3
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x2b8]
mov dword [eax], 0xc8
call fcn.00404550
jmp 0x41bbd3
push dword [esp + 0x10]
mov eax, dword [esp + 0x40]
push 0
push dword [esp + 0x40]
mov eax, dword [eax]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x1c4]
push eax
lea eax, [esp + 0x2f0]
push eax
push ecx
mov ecx, dword [0x833348]
push esi
push edi
mov ecx, dword [ecx + 0xa4]
call fcn.004ae460
mov ecx, dword [0x833348]
push 1
push dword [esp + 0x2c]
mov dword [esp + 0x40], eax
push dword [esp + 0x44]
call fcn.004d5240
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0x41ba17
mov eax, dword [esi]
shr eax, 0x14
test al, 1
jne 0x41ba17
push ecx
lea ecx, [edi + 0xe8]
call fcn.004052f0
cmp byte [esp + 0x1c], 0
je 0x41b89f
push 0x100000
push 1
lea ecx, [edi + 0xe8]
call fcn.00405350
mov eax, dword [esi]
shr eax, 0x1c
test al, 1
jne 0x41b8dc
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x2c], 0
mov byte [esp + 0x43], 0
call fcn.004be670
mov ecx, dword [esp + 0x38]
push eax
lea eax, [esp + 0x47]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.004bdb40
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x228], eax
test byte [esi + 3], 1
je 0x41b9ab
push 1
lea ecx, [edi + 0xe8]
call fcn.00405260
cmp byte [esp + 0x2a8], 0
jne 0x41b937
push dword [edi + 0x5fc]
mov ecx, dword [esp + 0x3c]
call fcn.004bc880
test al, al
jne 0x41b937
push 2
lea ecx, [edi + 0xe8]
call fcn.00405260
push 1
mov ecx, edi
call fcn.0047b7b0
mov eax, dword [esp + 0x3c]
mov dword [eax], 0xe2
mov eax, dword [esp + 0x34]
mov byte [eax], 1
mov ecx, edi
call fcn.0047c300
test al, al
je 0x41b95b
cmp byte [esp + 0x2a8], 0
jne 0x41b9ab
mov ecx, dword [esp + 0x38]
push 1
call fcn.004bc020
test al, al
jne 0x41b9ab
cmp byte [esp + 0x2a8], 0
mov ecx, edi
push 1
sete al
movzx eax, al
push eax
call fcn.0047c010
push 2
lea ecx, [edi + 0xe8]
call fcn.00405260
push 1
mov ecx, edi
call fcn.0047b7b0
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x2b8]
mov dword [eax], 0xe2
mov eax, dword [esp + 0x34]
mov byte [eax], 1
call fcn.00404550
jmp 0x41bbd3
test dword [esi], 0x10000
je 0x41ba0b
push dword [esp + 0x38]
lea eax, [esi + 0x1d0]
push eax
lea eax, [esp + 0x28]
push eax
call fcn.004b8900
add esp, 0xc
cmp dword [eax], 0
je 0x41b9e3
push 0
lea ecx, [edi + 0xe8]
call fcn.00405230
mov dword [edi], 0x100
test dword [esi], 0x10000
je 0x41ba0b
push edi
call fcn.004def60
add esp, 4
test al, al
je 0x41ba0b
push 0
lea ecx, [edi + 0xe8]
call fcn.00405230
mov dword [edi], 0x100
mov eax, dword [esp + 0x24]
mov byte [eax], 1
jmp 0x41bb9c
cmp dword [esi + 8], 0
jne 0x41bb9c
test ecx, ecx
je 0x41ba30
mov eax, dword [esp + 0x2c]
push dword [eax]
call fcn.004bd190
mov ecx, dword [0x833348]
lea eax, [esp + 0x1b4]
push eax
push dword [esi + 4]
mov ecx, dword [ecx + 0xb0]
call fcn.0046eab0
mov esi, eax
mov dword [esp + 0x1c], esi
test esi, esi
je 0x41bb9c
push esi
lea ecx, [edi + 0xe8]
call fcn.00405320
mov eax, dword [esp + 0x24]
lea ecx, [esi + 0x70]
push dword [esp + 0x2c]
mov byte [eax], 1
lea eax, [esp + 0x10]
push eax
call fcn.0041eab0
cmp byte [esp + 0x2b0], 0
je 0x41bb9c
mov esi, dword [esp + 0x20]
lea eax, [esp + 0x244]
sub esp, 0xf0
mov ecx, 0x3c
mov edi, esp
rep movsd dword es:[edi], dword [esi]
push eax
call fcn.004ada60
add esp, 0xf4
mov eax, dword [esp + 0x1c]
xorps xmm0, xmm0
mov esi, dword [esp + 0x18]
mov byte [esp + 0x28c], 3
mov byte [esp + 0x260], 0
mov edi, dword [eax + 4]
mov eax, dword [esi + 0x28]
movq qword [esp + 0x271], xmm0
mov dword [esp + 0x279], 0
mov word [esp + 0x27d], 0
mov byte [esp + 0x27f], 0
movdqu xmmword [esp + 0x261], xmm0
cmp eax, 1
jbe 0x41bb1f
push eax
push str.LQ:__u
lea eax, [esp + 0x268]
push 0x20
push eax
call fcn.006f8e26
add esp, 0x10
cmp dword [esp + 0x25c], 0x10
lea eax, [esp + 0x260]
push eax
mov eax, dword [esp + 0x30]
lea edx, [esp + 0x24c]
cmovae edx, dword [esp + 0x24c]
lea ecx, [esp + 0x2bc]
cmp dword [esp + 0x2d0], 0x10
mov dword [esp + 0x24], 0x77e880
push dword [eax]
cmovae ecx, dword [esp + 0x2c0]
mov eax, str.with_LifeTime
cmp dword [esi + 0x1dc], 0
cmove eax, dword [esp + 0x28]
push eax
mov eax, dword [0x833348]
push edi
push edx
push ecx
push str.Access_from__s_s_to_FC_u__s_Handle__d___s_n
push dword [eax + 0xbc]
call fcn.004a5250
add esp, 0x20
lea ecx, [esp + 0x244]
call fcn.0061b700
cmp dword [esp + 0x2cc], 0x10
jb 0x41bbb5
push dword [esp + 0x2b8]
call fcn.006f75a9
add esp, 4
mov dword [esp + 0x2cc], 0xf
mov dword [esp + 0x2c8], 0
mov byte [esp + 0x2b8], 0
lea ecx, [esp + 0x2dc]
mov dword [esp + 0x28c], 0xffffffff
call fcn.005735f0
mov ecx, dword [esp + 0x284]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [esp + 0x274]
xor ecx, esp
call fcn.006f7ca4
add esp, 0x284
ret