Function at 0x5aa520
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
movss xmm1, dword [0x718824]
push esi
mov esi, ecx
movss dword [esp + 0x20], xmm1
mov ecx, dword [0x8d45f0]
mov dword [esp + 0x28], esi
push edi
test ecx, ecx
je 0x5aa563
mov eax, dword [ecx]
mov eax, dword [eax + 8]
call eax
fstp dword [esp + 0x10]
movss xmm1, dword [esp + 0x10]
movss dword [esp + 0x24], xmm1
lea ecx, [esp + 0x30]
call fcn.006ffdb0
xor edx, edx
mov dword [esp + 0x10], edx
cmp dword [esi + 0x60], edx
jle 0x5aa777
mov dword [esp + 0x28], edx
xor edi, edi
nop dword [eax]
nop word [eax + eax]
mov ecx, dword [esi + 0x5c]
mov ax, word [ecx + edi + 0x88]
mov word [esp + 0x34], ax
mov si, word [ecx + edi + 0x8a]
mov word [esp + 0x16], si
mov word [esp + 0x36], si
mov si, word [ecx + edi + 0x8c]
mov word [esp + 0x18], si
mov word [esp + 0x38], si
mov esi, dword [esp + 0x2c]
test ax, ax
js 0x5aa75e
cmp word [esp + 0x16], 0
jl 0x5aa75e
cmp word [esp + 0x18], 0
jl 0x5aa75e
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x30], eax
movaps xmm0, xmmword [ecx + edi + 0x40]
movaps xmmword [esp + 0x40], xmm0
movaps xmm0, xmmword [ecx + edi + 0x50]
mov ecx, dword [ebp + 8]
movaps xmmword [esp + 0x50], xmm0
call fcn.005c60d0
movss xmm1, dword [esp + 0x24]
movaps xmm0, xmmword [eax]
mov eax, dword [ebp + 8]
movaps xmmword [esp + 0x60], xmm0
mov eax, dword [eax]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
movaps xmm0, xmmword [eax + 0x20]
movaps xmmword [esp + 0x70], xmm0
movss xmm0, dword [esi + 0x70]
mov esi, dword [esi + 0x5c]
movss dword [esp + 0x80], xmm0
movaps xmm0, xmm1
shufps xmm0, xmm0, 0
mulps xmm0, xmmword [esp + 0x50]
movaps xmmword [esp + 0x50], xmm0
movss xmm0, dword [esi + edi + 0x74]
mulss xmm0, xmm1
movss dword [esp + 0x90], xmm0
movss xmm0, dword [esi + edi + 0x70]
mulss xmm0, xmm1
movss dword [esp + 0x8c], xmm0
movss xmm0, dword [esi + edi + 0x68]
mulss xmm0, xmm1
movss dword [esp + 0x84], xmm0
movss xmm0, dword [esi + edi + 0x6c]
mulss xmm0, xmm1
movss dword [esp + 0x88], xmm0
movss xmm0, dword [esi + edi + 0x78]
mulss xmm0, dword [0x7a3b34]
call fcn.0062b671
movss dword [esp + 0x94], xmm0
movss xmm0, dword [esi + edi + 0x7c]
mulss xmm0, dword [0x7a3b34]
call fcn.0062b671
mov esi, dword [esp + 0x2c]
push dword [0x884adc]
movss dword [esp + 0x9c], xmm0
movss xmm0, dword [esi + 0x68]
mulss xmm0, dword [esp + 0x28]
cmp byte [esi + 0xb5], 0
setne byte [esp + 0xa8]
movss dword [esp + 0xa0], xmm0
movss xmm0, dword [esi + 0x6c]
mulss xmm0, dword [esp + 0x28]
movss dword [esp + 0xa4], xmm0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0xf0
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov ecx, 0xf0
mov word [eax + 4], cx
lea ecx, [esp + 0x30]
push ecx
mov ecx, eax
call fcn.006ffea0
mov edx, dword [esp + 0x28]
xorps xmm0, xmm0
mov ecx, dword [esi + 0xb8]
mov dword [edx + ecx + 0x10], eax
mov eax, dword [esi + 0xb8]
movaps xmmword [eax + edx], xmm0
mov edx, dword [esp + 0x10]
add dword [esp + 0x28], 0x20
inc edx
add edi, 0xa0
mov dword [esp + 0x10], edx
cmp edx, dword [esi + 0x60]
jl 0x5aa590
pop edi
mov byte [esi + 0xc8], 1
pop esi
mov esp, ebp
pop ebp
ret 8