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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100b0293
mov eax, dword fs:[0]
push eax
sub esp, 0x9c
mov eax, dword [0x100d8180]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0xa4], esi
mov dword [ebp - 0xa0], esi
mov eax, dword [ebp + 0x10]
lea edi, [esi + 0x64]
mov dword [ebp - 0xa8], esi
mov dword [esi], eax
mov eax, dword [ebp + 8]
mov dword [esi + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [esi + 4], 1
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], 0
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
mov dword [esi + 0x3c], 0
mov dword [esi + 0x44], 0
mov dword [esi + 0x50], 0
mov dword [ebp - 0xa0], edi
mov dword [edi + 0x2c], 0
test byte [esi], 0x80
mov eax, dword [esi + 0xc]
mov dword [ebp - 4], 0
je 0x10055145
mov dword [esi + 0x20], eax
xor esi, esi
nop
cmp esi, 2
je 0x10055131
cmp esi, 5
ja case.default.0x100550de
jmp dword [esi*4 + 0x10055374]
mov eax, 0xa00
jmp 0x1005510d
mov eax, 0x4200
jmp 0x1005510d
mov eax, 0x600
jmp 0x1005510d
mov eax, 0x8200
jmp 0x1005510d
mov eax, 0x1200
jmp 0x1005510d
mov eax, 0x2200
xorps xmm0, xmm0
movups xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0xa4]
mov ecx, dword [eax + 0xc]
lea eax, [eax + esi*4]
add eax, 0x18
push eax
lea eax, [ebp - 0x20]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x30]
inc esi
cmp esi, 6
jl 0x100550d0
mov esi, dword [ebp - 0xa4]
mov eax, dword [esi + 0x1c]
mov dword [esi + 0x10], eax
jmp 0x10055154
xorps xmm0, xmm0
mov dword [esi + 0x10], eax
movups xmmword [esi + 0x18], xmm0
movq qword [esi + 0x28], xmm0
push 0x78
lea eax, [ebp - 0x98]
mov dword [ebp - 0x9c], 0x7c
push 0
push eax
call fcn.10081440
mov eax, dword [esi + 0x10]
lea edx, [ebp - 0x9c]
add esp, 0xc
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x58]
lea eax, [ebp - 0x54]
mov ecx, edi
push eax
call fcn.1005fb50
mov ecx, dword [ebp - 0x90]
lea edi, [esi + 0x54]
mov eax, dword [ebp - 0x94]
mov dword [esi + 0x60], eax
mov dword [esi + 0x5c], ecx
lea eax, [ecx + 0x1f]
mov dword [esi + 0x58], 0
cdq
and edx, 0x1f
mov dword [esi + 0xbc], 0
add eax, edx
mov dword [esi + 0xc4], 0xffffffff
sar eax, 5
inc eax
mov dword [edi], 0
mov dword [esi + 0x4c], eax
or esi, 0xffffffff
mov eax, dword [ebp - 0xa0]
mov edx, esi
movzx ecx, byte [eax + 0x1e]
shr edx, cl
movzx ecx, byte [eax + 0x1f]
shl edx, cl
and edx, dword [eax + 0xc]
mov eax, esi
mov ecx, dword [ebp - 0xa0]
movzx ecx, byte [ecx + 0x22]
shr eax, cl
mov ecx, dword [ebp - 0xa0]
movzx ecx, byte [ecx + 0x23]
shl eax, cl
mov ecx, dword [ebp - 0xa0]
and eax, dword [ecx + 0x14]
movzx ecx, byte [ecx + 0x20]
or edx, eax
mov eax, esi
shr eax, cl
mov ecx, dword [ebp - 0xa0]
movzx ecx, byte [ecx + 0x21]
shl eax, cl
mov ecx, dword [ebp - 0xa0]
and eax, dword [ecx + 0x10]
or edx, eax
mov eax, ecx
movzx ecx, byte [eax + 0x1c]
shr esi, cl
movzx ecx, byte [eax + 0x1d]
shl esi, cl
and esi, dword [eax + 8]
mov eax, dword [ebp - 0xa4]
or edx, esi
mov esi, 0xff000000
mov dword [eax + 0xc0], edx
mov edx, esi
mov eax, dword [ebp - 0xa0]
movzx ecx, byte [eax + 0x1e]
shr edx, cl
movzx ecx, byte [eax + 0x1f]
shl edx, cl
mov ecx, dword [ebp - 0xa0]
and edx, dword [eax + 0xc]
mov eax, esi
movzx ecx, byte [ecx + 0x1c]
shr eax, cl
mov ecx, dword [ebp - 0xa0]
movzx ecx, byte [ecx + 0x1d]
shl eax, cl
mov ecx, dword [ebp - 0xa0]
and eax, dword [ecx + 8]
movzx ecx, byte [ecx + 0x20]
or edx, eax
mov eax, esi
shr eax, cl
mov ecx, dword [ebp - 0xa0]
movzx ecx, byte [ecx + 0x21]
shl eax, cl
mov ecx, dword [ebp - 0xa0]
and eax, dword [ecx + 0x10]
or edx, eax
mov eax, ecx
movzx ecx, byte [eax + 0x22]
shr esi, cl
movzx ecx, byte [eax + 0x23]
shl esi, cl
and esi, dword [eax + 0x14]
or edx, esi
mov esi, dword [ebp - 0xa4]
mov ecx, dword [esi + 8]
mov dword [esi + 0xc8], edx
mov dword [esi + 0xac], 0
mov dword [esi + 0xb0], 0
mov dword [esi + 0xb4], 0
mov dword [esi + 0xb8], 0
call fcn.10058c40
mov dword [esi + 0x98], eax
mov eax, dword [esi + 0x5c]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 0x60]
mov dword [ebp - 0x14], eax
lea eax, [ebp - 0x20]
push eax
push edi
mov dword [ebp - 0x20], 0
mov dword [ebp - 0x1c], 0
call fcn.10055790
test al, al
jne 0x10055331
xorps xmm0, xmm0
jmp 0x10055335
movups xmm0, xmmword [ebp - 0x20]
test dword [esi], 0x10000
movups xmmword [esi + 0x9c], xmm0
je 0x10055354
push dword [esi + 0x10]
call fcn.1005e8c0
jmp 0x10055354
mov esi, dword [ebp - 0xa4]
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1007f9c9
mov esp, ebp
pop ebp
ret 0xc