Function at 0x10044a50
Capabilities:
Access peb ldr_data
Check os version
Get number of processors

Disassembly:
push 0xffffffffffffffff
push 0x1010129e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x90
mov eax, dword [esp + 0xa8]
mov edx, dword [esp + 0xa4]
push ebx
mov ebx, ecx
mov ecx, dword [esp + 0xa4]
push ebp
xor ebp, ebp
push esi
lea esi, [ebx + 0x64]
mov dword [ebx], eax
mov dword [ebx + 4], 1
mov dword [ebx + 8], ecx
mov dword [ebx + 0xc], edx
mov dword [ebx + 0x10], ebp
mov dword [ebx + 0x14], ebp
mov dword [ebx + 0x30], ebp
mov dword [ebx + 0x34], ebp
mov dword [ebx + 0x3c], ebp
mov dword [ebx + 0x44], ebp
mov dword [ebx + 0x50], ebp
push edi
mov dword [esp + 0x20], ebx
mov dword [esi + 0x2c], ebp
test byte [ebx], 0x80
mov eax, dword [ebx + 0xc]
mov dword [esp + 0xa8], ebp
je 0x10044b43
mov dword [ebx + 0x20], eax
xor edi, edi
cmp edi, 2
je 0x10044b35
cmp edi, 5
ja case.default.0x10044ad8
jmp dword [edi*4 + 0x10044d48]
mov eax, 0x800
jmp 0x10044b07
mov eax, 0x4000
jmp 0x10044b07
mov eax, 0x400
jmp 0x10044b07
mov eax, 0x8000
jmp 0x10044b07
mov eax, 0x1000
jmp 0x10044b07
mov eax, 0x2000
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], ecx
mov dword [esp + 0x1c], ecx
lea ecx, [ebx + edi*4 + 0x18]
push ecx
or eax, 0x200
mov dword [esp + 0x18], eax
mov eax, dword [ebx + 0xc]
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x18], ebp
mov edx, dword [eax]
push eax
call dword [edx + 0x30]
inc edi
cmp edi, 6
jl 0x10044aca
mov edx, dword [ebx + 0x1c]
mov dword [ebx + 0x10], edx
jmp 0x10044b52
mov dword [ebx + 0x10], eax
mov ecx, 6
xor eax, eax
lea edi, [ebx + 0x18]
rep stosd dword es:[edi], eax
xor eax, eax
mov dword [esp + 0x24], 0x7c
mov ecx, 0x1e
lea edi, [esp + 0x28]
rep stosd dword es:[edi], eax
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
lea edx, [esp + 0x24]
push edx
push eax
call dword [ecx + 0x58]
lea eax, [esp + 0x6c]
push eax
mov ecx, esi
call fcn.10054ed0
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x5c], eax
mov ecx, dword [esp + 0x2c]
add eax, 0x1f
cdq
and edx, 0x1f
add eax, edx
sar eax, 5
inc eax
mov dword [ebx + 0x4c], eax
mov dword [ebx + 0x58], ebp
mov dword [ebx + 0x54], ebp
mov dword [ebx + 0x60], ecx
mov cl, byte [esi + 0x22]
mov eax, dword [esi + 0x14]
xor edx, edx
shr edx, cl
mov cl, byte [esi + 0x23]
lea edi, [ebx + 0x54]
shl edx, cl
mov cl, byte [esi + 0x20]
and edx, eax
xor eax, eax
shr eax, cl
mov cl, byte [esi + 0x21]
shl eax, cl
and eax, dword [esi + 0x10]
mov cl, byte [esi + 0x1e]
or edx, eax
xor eax, eax
shr eax, cl
mov cl, byte [esi + 0x1f]
shl eax, cl
and eax, dword [esi + 0xc]
mov cl, byte [esi + 0x1c]
or edx, eax
xor eax, eax
shr eax, cl
mov cl, byte [esi + 0x1d]
shl eax, cl
mov ecx, dword [esi + 8]
mov dword [ebx + 0xc4], 0xffffffff
and eax, ecx
or edx, eax
mov dword [ebx + 0xbc], edx
mov cl, byte [esi + 0x22]
mov eax, dword [esi + 0x14]
or edx, 0xffffffff
shr edx, cl
mov cl, byte [esi + 0x23]
shl edx, cl
mov cl, byte [esi + 0x20]
and edx, eax
or eax, 0xffffffff
shr eax, cl
mov cl, byte [esi + 0x21]
shl eax, cl
and eax, dword [esi + 0x10]
mov cl, byte [esi + 0x1e]
or edx, eax
or eax, 0xffffffff
shr eax, cl
mov cl, byte [esi + 0x1f]
shl eax, cl
and eax, dword [esi + 0xc]
mov cl, byte [esi + 0x1c]
or edx, eax
or eax, 0xffffffff
shr eax, cl
mov cl, byte [esi + 0x1d]
shl eax, cl
and eax, dword [esi + 8]
or edx, eax
mov dword [ebx + 0xc0], edx
mov cl, byte [esi + 0x22]
mov eax, dword [esi + 0x14]
mov edx, 0xff000000
shr edx, cl
mov cl, byte [esi + 0x23]
shl edx, cl
mov cl, byte [esi + 0x20]
and edx, eax
mov eax, 0xff000000
shr eax, cl
mov cl, byte [esi + 0x21]
shl eax, cl
and eax, dword [esi + 0x10]
mov cl, byte [esi + 0x1e]
or edx, eax
mov eax, 0xff000000
shr eax, cl
mov cl, byte [esi + 0x1f]
shl eax, cl
and eax, dword [esi + 0xc]
mov cl, byte [esi + 0x1c]
or edx, eax
mov eax, 0xff000000
shr eax, cl
mov cl, byte [esi + 0x1d]
shl eax, cl
mov ecx, dword [esi + 8]
mov dword [ebx + 0xac], ebp
mov dword [ebx + 0xb0], ebp
and eax, ecx
mov ecx, dword [ebx + 8]
or edx, eax
mov dword [ebx + 0xc8], edx
mov dword [ebx + 0xb4], ebp
mov dword [ebx + 0xb8], ebp
call fcn.10048230
mov ecx, dword [ebx + 0x5c]
mov edx, dword [ebx + 0x60]
mov dword [ebx + 0x98], eax
lea eax, [esp + 0x10]
push eax
push edi
mov dword [esp + 0x18], ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ecx
mov dword [esp + 0x24], edx
call fcn.10044d60
test al, al
jne 0x10044cf7
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x10044d07
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebp, dword [esp + 0x1c]
mov eax, dword [esp + 0x10]
lea esi, [ebx + 0x9c]
mov dword [esi], eax
test dword [ebx], 0x10000
mov dword [esi + 4], ecx
mov dword [esi + 8], edx
mov dword [esi + 0xc], ebp
je case.default.0x10044ad8
mov ecx, dword [ebx + 0x10]
push ecx
call fcn.10055c10
mov ecx, dword [esp + 0xa0]
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
mov dword fs:[0], ecx
add esp, 0x9c
ret 0xc