Function at 0x52f8d0
Capabilities:
Check for peb ntglobalflag flag

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x70
mov esi, esp
mov dword [esi + 0x58], ebp
mov dword [esi + 0x5c], esp
mov dword [esi + 0x68], 0xffffffff
mov dword [esi + 0x64], 0x704540
mov ebx, ecx
lea eax, [esi + 0x60]
mov edi, edx
mov ecx, dword fs:[0]
mov dword [esi + 0x60], ecx
mov dword fs:[0], eax
mov ecx, ebx
mov eax, dword [ebx + 0x100]
movsd xmm2, qword [edx]
movsd xmm3, qword [edx + 8]
movsd xmm4, qword [edx + 8]
movss xmm0, dword [eax + 0x3c]
movss xmm1, dword [eax + 0x40]
movsd qword [esi + 0x18], xmm2
movsd xmm2, qword [edx]
lea eax, [esi + 0x28]
movsd qword [esi + 0x20], xmm3
movsd qword [esi + 0x30], xmm4
lea edx, [esi + 0x18]
movsd qword [esi + 0x28], xmm2
push eax
call fcn.005565d0
add esp, 4
mov eax, dword [ebx + 0x100]
mov dword [esi + 4], ebx
cmp byte [eax + 0x214], 0
je 0x52fa59
mov ecx, dword [esi + 4]
mov eax, dword [ebx + 0xc4]
mov edx, dword [ebx + 0xc0]
movsd xmm0, qword [edi]
movsd xmm3, qword [edi + 8]
mov ebx, dword [ecx + 0xc8]
mov ecx, dword [esi + 4]
movaps xmm2, xmm0
mov dword [esi + 0x10], eax
lea eax, [esi + 0x28]
movsd xmm1, qword [ecx + 0xd0]
mov ecx, dword [esi + 4]
maxps xmm2, xmm1
cmpunordps xmm1, xmm1
andps xmm0, xmm1
andnps xmm1, xmm2
movaps xmm2, xmm3
orps xmm1, xmm0
movlps qword [esi + 0x28], xmm1
movsd xmm1, qword [ecx + 0xd8]
mov ecx, dword [esi + 4]
minps xmm2, xmm1
cmpunordps xmm1, xmm1
mov ecx, dword [ecx + 0xe0]
andps xmm3, xmm1
andnps xmm1, xmm2
orps xmm1, xmm3
movlps qword [esi + 0x30], xmm1
push eax
push ebx
mov ebx, dword [esi + 4]
push dword [esi + 0x10]
call fcn.0051b510
add esp, 0xc
test al, al
je 0x52fa59
lea edx, [ebx + 0xe0]
lea ebx, [esi + 0x28]
mov ecx, ebx
call fcn.0051b720
movsd xmm0, qword [edi]
movsd xmm1, qword [edi + 8]
mov dword [esi + 0x68], 0
lea edx, [esi + 0x18]
mov ecx, ebx
movsd qword [esi + 0x18], xmm0
movss xmm0, dword [0x725a20]
movsd qword [esi + 0x20], xmm1
push 0xffe6d8ad
push 0x3f800000
call fcn.005616e0
add esp, 8
mov ecx, dword [esi + 4]
lea edx, [esi + 0x28]
call fcn.00556fa0
mov eax, dword [esi + 0x48]
lock dec dword [eax]
jne 0x52fa56
mov ecx, dword [esi + 0x48]
mov dword [esi + 0x68], 0xffffffff
call fcn.00562540
mov ebx, dword [esi + 4]
mov ecx, dword [ebx + 0xf8]
mov ebx, dword [ebx + 0xfc]
mov edx, 0x2df45158
mov dword [esi + 0x10], ecx
xor ecx, 0x38d01376
mov dword [esi + 0x14], ebx
xor ebx, 0x452821e6
mov eax, ecx
mul edx
mov dword [esi + 0xc], eax
imul eax, ecx, 0x2d7f954c
bswap ecx
add eax, edx
imul edx, ebx, 0x2df45158
bswap ebx
add edx, eax
mov eax, ebx
mov dword [esi + 8], edx
mov edx, 0xb36a80d2
mul edx
mov edi, eax
imul eax, ebx, 0xa7ae0bd2
imul ebx, ecx, 0xb36a80d2
add eax, edx
bswap edi
mov edx, 0xcf6654be
add ebx, eax
xor edi, dword [esi + 8]
bswap ebx
xor ebx, dword [esi + 0xc]
imul ecx, edi, 0xcf6654be
bswap edi
mov eax, ebx
mul edx
mov dword [esi + 0xc], eax
imul eax, ebx, 0x6e0ce934
add eax, edx
mov edx, 0xcb16f391
add ecx, eax
mov eax, edi
mul edx
mov dword [esi + 8], ecx
mov ecx, edx
imul edx, edi, 0x41ab9930
bswap eax
add edx, ecx
mov ecx, ebx
xor eax, dword [esi + 8]
bswap ecx
imul edi, ecx, 0xcb16f391
mov ecx, ebx
add edi, edx
bswap edi
mov edx, eax
xor edi, dword [esi + 0xc]
test bl, 0x20
mov ebx, dword [esi + 0x14]
cmovne edx, edi
cmovne edi, eax
mov eax, edi
shld eax, edx, cl
shld edx, edi, cl
mov ecx, dword [esi + 0x10]
mov edi, dword [esi + 4]
add ecx, 1
adc ebx, 0
mov dword [edi + 0xf8], ecx
mov dword [edi + 0xfc], ebx
mov edi, dword [esi + 0x60]
mov dword fs:[0], edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret