Function at 0x467890
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x2c
push dword [esp + 0xc]
lea ecx, [esp + 0x20]
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], connect
call fcn.0046a7a0
lea eax, [esp + 0x1c]
push eax
push dword [esp + 0x38]
call fcn.00466e10
mov eax, dword [esp + 0x20]
add esp, 8
mov ecx, dword [esp + 0x20]
and eax, 0x3fffffff
cmp eax, ecx
jge 0x4678f6
add eax, eax
cmp ecx, eax
push 4
cmovl ecx, eax
lea eax, [esp + 0x14]
push ecx
push eax
push 0x7d8950
call fcn.00467b80
add esp, 0x10
push esi
push edi
lea ecx, [esp + 0x24]
call fcn.0046aac0
mov esi, eax
lea ecx, [esp + 0x24]
push esi
lea eax, [esp + 0xf]
push eax
call fcn.0046ad00
cmp byte [esp + 0xb], 0
je 0x46795b
nop dword [eax]
push esi
lea ecx, [esp + 0x28]
call fcn.0046ab80
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
push esi
mov dword [edx + ecx*4], eax
lea ecx, [esp + 0x28]
inc dword [esp + 0x20]
call fcn.0046aaf0
mov esi, eax
lea ecx, [esp + 0x24]
push esi
lea eax, [esp + 0xf]
push eax
call fcn.0046ad00
cmp byte [esp + 0xb], 0
jne 0x467920
mov eax, dword [esp + 0x1c]
cmp eax, 1
jle 0x467979
push 0x4670f0
dec eax
push eax
push 0
push dword [esp + 0x24]
call fcn.00466490
add esp, 0x10
lea ecx, [esp + 0x24]
call fcn.0046a7e0
mov ecx, dword [esp + 0x1c]
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0x38]
push 0x717fd0
push edi
mov eax, dword [eax + ecx*4 - 4]
movss xmm0, dword [eax + 4]
movss dword [esp + 0x14], xmm0
call fcn.0045ce70
push 0x718008
push edi
call fcn.0045ce70
push str._Per_Type_Times_____n
push edi
call fcn.0045ce70
push 0x718008
push edi
call fcn.0045ce70
mov ecx, dword [esp + 0x3c]
add esp, 0x20
sub ecx, 1
mov dword [esp + 0x10], ecx
js 0x467aeb
movss xmm1, dword [esp + 0xc]
mulss xmm1, dword [esp + 0x40]
push ebx
push ebp
movss dword [esp + 0x1c], xmm1
mov eax, dword [esp + 0x20]
mov esi, dword [eax + ecx*4]
movss xmm0, dword [esi + 4]
comiss xmm0, xmm1
jbe 0x467ab1
push 0x718004
push edi
call fcn.0045ce70
push str._n_n
push edi
call fcn.0045ce70
xor ebx, ebx
add esp, 0x10
cmp dword [esi + 0x74], ebx
jle 0x467a5e
xor ebp, ebp
nop dword [eax + eax]
push 0x718080
push edi
call fcn.0045ce70
mov eax, dword [esi + 0x70]
add esp, 8
add eax, ebp
push eax
push ecx
mov dword [esp], 0
push edi
call fcn.00467790
inc ebx
add esp, 0xc
add ebp, 0x70
cmp ebx, dword [esi + 0x74]
jl 0x467a30
movss xmm0, dword [esp + 0x14]
push esi
push ecx
movss dword [esp], xmm0
push edi
call fcn.00467790
xor ebp, ebp
add esp, 0xc
cmp dword [esi + 0x80], ebp
jle 0x467ab1
xor ebx, ebx
push 0x718080
push edi
call fcn.0045ce70
mov eax, dword [esi + 0x7c]
add esp, 8
add eax, ebx
push eax
push ecx
mov dword [esp], 0
push edi
call fcn.00467790
inc ebp
add esp, 0xc
add ebx, 0x70
cmp ebp, dword [esi + 0x80]
jl 0x467a80
mov ecx, esi
call fcn.00466570
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x88
push esi
mov ecx, dword [eax + 0x30]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [esp + 0x18]
movss xmm1, dword [esp + 0x1c]
sub ecx, 1
mov dword [esp + 0x18], ecx
jns 0x4679f1
pop ebp
pop ebx
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1c], 0
pop edi
pop esi
test eax, eax
js 0x467b17
and eax, 0x3fffffff
mov ecx, 0x7d8950
shl eax, 2
push eax
mov eax, dword [0x7d8950]
push dword [esp + 0x14]
call dword [eax + 0x10]
add esp, 0x2c
ret