Function at 0x5c8a00
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x14
mov edx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov eax, dword [edx]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0x24]
mov eax, dword [eax + 0x6c]
mov dword [esp], eax
mov eax, dword [ecx + 0xc]
mov dword [esp + 0xc], eax
cmp eax, 2
jne 0x5c8ab2
mov eax, dword [ecx + 8]
movaps xmm6, xmmword [eax + 0x40]
addps xmm6, xmmword [eax + 0x10]
mov eax, dword [esp + 0x24]
push eax
push dword [esp + 0x20]
movaps xmm5, xmm6
mulps xmm5, xmm6
push edx
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x55
addss xmm0, xmm5
shufps xmm5, xmm5, 0xaa
addss xmm5, xmm0
xorps xmm0, xmm0
movaps xmm1, xmm0
movss xmm0, dword [0x719764]
movaps xmm2, xmm0
movss xmm0, dword [0x719760]
shufps xmm5, xmm5, 0
movaps xmm3, xmm5
movaps xmm4, xmm5
rsqrtss xmm3, xmm3
mulss xmm5, xmm3
cmpeqss xmm4, xmm1
movaps xmm1, xmm0
mulss xmm1, xmm3
mulss xmm5, xmm3
subss xmm2, xmm5
mulss xmm1, xmm2
andnps xmm4, xmm1
shufps xmm4, xmm4, 0
mulps xmm4, xmm6
movaps xmmword [eax], xmm4
call fcn.005c96a0
add esp, 0x14
ret 0x10
push esi
push edi
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov eax, dword [esp + 0x14]
mov edi, eax
shl edi, 4
add edi, 0x7f
mov esi, dword [ecx + 0xc]
and edi, 0xffffff80
mov dword [esp + 0xc], edi
mov dword [esp + 0x10], esi
lea edx, [esi + edi]
cmp edi, dword [ecx + 8]
jg 0x5c8aee
cmp edx, dword [ecx + 0x10]
ja 0x5c8aee
mov dword [ecx + 0xc], edx
jmp 0x5c8afe
push edi
call fcn.0046a3c0
mov esi, eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], esi
test eax, eax
jle 0x5c8b33
mov edi, dword [esp + 0x18]
mov edx, esi
xor ecx, ecx
mov esi, eax
nop dword [eax]
mov eax, dword [edi + 8]
lea ecx, [ecx + 0x30]
lea edx, [edx + 0x10]
movaps xmm0, xmmword [eax + ecx - 0x30]
movaps xmmword [edx - 0x10], xmm0
sub esi, 1
jne 0x5c8b10
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0xc]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 8]
push dword [esp + 0x2c]
push dword [esp + 0x2c]
cmp byte [ecx + 0x36], 0
je 0x5c8b5e
push dword [esp + 0x2c]
mov ecx, dword [esp + 0x2c]
push ecx
mov ecx, dword [esp + 0x28]
push eax
push esi
call fcn.005c8c50
jmp 0x5c8c09
mov ecx, dword [esp + 0x20]
push eax
push esi
call fcn.005c9d30
mov ecx, dword [esp + 0x20]
test al, al
jne 0x5c8bf7
mov eax, dword [ecx]
mov eax, dword [eax + 0x2c]
mov ecx, dword [eax + 0x24]
mov eax, dword [esp + 0x24]
movaps xmm3, xmmword [ecx + 0x20]
movaps xmm5, xmmword [eax + 0x10]
movaps xmm4, xmm5
mov eax, dword [esp + 0x2c]
mulps xmm4, xmm3
movaps xmm2, xmm5
shufps xmm2, xmm5, 0xc9
movaps xmm1, xmm5
shufps xmm1, xmm5, 0xd2
movaps xmm6, xmm5
shufps xmm6, xmm5, 0xff
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xd2
mulps xmm2, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0xc9
mulps xmm1, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm5
subps xmm2, xmm1
mulps xmm2, xmm6
mulps xmm6, xmm6
addps xmm6, xmmword [0x7195c0]
mulps xmm6, xmm3
addps xmm6, xmm4
addps xmm2, xmm6
addps xmm2, xmm2
movaps xmmword [eax], xmm2
jmp 0x5c8c09
push dword [esp + 0x2c]
push dword [esp + 0x28]
push ecx
mov ecx, dword [esp + 0x24]
call fcn.005c96a0
push dword [0x884adc]
mov eax, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call eax
lea edx, [edi + 0xf]
and edx, 0xfffffff0
cmp edi, dword [eax + 8]
jg 0x5c8c39
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5c8c39
cmp dword [eax + 0x14], esi
je 0x5c8c39
pop edi
mov dword [eax + 0xc], esi
pop esi
add esp, 0x14
ret 0x10
push edx
push esi
mov ecx, eax
call fcn.0046a590
pop edi
pop esi
add esp, 0x14
ret 0x10