Function at 0x10116110
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, dword [ebp + 0xc]
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
test esi, esi
je 0x1011627f
mov eax, dword [ebp + 8]
mov ecx, dword [0x101f5fc8]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.nss3.dll_PR_GetIdentitiesLayer
test eax, eax
je 0x101162b1
mov edi, dword [eax + 4]
mov dword [edi], eax
mov ebx, dword [esi]
mov esi, ebx
shr esi, 0x10
cmp bx, si
ja 0x10116312
mov ecx, dword [edi + 0xa24]
test ecx, ecx
je 0x101162e0
cmp ecx, 1
jne 0x10116312
mov eax, 0xfffffcfe
lea edx, [ebx + eax]
cmp dx, 2
ja 0x10116312
add eax, esi
cmp ax, 3
jae 0x10116312
lea edx, [ebp - 0x14]
call fcn.10115850
cmp eax, 0xffffffff
je 0x10116343
mov eax, dword [ebp - 0x14]
cmp bx, ax
cmovbe ebx, eax
movzx eax, word [ebp - 0x12]
cmp si, ax
cmovae esi, eax
cmp si, bx
jb 0x10116343
movzx eax, si
movzx ecx, bx
cmp ecx, 0x302
mov ecx, 0x301
cmovae ecx, ebx
cmp eax, 0x304
cmovb ecx, ebx
mov ebx, ecx
mov eax, dword [edi + 0x1c]
bt eax, 0xa
jb 0x101161fa
mov eax, dword [edi + 0x16c]
mov dword [esp], eax
call sym.nss3.dll_PR_EnterMonitor
mov eax, dword [edi + 0x1c]
bt eax, 0xa
jb 0x1011620e
mov eax, dword [edi + 0x170]
mov dword [esp], eax
call sym.nss3.dll_PR_EnterMonitor
movzx eax, word [edi + 0x714]
test ax, ax
je 0x1011635a
cmp word [edi + 0x26], ax
jbe 0x1011635a
cmp dword [0x101f4f80], 0
je 0x10116409
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x101163d6
mov dword [eax + 0x28], 0xffffd078
xor ecx, ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
mov eax, dword [edi + 0x1c]
bt eax, 0xa
jb 0x10116277
mov eax, dword [edi + 0x170]
mov dword [esp], eax
call sym.nss3.dll_PR_ExitMonitor
mov eax, dword [edi + 0x1c]
xor esi, esi
dec esi
jmp 0x10116381
cmp dword [0x101f4f80], 0
je 0x101163eb
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10116397
mov dword [eax + 0x28], 0xffffe005
jmp 0x1011633b
cmp dword [0x101f4f80], 0
je 0x101163ff
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x101163c1
mov dword [eax + 0x28], 0xffffe891
jmp 0x1011633b
mov eax, 0xfffffd00
lea edx, [ebx + eax]
cmp dx, 4
ja 0x10116312
add eax, esi
cmp ax, 4
ja 0x10116312
movzx eax, bx
cmp eax, 0x300
ja 0x10116195
movzx eax, si
cmp eax, 0x304
jb 0x10116195
cmp dword [0x101f4f80], 0
je 0x101163f5
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x101163ac
mov dword [eax + 0x28], 0xffffd078
xor ecx, ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
xor esi, esi
dec esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
shl esi, 0x10
movzx eax, bx
or eax, esi
mov dword [edi + 0x24], eax
mov eax, dword [edi + 0x1c]
bt eax, 0xa
jb 0x1011637f
mov eax, dword [edi + 0x170]
mov dword [esp], eax
call sym.nss3.dll_PR_ExitMonitor
mov eax, dword [edi + 0x1c]
xor esi, esi
bt eax, 0xa
jb 0x10116346
mov eax, dword [edi + 0x16c]
mov dword [esp], eax
call sym.nss3.dll_PR_ExitMonitor
jmp 0x10116346
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x101162a5
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x10116334
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x101162d7
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x1011624e
call fcn.1001b2e0
jmp 0x1011628c
call fcn.1001b2e0
jmp 0x1011631f
call fcn.1001b2e0
jmp 0x101162be
call fcn.1001b2e0
jmp 0x10116235