Function at 0x1008f360
Capabilities:
Get thread local storage value

Disassembly:
push 0xffffffffffffffff
push 0x10117538
mov eax, dword fs:[0]
push eax
sub esp, 0x24
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101e6198]
xor eax, esp
push eax
lea eax, [esp + 0x38]
mov dword fs:[0], eax
mov ebx, ecx
call sym.i3FrameworkDx.dll_public_virtual:_void___thiscall_i3UIControl::OnBindTemplate_void_
xor ebp, ebp
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
push ebp
lea eax, [esp + 0x20]
push eax
mov ecx, ebx
mov dword [esp + 0x48], ebp
call sym.i3FrameworkDx.dll_public:_void___thiscall_i3UIControl::GetChildControls_class_i3::vector_class_i3UIControl___class_i3::pool_allocator_class_i3UIControl______bool_
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub ecx, eax
sar ecx, 2
xor edi, edi
test ecx, ecx
jbe 0x1008f3f9
mov esi, dword [eax + edi*4]
mov edx, dword [sym.i3FrameworkDx.dll_class_i3ClassMeta__i3UIControl::s_pClassMetai3UIControl]
push edx
mov ecx, esi
call dword [0x10123684]
test al, al
je 0x1008f3e7
test byte [esi + 0x114], 1
je 0x1008f3e7
push esi
mov ecx, ebx
call sym.i3FrameworkDx.dll_public:_void___thiscall_i3UIControl::RemoveControl_class_i3UIControl__
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x1c]
sub ecx, eax
inc edi
sar ecx, 2
cmp edi, ecx
jb 0x1008f3c0
cmp dword [ebx + 0x168], ebp
je 0x1008f4f7
mov ecx, dword [ebx + 0x168]
mov edx, dword [ecx]
mov eax, dword [edx + 0x3c]
call eax
cmp eax, ebp
mov dword [esp + 0x18], eax
jle 0x1008f4f3
mov ecx, dword [ebx + 0x168]
mov edx, dword [ecx]
mov eax, dword [edx + 0x40]
push ebp
call eax
mov edi, eax
mov edx, dword [edi]
mov eax, dword [edx + 0x74]
mov ecx, edi
call eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 4]
push 0
call eax
mov esi, eax
test esi, esi
je 0x1008f45b
mov ecx, dword [sym.i3FrameworkDx.dll_class_i3ClassMeta__i3UIControl::s_pClassMetai3UIControl]
push ecx
mov ecx, esi
call dword [0x1012366c]
test al, al
je 0x1008f47f
push 0
push str.void___thiscall_i3UIUserControl::OnBindTemplate_void_
push 0x3a
push 0
call dword [0x10123834]
push str.pCtrl___NULL__pCtrl__IsExactTypeOf__i3UIControl::GetClassMeta_____FALSE
push str.Asserted_:__s
call dword [0x10123838]
add esp, 0x18
or dword [esi + 0x114], 1
or dword [esi + 0x218], 0x10000000
mov edx, dword [edi]
mov edx, dword [edx + 0x60]
lea eax, [esp + 0x28]
push eax
mov ecx, edi
call edx
fld dword [esp + 0x34]
fsub dword [esp + 0x2c]
sub esp, 8
mov ecx, esi
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp + 4]
fld dword [esp + 0x38]
fsub dword [esp + 0x30]
fstp dword [esp + 0x1c]
fld dword [esp + 0x1c]
fstp dword [esp]
call sym.i3FrameworkDx.dll_public:_void___thiscall_i3UIControl::setSize_float__float_
mov eax, dword [esi]
mov edx, dword [eax + 0xdc]
push edi
mov ecx, esi
call edx
push 1
push esi
mov ecx, ebx
call sym.i3FrameworkDx.dll_public:_void___thiscall_i3UIControl::AddControl_class_i3UIControl___bool_
inc ebp
cmp ebp, dword [esp + 0x18]
jl 0x1008f41e
xor ebp, ebp
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x40], 0xffffffff
cmp eax, ebp
je 0x1008f536
mov esi, dword [0x101e7834]
mov edi, eax
mov eax, dword [0x101237bc]
mov ecx, dword [eax]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esi + 4]
mov edx, dword [eax + 4]
push edi
push ecx
push eax
mov eax, dword [edx + ecx*4]
lea edx, [edx + ecx*4]
push esi
call eax
add esp, 0xc
mov ecx, eax
call dword [0x1012379c]
mov ecx, dword [esp + 0x38]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x30
ret