Function at 0x438890
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffffc
sub esp, 0x808
mov ebx, dword [0x4f62d0]
mov eax, dword [ebx]
xor eax, ebp
mov dword [esp + 0x804], eax
mov eax, dword [0x516024]
mov dword [esp], eax
cmp eax, 0xffffffff
jne 0x43895d
mov edi, esp
push edi
call fcn.00438c80
add esp, 4
test al, al
jne 0x4388f1
lea esi, [esp + 4]
mov ecx, esi
push str.PlatformThreadLocalStorage::AllocTLS_key_
push 0xd0
push str._var_tmp_build_firefox_71aaf16cd119_security_sandbox_chromium_base_threading_thread_local_storage.cc
call fcn.00413d10
mov ecx, esi
call fcn.00413f30
mov ecx, dword [esp]
cmp ecx, 0xffffffff
jne 0x43893a
push edi
call fcn.00438c80
add esp, 4
test al, al
je 0x43890c
cmp dword [esp], 0xffffffff
jne 0x43892d
lea esi, [esp + 4]
mov ecx, esi
push str.PlatformThreadLocalStorage::AllocTLS_key___key___PlatformThreadLocalStorage::TLS_KEY_OUT_OF_INDEXES
push 0xda
push str._var_tmp_build_firefox_71aaf16cd119_security_sandbox_chromium_base_threading_thread_local_storage.cc
call fcn.00413d10
mov ecx, esi
call fcn.00413f30
push 0xffffffffffffffff
call fcn.00438ca0
add esp, 4
mov ecx, dword [esp]
mov eax, 0xffffffff
lock cmpxchg dword [0x516024], ecx
mov eax, dword [esp]
je 0x43895d
push eax
call fcn.00438ca0
add esp, 4
mov eax, dword [0x516024]
mov dword [esp], eax
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
and edi, 3
je 0x438aa7
lea ecx, [esp + 0x3c]
lea esi, [esp + 8]
mov dword [esp + 4], 0x4f867c
mov dword [esp + 0x3c], 0x4f8690
push esi
call fcn.004729b0
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], 0xffffffff
mov dword [esp + 4], 0x4f8644
mov dword [esp + 0x3c], 0x4f8658
mov ecx, esi
call fcn.004733d0
mov dword [esp + 8], 0x4f86a0
xorps xmm0, xmm0
movups xmmword [esp + 0x28], xmm0
mov dword [esp + 0x38], 0x10
lea ebx, [esp + 4]
push 0x40
push str.GetTlsVectorStateAndValue_key___TlsVectorState::kUninitialized
push ebx
call fcn.00414a20
add esp, 0xc
push 2
push 0x4fa3f9
push eax
call fcn.00414a20
add esp, 0xc
mov ecx, ebx
push edi
call fcn.0047c860
push 5
push 0x4fa3fc
push ebx
call fcn.00414a20
add esp, 0xc
mov ecx, ebx
push 0
call fcn.0047c860
push 1
push 0x4fa402
push ebx
call fcn.00414a20
add esp, 0xc
push 0xc
call fcn.004c3980
add esp, 4
mov edi, eax
mov ecx, eax
push esi
call fcn.004146e0
mov dword [esp + 4], 0x4f8644
mov dword [esp + 0x3c], 0x4f8658
mov dword [esp + 8], 0x4f86a0
test byte [esp + 0x28], 1
je 0x438a66
push dword [esp + 0x30]
call fcn.004c3b20
add esp, 4
mov ecx, esi
call fcn.00473160
lea ecx, [esp + 4]
push 0x4f8664
call fcn.0047be80
lea ecx, [esp + 0x3c]
call fcn.00473040
lea esi, [esp + 4]
mov ecx, esi
push edi
push 0xec
push str._var_tmp_build_firefox_71aaf16cd119_security_sandbox_chromium_base_threading_thread_local_storage.cc
call fcn.00413db0
mov ecx, esi
call fcn.00413f30
mov ebx, dword [0x4f62d0]
lea edi, [esp + 4]
push 0x800
push 0
push edi
call sub.ntdll.dll_memset
add esp, 0xc
lea eax, [esp + 7]
push eax
push dword [esp + 4]
call fcn.00438cc0
add esp, 8
push 0x800
call fcn.004c3a70
add esp, 4
mov esi, eax
push 0x800
push edi
push eax
call sub.ntdll.dll_memcpy
add esp, 0xc
mov eax, esi
or eax, 3
push eax
push dword [esp + 4]
call fcn.00438cc0
add esp, 8
mov eax, dword [esp + 0x804]
xor eax, ebp
mov ecx, dword [ebx]
cmp ecx, eax
jne 0x438b15
mov eax, esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00468008
int3