Function at 0x5cefa0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xa8
mov eax, ecx
mov dword [esp + 0x1c], eax
push esi
push edi
mov ecx, dword [eax + 0x78]
mov eax, dword [ebp + 8]
push dword [0x884adc]
mov dword [esp + 0x40], ecx
mov esi, dword [ecx + 0x2c]
mov eax, dword [eax]
mov dword [esp + 0x2c], esi
mov edi, dword [esi + 0x1c]
mov eax, dword [eax + 0x2c]
mov dword [esp + 0x48], eax
mov dword [esp + 0x44], edi
mov eax, dword [eax + 0x14]
mov dword [esp + 0x38], eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [edi + edi*2]
shl edi, 4
add edi, 0x7f
mov ecx, dword [eax + 0xc]
and edi, 0xffffff80
mov dword [esp + 0x48], edi
mov dword [esp + 0x2c], ecx
lea edx, [ecx + edi]
cmp edi, dword [eax + 8]
jg 0x5cf011
cmp edx, dword [eax + 0x10]
ja 0x5cf011
mov dword [eax + 0xc], edx
jmp 0x5cf01f
push edi
mov ecx, eax
call fcn.0046a3c0
mov ecx, eax
mov dword [esp + 0x2c], eax
push ecx
push dword [esi + 0x24]
push dword [esi + 0xc]
push dword [esi + 0x1c]
call fcn.0057e2a0
mov esi, dword [esi + 0x1c]
add esp, 0x10
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [esi + esi*2]
shl edx, 4
add edx, 0x7f
mov esi, dword [eax + 0xc]
and edx, 0xffffff80
mov dword [esp + 0x4c], edx
mov dword [esp + 0x20], esi
lea ecx, [esi + edx]
cmp edx, dword [eax + 8]
jg 0x5cf069
cmp ecx, dword [eax + 0x10]
ja 0x5cf069
mov dword [eax + 0xc], ecx
jmp 0x5cf077
push edx
mov ecx, eax
call fcn.0046a3c0
mov esi, eax
mov dword [esp + 0x20], eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0x18], ecx
add ecx, edi
cmp edi, dword [eax + 8]
jg 0x5cf09b
cmp ecx, dword [eax + 0x10]
ja 0x5cf09b
mov dword [eax + 0xc], ecx
jmp 0x5cf0a7
push edi
mov ecx, eax
call fcn.0046a3c0
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x2c]
lea edi, [esi + 8]
mov edx, ecx
mov dword [esp + 0x1c], 3
sub edx, esi
mov dword [esp + 0x30], edx
lea eax, [ecx + 0xc]
mov dword [esp + 0x38], eax
mov dword [esp + 0x14], eax
nop dword [eax]
mov ecx, dword [eax - 8]
lea edi, [edi + 0x10]
mov esi, dword [eax]
mov edx, dword [edx + edi - 0x10]
mov eax, dword [eax - 0xc]
mov dword [edi - 0x14], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edi - 0x18], eax
dec ecx
mov eax, dword [esp + 0x14]
add eax, 0x10
mov dword [edi - 0x10], edx
mov edx, dword [esp + 0x30]
mov dword [edi - 0xc], esi
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jg 0x5cf0d0
mov eax, dword [esp + 0x34]
push dword [0x884adc]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, dword [eax + 0x1c]
mov dword [esp + 0x34], esi
call edi
lea esi, [esi + esi*2]
mov ecx, eax
shl esi, 4
add esi, 0x7f
and esi, 0xffffff80
mov eax, dword [ecx + 0xc]
mov dword [esp + 0x14], eax
add eax, esi
cmp esi, dword [ecx + 8]
jg 0x5cf146
cmp eax, dword [ecx + 0x10]
ja 0x5cf146
mov dword [ecx + 0xc], eax
jmp 0x5cf150
push esi
call fcn.0046a3c0
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x88], 0
jne 0x5cf16a
mov eax, dword [ebp + 0xc]
mov ecx, dword [eax]
movsx edx, word [ecx + 0x34]
add edx, ecx
jmp 0x5cf177
mov ecx, dword [eax + 0x74]
call fcn.005961e0
mov edx, eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x24]
cmp dword [ecx + 0x88], 0
jne 0x5cf196
mov eax, dword [eax]
cmp dword [eax + 4], 2
jle 0x5cf192
movsx eax, word [eax + 0x32]
jmp 0x5cf19a
xor eax, eax
jmp 0x5cf19a
mov eax, dword [esp + 0x30]
push dword [esp + 0x14]
push 0
push dword [esp + 0x3c]
push eax
push edx
call fcn.005df130
mov eax, dword [esp + 0x3c]
push 2
push dword [esp + 0x38]
push dword [eax + 0x24]
mov eax, dword [esp + 0x64]
push dword [esp + 0x34]
push dword [eax + 0x1c]
call fcn.00569220
mov eax, dword [esp + 0x4c]
add esp, 0x24
mov eax, dword [eax + 0x74]
mov eax, dword [eax + 0x48]
movss xmm0, dword [eax + 0x20]
movss dword [esp], xmm0
push dword [esp + 0x1c]
push dword [esp + 0x28]
push dword [esp + 0x4c]
push 1
call fcn.005ce9c0
mov ecx, dword [ebp + 0xc]
lea eax, [esp + 0x64]
push eax
mov ecx, dword [ecx]
movsx eax, word [ecx + 0x14]
add eax, ecx
push eax
push 1
call fcn.005cea30
movaps xmm0, xmmword [0x719da0]
add esp, 0x20
movaps xmmword [esp + 0x70], xmm0
push dword [0x884adc]
call edi
mov edx, eax
lea eax, [esi + 0xf]
and eax, 0xfffffff0
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x14]
cmp esi, dword [edx + 8]
mov esi, dword [esp + 0x1c]
jg 0x5cf24c
lea ecx, [esi + eax]
cmp ecx, dword [edx + 0xc]
jne 0x5cf24c
cmp dword [edx + 0x14], eax
je 0x5cf24c
mov dword [edx + 0xc], eax
jmp 0x5cf255
push esi
push eax
mov ecx, edx
call fcn.0046a590
mov eax, dword [esp + 0x24]
cmp dword [eax + 0x88], 0
je 0x5cf4d9
xorps xmm0, xmm0
comiss xmm0, dword [ebp + 0x10]
jae 0x5cf4d9
mov eax, dword [esp + 0x28]
push dword [0x884adc]
mov esi, dword [eax + 0x1c]
call edi
lea ecx, [esi + esi*2]
mov edx, eax
shl ecx, 4
add ecx, 0x7f
and ecx, 0xffffff80
mov eax, dword [edx + 0xc]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x14], eax
lea esi, [eax + ecx]
cmp ecx, dword [edx + 8]
jg 0x5cf2ad
cmp esi, dword [edx + 0x10]
ja 0x5cf2ad
mov dword [edx + 0xc], esi
jmp 0x5cf2b9
push ecx
mov ecx, edx
call fcn.0046a3c0
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x2c]
lea edi, [eax + 8]
sub edx, eax
mov dword [esp + 0x1c], 3
mov eax, dword [esp + 0x38]
mov dword [esp + 0x40], edx
mov ecx, dword [eax - 8]
lea edi, [edi + 0x10]
mov esi, dword [eax]
mov edx, dword [edx + edi - 0x10]
mov eax, dword [eax - 0xc]
mov dword [edi - 0x14], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edi - 0x18], eax
dec ecx
mov eax, dword [esp + 0x38]
add eax, 0x10
mov dword [edi - 0x10], edx
mov edx, dword [esp + 0x40]
mov dword [edi - 0xc], esi
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ecx
test ecx, ecx
jg 0x5cf2d2
mov eax, dword [esp + 0x34]
push dword [0x884adc]
mov esi, dword [eax + 0x1c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [esi + esi*2]
shl edi, 4
add edi, 0x7f
mov esi, dword [eax + 0xc]
and edi, 0xffffff80
lea ecx, [esi + edi]
cmp edi, dword [eax + 8]
jg 0x5cf33d
cmp ecx, dword [eax + 0x10]
ja 0x5cf33d
mov dword [eax + 0xc], ecx
jmp 0x5cf347
push edi
mov ecx, eax
call fcn.0046a3c0
mov esi, eax
mov eax, dword [esp + 0x24]
push esi
push 0
push dword [esp + 0x3c]
push dword [eax + 0x8c]
push dword [eax + 0x88]
call fcn.005df130
mov eax, dword [esp + 0x3c]
push 2
push dword [esp + 0x2c]
push dword [eax + 0x24]
mov eax, dword [esp + 0x64]
push esi
push dword [eax + 0x1c]
call fcn.00569220
add esp, 0x28
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [edi + 0xf]
and edx, 0xfffffff0
cmp edi, dword [eax + 8]
jg 0x5cf3a9
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5cf3a9
cmp dword [eax + 0x14], esi
je 0x5cf3a9
mov dword [eax + 0xc], esi
jmp 0x5cf3b2
push edx
push esi
mov ecx, eax
call fcn.0046a590
mov ecx, dword [ebp + 8]
call fcn.005c62e0
mov eax, dword [esp + 0x28]
push dword [0x884adc]
mov esi, dword [eax + 0x1c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edi, [esi + esi*2]
shl edi, 4
add edi, 0x7f
mov esi, dword [eax + 0xc]
and edi, 0xffffff80
lea ecx, [esi + edi]
cmp edi, dword [eax + 8]
jg 0x5cf3ee
cmp ecx, dword [eax + 0x10]
ja 0x5cf3ee
mov dword [eax + 0xc], ecx
jmp 0x5cf3f8
push edi
mov ecx, eax
call fcn.0046a3c0
mov esi, eax
mov eax, dword [esp + 0x28]
push ecx
mov dword [esp], 0x3f800000
push esi
push dword [esp + 0x1c]
push dword [eax + 0x1c]
push 1
call fcn.005ce9c0
lea eax, [esp + 0x94]
push eax
mov eax, dword [esp + 0x3c]
add eax, 0x20
push eax
push 1
call fcn.005cea30
movaps xmm0, xmmword [0x719da0]
lea eax, [esp + 0x70]
mov ecx, dword [esp + 0x5c]
add esp, 0x1c
movaps xmmword [esp + 0xa4], xmm0
movss xmm0, dword [ebp + 0x10]
movss dword [esp], xmm0
push eax
push dword [esp + 0x20]
lea eax, [esp + 0x8c]
push eax
push esi
call fcn.0058a670
mov ecx, dword [ebp + 8]
call fcn.005c62e0
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [edi + 0xf]
and edx, 0xfffffff0
cmp edi, dword [eax + 8]
jg 0x5cf492
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5cf492
cmp dword [eax + 0x14], esi
je 0x5cf492
mov dword [eax + 0xc], esi
jmp 0x5cf49b
push edx
push esi
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call edi
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x14]
lea esi, [ecx + 0xf]
and esi, 0xfffffff0
cmp ecx, dword [eax + 8]
jg 0x5cf4ce
lea ecx, [esi + edx]
cmp ecx, dword [eax + 0xc]
jne 0x5cf4ce
cmp dword [eax + 0x14], edx
je 0x5cf4ce
mov dword [eax + 0xc], edx
jmp 0x5cf51b
push esi
push edx
mov ecx, eax
call fcn.0046a590
jmp 0x5cf51b
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.005c60b0
test eax, eax
je 0x5cf509
mov ecx, esi
call fcn.005c62e0
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x1c]
call fcn.0058a4b0
mov ecx, esi
call fcn.005c62e0
jmp 0x5cf51b
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x50]
push eax
push dword [esp + 0x1c]
call fcn.0058a4b0
push dword [0x884adc]
call edi
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x18]
lea edx, [esi + 0xf]
and edx, 0xfffffff0
cmp esi, dword [eax + 8]
jg 0x5cf54b
add ecx, edx
cmp ecx, dword [eax + 0xc]
mov ecx, dword [esp + 0x18]
jne 0x5cf54b
cmp dword [eax + 0x14], ecx
je 0x5cf54b
mov dword [eax + 0xc], ecx
jmp 0x5cf554
push edx
push ecx
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call edi
mov ecx, dword [esp + 0x4c]
lea edx, [ecx + 0xf]
and edx, 0xfffffff0
cmp ecx, dword [eax + 8]
mov ecx, dword [esp + 0x20]
jg 0x5cf584
add ecx, edx
cmp ecx, dword [eax + 0xc]
mov ecx, dword [esp + 0x20]
jne 0x5cf584
cmp dword [eax + 0x14], ecx
je 0x5cf584
mov dword [eax + 0xc], ecx
jmp 0x5cf58d
push edx
push ecx
mov ecx, eax
call fcn.0046a590
push dword [0x884adc]
call edi
lea edx, [esi + 0xf]
and edx, 0xfffffff0
cmp esi, dword [eax + 8]
mov esi, dword [esp + 0x2c]
jg 0x5cf5bc
lea ecx, [edx + esi]
cmp ecx, dword [eax + 0xc]
jne 0x5cf5bc
cmp dword [eax + 0x14], esi
je 0x5cf5bc
mov dword [eax + 0xc], esi
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc
push edx
push esi
mov ecx, eax
call fcn.0046a590
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0xc