Function at 0x52b520
Capabilities:
Get number of processors

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
mov eax, dword [ebp + 8]
xor edx, edx
mov ecx, dword [ebp + 0x14]
test ecx, ecx
push esi
mov esi, dword [ebp + 0xc]
setne dl
vmovdqu xmm4, xmmword [eax]
vmovdqu xmm5, xmmword [eax + 0x10]
vmovdqu xmm6, xmmword [eax + 0x20]
vmovdqu xmm7, xmmword [eax + 0x30]
vpxor xmm0, xmm0, xmm0
push edi
mov edi, dword [ebp + 0x10]
vmovdqa xmmword [esp + 0x70], xmm0
vmovd xmm0, ecx
vmovdqa xmmword [esp + 0x50], xmm0
vmovdqa xmmword [esp + 0x40], xmm4
vmovdqa xmmword [esp + 0x30], xmm5
vmovdqa xmmword [esp + 0x20], xmm6
vmovdqa xmmword [esp + 0x10], xmm7
cmp edi, 0x10
jb 0x52b8d1
mov eax, esi
neg eax
and eax, 0xf
mov dword [esp + 0x6c], eax
je 0x52b64d
vmovdqu xmm2, xmmword [esi]
vmovdqa xmmword [esp + 0x70], xmm2
test ecx, ecx
je 0x52b5b4
vpxor xmm2, xmm2, xmm0
xor edx, edx
vmovdqa xmmword [esp + 0x70], xmm2
cmp eax, 4
jae 0x52b602
test ecx, ecx
je 0x52b602
vmovdqu xmm0, xmmword [esi + 0x10]
vpclmulqdq xmm1, xmm4, xmmword [0x5a0440], 1
add esi, 0x10
sub edi, 0x10
vmovdqa xmmword [esp + 0x70], xmm0
vpclmulqdq xmm0, xmm4, xmmword [0x5a0440], 0x10
vxorps xmm0, xmm1, xmm0
vpxor xmm0, xmm2, xmm0
vmovdqa xmmword [esp + 0x40], xmm5
vmovdqa xmmword [esp + 0x30], xmm6
vmovdqa xmmword [esp + 0x20], xmm7
vmovdqa xmmword [esp + 0x10], xmm0
lea ecx, [esp + 0x70]
push ecx
lea ecx, [esp + 0x14]
push ecx
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x3c]
push ecx
lea ecx, [esp + 0x50]
push ecx
push eax
call fcn.0052c560
add esi, dword [esp + 0x84]
add esp, 0x18
sub edi, dword [esp + 0x6c]
vmovdqa xmm7, xmmword [esp + 0x10]
vmovdqa xmm6, xmmword [esp + 0x20]
vmovdqa xmm5, xmmword [esp + 0x30]
vmovdqa xmm4, xmmword [esp + 0x40]
vmovdqa xmm0, xmmword [esp + 0x50]
cmp edi, 0x100
jb 0x52b692
push edx
push edi
push esi
lea eax, [esp + 0x1c]
push eax
lea eax, [esp + 0x30]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x58]
push eax
call fcn.0052c0b0
vmovdqa xmm7, xmmword [esp + 0x2c]
vmovdqa xmm6, xmmword [esp + 0x3c]
vmovdqa xmm5, xmmword [esp + 0x4c]
vmovdqa xmm4, xmmword [esp + 0x5c]
add esp, 0x1c
xor edx, edx
sub edi, eax
add esi, eax
vmovdqa xmm3, xmmword [esp + 0x50]
cmp edi, 0x40
jb 0x52b774
vmovdqa xmm0, xmmword [0x5a0440]
mov eax, edi
shr eax, 6
nop
vmovdqu xmm1, xmmword [esi + 0x10]
vmovdqu xmm2, xmmword [esi]
vmovdqa xmmword [esp + 0x30], xmm1
vmovdqu xmm1, xmmword [esi + 0x20]
vmovdqa xmmword [esp + 0x20], xmm1
vmovdqu xmm1, xmmword [esi + 0x30]
vmovdqa xmmword [esp + 0x10], xmm1
vpclmulqdq xmm1, xmm4, xmm0, 1
vpclmulqdq xmm0, xmm4, xmm0, 0x10
vmovdqa xmm4, xmmword [0x5a0440]
vxorps xmm0, xmm0, xmm1
vmovdqu xmmword [esp + 0x50], xmm0
vpclmulqdq xmm1, xmm5, xmm4, 1
vpclmulqdq xmm0, xmm5, xmm4, 0x10
vxorps xmm5, xmm0, xmm1
vpclmulqdq xmm1, xmm6, xmm4, 1
vpclmulqdq xmm0, xmm6, xmm4, 0x10
vxorps xmm6, xmm0, xmm1
sub edi, 0x40
add esi, 0x40
vpclmulqdq xmm1, xmm7, xmm4, 1
vpclmulqdq xmm0, xmm7, xmm4, 0x10
vxorps xmm1, xmm0, xmm1
test edx, edx
je 0x52b733
xor edx, edx
vpxor xmm2, xmm2, xmm3
vpxor xmm4, xmm2, xmmword [esp + 0x50]
vpxor xmm5, xmm5, xmmword [esp + 0x30]
vpxor xmm6, xmm6, xmmword [esp + 0x20]
vpxor xmm7, xmm1, xmmword [esp + 0x10]
vmovdqa xmm0, xmmword [0x5a0440]
vmovdqa xmmword [esp + 0x40], xmm4
vmovdqa xmmword [esp + 0x30], xmm5
vmovdqa xmmword [esp + 0x20], xmm6
vmovdqa xmmword [esp + 0x10], xmm7
sub eax, 1
jne 0x52b6b0
cmp edi, 0x30
jb 0x52b808
vmovdqu xmm1, xmmword [esi + 0x10]
vmovdqu xmm0, xmmword [esi]
vmovdqa xmmword [esp + 0x90], xmm1
vmovdqu xmm1, xmmword [esi + 0x20]
sub edi, 0x30
add esi, 0x30
vmovdqa xmmword [esp + 0x50], xmm0
vmovdqa xmmword [esp + 0x80], xmm1
test edx, edx
je 0x52b7b7
vpxor xmm0, xmm0, xmm3
vmovdqa xmmword [esp + 0x50], xmm0
lea eax, [esp + 0x10]
push eax
lea eax, [esp + 0x24]
push eax
lea eax, [esp + 0x38]
push eax
lea eax, [esp + 0x4c]
push eax
call fcn.0052c4a0
vmovdqa xmm0, xmmword [esp + 0x60]
vpxor xmm5, xmm0, xmmword [esp + 0x40]
vmovdqa xmm0, xmmword [esp + 0xa0]
vpxor xmm6, xmm0, xmmword [esp + 0x30]
vmovdqa xmm0, xmmword [esp + 0x90]
vpxor xmm7, xmm0, xmmword [esp + 0x20]
vmovdqa xmm4, xmmword [esp + 0x50]
add esp, 0x10
jmp 0x52b8bf
cmp edi, 0x20
jb 0x52b87a
vmovdqu xmm0, xmmword [esi]
vmovdqu xmm1, xmmword [esi + 0x10]
sub edi, 0x20
add esi, 0x20
vmovdqa xmmword [esp + 0x50], xmm0
vmovdqa xmmword [esp + 0x80], xmm1
test edx, edx
je 0x52b839
vpxor xmm0, xmm0, xmm3
vmovdqa xmmword [esp + 0x50], xmm0
vmovdqa xmm2, xmmword [0x5a0440]
vpclmulqdq xmm1, xmm5, xmm2, 1
vpclmulqdq xmm0, xmm5, xmm2, 0x10
vxorps xmm3, xmm1, xmm0
vpclmulqdq xmm1, xmm4, xmm2, 1
vpclmulqdq xmm0, xmm4, xmm2, 0x10
vxorps xmm0, xmm1, xmm0
vmovdqa xmm4, xmm6
vpxor xmm6, xmm0, xmmword [esp + 0x50]
vmovdqa xmm5, xmm7
vpxor xmm7, xmm3, xmmword [esp + 0x80]
jmp 0x52b8b9
cmp edi, 0x10
jb 0x52b8d1
vmovdqu xmm2, xmmword [esi]
sub edi, 0x10
add esi, 0x10
test edx, edx
je 0x52b891
vpxor xmm2, xmm2, xmm3
vpclmulqdq xmm1, xmm4, xmmword [0x5a0440], 1
vpclmulqdq xmm0, xmm4, xmmword [0x5a0440], 0x10
vmovdqa xmm4, xmm5
vxorps xmm0, xmm1, xmm0
vmovdqa xmm5, xmm6
vmovdqa xmm6, xmm7
vpxor xmm7, xmm0, xmm2
vmovdqa xmmword [esp + 0x40], xmm4
vmovdqa xmmword [esp + 0x30], xmm5
vmovdqa xmmword [esp + 0x20], xmm6
vmovdqa xmmword [esp + 0x10], xmm7
test edi, edi
je 0x52b91b
push edi
lea eax, [esp + 0x74]
push esi
push eax
call fcn.004930c0
lea eax, [esp + 0x7c]
push eax
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x34]
push eax
lea eax, [esp + 0x48]
push eax
lea eax, [esp + 0x5c]
push eax
push edi
call fcn.0052c560
vmovdqa xmm7, xmmword [esp + 0x34]
vmovdqa xmm6, xmmword [esp + 0x44]
vmovdqa xmm5, xmmword [esp + 0x54]
vmovdqa xmm4, xmmword [esp + 0x64]
add esp, 0x24
mov eax, dword [ebp + 8]
pop edi
pop esi
vmovdqu xmmword [eax], xmm4
vmovdqu xmmword [eax + 0x10], xmm5
vmovdqu xmmword [eax + 0x20], xmm6
vmovdqu xmmword [eax + 0x30], xmm7
mov esp, ebp
pop ebp
ret