Function at 0x601030
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x178
push esi
push edi
push 0
push dword [ebp + 8]
mov dword [esp + 0x10], ecx
lea ecx, [esp + 0xd8]
call fcn.00596880
mov edi, dword [ebp + 0xc]
mov eax, dword [edi]
mov esi, dword [eax + 0x30]
mov dword [esp + 0x18], esi
test esi, esi
je 0x60106a
mov ecx, esi
call fcn.0045c0c0
mov ecx, dword [edi]
lea eax, [esp + 0xd0]
push eax
call fcn.00596360
push edi
lea ecx, [esp + 0xd4]
call fcn.00596ec0
mov ecx, dword [edi]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x14], eax
mov eax, dword [eax + 0x14]
test eax, eax
je 0x6014f0
cmp dword [ebp + 0x10], 0
je 0x6014f0
push 0
push 3
push 0
push 0
push 0
push dword [eax + 0x1c]
lea ecx, [esp + 0x24]
call fcn.005dcf70
push 0
push ecx
mov dword [esp], 0
lea eax, [esp + 0x14]
push 0
push eax
push edi
lea ecx, [esp + 0xe4]
call fcn.00598090
mov esi, dword [esp + 0x14]
lea eax, [esp + 0xa0]
push eax
lea eax, [esp + 0x10]
mov esi, dword [esi + 0x14]
push esi
push eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x20], esi
movsx eax, word [eax + 0xa2]
push eax
call fcn.005df500
mov eax, dword [esp + 0x18]
add esp, 0x10
movaps xmm0, xmmword [esp + 0xa0]
movsx ecx, word [eax + 0xa2]
movaps xmmword [eax + 0xf0], xmm0
mov edx, dword [esi + 0x24]
mov dword [esp + 0x1c], edx
lea eax, [ecx + ecx*2]
add eax, eax
movaps xmm0, xmmword [edx + eax*8 + 0x10]
mov eax, dword [esi + 0xc]
movaps xmmword [esp + 0x30], xmm0
movsx esi, word [eax + ecx*2]
cmp esi, 0xffffffff
je 0x60117c
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x30]
add edx, 0x10
push eax
lea eax, [esi + esi*2]
shl eax, 4
lea ecx, [esp + 0x24]
add eax, edx
push eax
call fcn.004782a0
mov eax, dword [edi + 0xc]
movaps xmm0, xmmword [esp + 0x20]
mov edx, dword [esp + 0x1c]
movaps xmmword [esp + 0x30], xmm0
movsx esi, word [eax + esi*2]
cmp esi, 0xffffffff
jne 0x601145
mov edi, dword [ebp + 0xc]
mov eax, dword [esp + 8]
mov edx, dword [ebp + 0x10]
movsx ecx, word [eax + 0xa0]
mov esi, dword [edx + 0x24]
mov dword [esp + 0x1c], esi
lea eax, [ecx + ecx*2]
add eax, eax
movaps xmm0, xmmword [esi + eax*8 + 0x10]
mov eax, dword [edx + 0xc]
movaps xmmword [esp + 0x20], xmm0
movsx esi, word [eax + ecx*2]
cmp esi, 0xffffffff
je 0x6011e7
mov edi, edx
nop
mov ecx, dword [esp + 0x1c]
lea eax, [esp + 0x20]
push eax
lea eax, [esi + esi*2]
add ecx, 0x10
shl eax, 4
add eax, ecx
lea ecx, [esp + 0x64]
push eax
call fcn.004782a0
mov eax, dword [edi + 0xc]
movaps xmm0, xmmword [esp + 0x60]
movaps xmmword [esp + 0x20], xmm0
movsx esi, word [eax + esi*2]
cmp esi, 0xffffffff
jne 0x6011b0
mov edi, dword [ebp + 0xc]
mov ecx, dword [esp + 8]
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x34]
push eax
lea ecx, [ecx + 0x110]
call fcn.004fd6e0
push 0x10
lea ecx, [esp + 0x48]
call fcn.00601550
mov esi, dword [edi + 0xc]
lea eax, [esp + 0x44]
mov dword [edi + 0xc], eax
mov eax, dword [esp + 8]
push ecx
lea ecx, [esp + 0xd4]
mov dword [esp + 0x5c], 0
mov byte [esp + 0x60], 0
movss xmm0, dword [eax + 0x9c]
movss dword [esp], xmm0
push edi
call fcn.00596fa0
mov eax, dword [esp + 0xc]
xor edx, edx
mov dword [edi + 0xc], esi
cmp dword [eax + 4], edx
jle 0x601281
xor ecx, ecx
mov dword [ecx + eax + 0x18], 0
mov eax, dword [esp + 0xc]
and byte [ecx + eax + 0x1c], 0xfe
mov eax, dword [esp + 0xc]
test byte [ecx + eax + 0x1c], 6
je 0x601278
xor esi, esi
mov word [ecx + eax + 0x12], si
mov eax, dword [esp + 0xc]
inc edx
add ecx, 0x10
cmp edx, dword [eax + 4]
jl 0x601251
push 0
push ecx
mov dword [esp], 0
lea eax, [esp + 0x14]
push 0
push eax
push edi
lea ecx, [esp + 0xe4]
call fcn.00598090
mov eax, dword [edi]
mov ecx, dword [eax + 0x48]
mov eax, dword [esp + 0xc]
movaps xmm4, xmmword [ecx + 0x10]
movaps xmm2, xmmword [ecx]
movaps xmm5, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xff
mulps xmm3, xmm4
movaps xmm7, xmm2
movsx esi, word [eax + 0x14]
shufps xmm7, xmm2, 0xc9
movaps xmm1, xmm2
shufps xmm1, xmm2, 0xd2
add esi, eax
lea eax, [esi + 0x10]
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm7, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
mulps xmm1, xmm0
movaps xmm0, xmmword [ecx + 0x10]
xorps xmm0, xmmword [0x719d70]
movaps xmmword [esp + 0x80], xmm0
subps xmm7, xmm1
shufps xmm3, xmm3, 0
movaps xmm1, xmmword [ecx + 0x20]
mulps xmm3, xmm4
movaps xmm0, xmm1
unpckhps xmm0, xmmword [0x719330]
mulps xmm7, xmm5
mulps xmm5, xmm5
movaps xmm4, xmmword [eax]
shufps xmm1, xmm0, 0xc4
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
rcpps xmm2, xmm1
addps xmm5, xmm3
movaps xmm0, xmm2
mulps xmm0, xmm1
addps xmm7, xmm5
movaps xmm5, xmm4
shufps xmm5, xmm4, 0xff
mulps xmm0, xmm2
addps xmm2, xmm2
addps xmm7, xmm7
subps xmm2, xmm0
xorps xmm7, xmmword [0x719130]
movaps xmm3, xmm7
movaps xmmword [esp + 0x70], xmm7
andps xmm2, xmmword [0x719150]
movaps xmm1, xmm7
mulps xmm3, xmm4
movaps xmmword [esp + 0x90], xmm2
movaps xmm2, xmm7
shufps xmm1, xmm7, 0xc9
shufps xmm2, xmm7, 0xd2
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xd2
mulps xmm1, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm4, 0xc9
lea edx, [esp + 0x80]
mulps xmm2, xmm0
mov ecx, dword [esp + 8]
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
push edx
subps xmm2, xmm1
push eax
mulps xmm2, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm7
addps xmm5, xmm3
addps xmm2, xmm5
addps xmm2, xmm2
addps xmm2, xmmword [esi]
movaps xmmword [ecx + 0x120], xmm2
add ecx, 0x130
call fcn.004782a0
movaps xmm0, xmmword [esi + 0x20]
lea eax, [esp + 0xa0]
mulps xmm0, xmmword [esp + 0x90]
mov esi, dword [esp + 8]
push eax
push dword [esp + 0x18]
lea eax, [esp + 0x14]
movaps xmmword [esi + 0x140], xmm0
xorps xmm0, xmm0
movaps xmmword [esi + 0x150], xmm0
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [esi + 0x160], xmm0
movaps xmm0, xmmword [0x719da0]
push eax
movaps xmmword [esi + 0x170], xmm0
movsx eax, word [esi + 0xa2]
push eax
call fcn.005df500
movaps xmm0, xmmword [esp + 0xb0]
lea ecx, [esp + 0xe0]
add esp, 0x10
movaps xmmword [esi + 0xe0], xmm0
movaps xmm0, xmmword [esp + 0xb0]
movaps xmmword [esi + 0x100], xmm0
push edi
call fcn.00597570
push dword [esp + 0x18]
mov ecx, dword [edi]
call fcn.00596360
lea ecx, [esp + 0x44]
mov byte [esi + 0x180], 1
mov dword [esp + 0x58], 0
mov byte [esp + 0x5c], 0
call fcn.00596500
cmp byte [esp + 0x10], 0
je 0x6014cd
push dword [0x884adc]
mov esi, dword [esp + 0x10]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
push dword [eax + 0x2c]
call fcn.00460680
add esp, 8
mov esi, dword [esp + 0x18]
test esi, esi
je 0x6014dc
mov ecx, esi
call fcn.0045c160
lea ecx, [esp + 0xd0]
call fcn.00596a40
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
push esi
call fcn.00596360
jmp 0x6014d1