Function at 0x100af330
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov edi, edx
mov esi, ecx
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov dword [ecx + 0x38], 0
mov eax, dword [ecx]
mov ebx, 0x91
lea ecx, [eax + 0x7dfffefc]
cmp ecx, 6
jbe switch.0x100af394
lea ecx, [eax - 0x104]
cmp ecx, 6
ja case.default.0x100af36e
mov dword [ebp - 0x18], edi
jmp dword [ecx*4 + 0x101a7dc0]
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af595
cmp dword [eax + 0x30], 0
je 0x100af595
mov edi, dword [esi + 0x14]
jmp 0x100af598
jmp dword [ecx*4 + 0x101a7da4]
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [ecx + 0x122]
mov cl, byte [edx + 0x6c]
xorps xmm0, xmm0
movups xmmword [esi + 0x40], xmm0
movups xmmword [esi + 0x4c], xmm0
mov edx, dword [edi]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], 0
cmp cl, 3
jb 0x100af823
mov ecx, dword [edi]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 2
jmp 0x100af44e
cmp eax, 0x81000000
jne case.0x100af394.2113928954
mov dword [ebp - 0x18], edi
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af6eb
cmp dword [eax + 0x30], 0
je 0x100af6eb
mov edi, dword [esi + 0x14]
jmp 0x100af6ee
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [ecx + 0x136]
mov cl, byte [edx + 0x6c]
xorps xmm0, xmm0
movups xmmword [esi + 0x40], xmm0
movups xmmword [esi + 0x4c], xmm0
mov edx, dword [edi]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], 0
cmp cl, 3
jb 0x100af823
mov ecx, dword [edi]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 4
call fcn.100d52b0
test eax, eax
je 0x100af823
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], edi
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af73e
cmp dword [eax + 0x30], 0
je 0x100af73e
mov edi, dword [esi + 0x14]
jmp 0x100af741
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [ecx + 0x14a]
mov cl, byte [edx + 0x6c]
xorps xmm0, xmm0
movups xmmword [esi + 0x40], xmm0
movups xmmword [esi + 0x4c], xmm0
mov edx, dword [edi]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], 0
cmp cl, 3
jb 0x100af84a
mov ecx, dword [edi]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 8
jmp 0x100af506
mov eax, dword [esi + 0xc]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov ebx, dword [ecx + 0x15e]
mov cl, byte [edx + 0x6c]
xorps xmm0, xmm0
movups xmmword [esi + 0x40], xmm0
movups xmmword [esi + 0x4c], xmm0
mov edx, dword [edi]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], 0
cmp cl, 3
jb 0x100af84a
mov ecx, dword [edi]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 0x10
call fcn.100d52b0
test eax, eax
je 0x100af84a
mov dword [ebp - 0x1c], ebx
mov dword [ebp - 0x18], edi
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af7a3
cmp dword [eax + 0x30], 0
je 0x100af7a3
mov edi, dword [esi + 0x14]
jmp 0x100af7a6
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af5d5
cmp dword [eax + 0x30], 0
je 0x100af5d5
mov edi, dword [esi + 0x14]
jmp 0x100af5d8
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af665
cmp dword [eax + 0x30], 0
je 0x100af665
mov edi, dword [esi + 0x14]
jmp 0x100af668
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af6a8
cmp dword [eax + 0x30], 0
je 0x100af6a8
mov edi, dword [esi + 0x14]
jmp 0x100af6ab
mov edi, dword [eax + 0x3c]
mov eax, dword [0x101de1f0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100af9fa
mov ebx, eax
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], ebx
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x76]
jmp 0x100af8a0
mov edi, dword [eax + 0x3c]
mov eax, dword [0x101de1f0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100afa0f
mov ebx, eax
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], ebx
cmp dword [esi + 0x34], 0
je 0x100af892
mov dword [ebp - 0x14], 0
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x76]
mov ebx, dword [esi + 0x10]
call dword [section..00cfg]
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x18]
mov dword [esp + 4], eax
mov dword [esp], ebx
call ecx
test eax, eax
je 0x100af86a
mov ebx, eax
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af85b
cmp dword [eax + 0x30], 0
je 0x100af85b
add esi, 0x14
mov eax, esi
jmp 0x100af85e
mov edi, dword [eax + 0x3c]
mov eax, dword [0x101de1f0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100afa24
mov ebx, eax
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], ebx
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0xaa]
jmp 0x100af8a0
mov edi, dword [eax + 0x3c]
mov eax, dword [0x101de1f0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100afa39
mov ebx, eax
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], ebx
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc2]
jmp 0x100af8a0
mov edi, dword [eax + 0x3c]
mov eax, dword [0x101de1f0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100afa4e
mov ebx, eax
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], ebx
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 0x96]
call dword [section..00cfg]
mov eax, dword [ebp - 0x18]
mov dword [esp + 4], eax
mov dword [esp], edi
jmp 0x100af8b7
mov edi, dword [eax + 0x3c]
mov eax, dword [0x101de1f0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100afa63
mov ebx, eax
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], ebx
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x10]
mov ecx, dword [ebp - 0x1c]
call dword [section..00cfg]
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x18]
mov dword [esp + 4], eax
mov dword [esp], ebx
call ecx
mov ebx, eax
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af808
cmp dword [eax + 0x30], 0
je 0x100af808
lea eax, [esi + 0x14]
jmp 0x100af80b
mov edi, dword [eax + 0x3c]
mov eax, dword [0x101de1f0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100afa78
mov ebx, eax
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], ebx
mov edi, dword [esi + 8]
mov ebx, dword [esi + 0x10]
mov ecx, dword [ebp - 0x1c]
call dword [section..00cfg]
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x18]
mov dword [esp + 4], eax
mov dword [esp], ebx
call ecx
mov ebx, eax
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af82f
cmp dword [eax + 0x30], 0
je 0x100af82f
lea eax, [esi + 0x14]
jmp 0x100af832
add eax, 0x3c
mov eax, dword [eax]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
cmp ebx, 0x54
je 0x100af823
cmp ebx, 0x70
jne 0x100af8da
mov dword [esi + 0x38], 1
jmp 0x100af904
add eax, 0x3c
mov eax, dword [eax]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
cmp ebx, 0x70
je 0x100af84a
cmp ebx, 0x54
jne 0x100af8da
mov dword [esi + 0x38], 1
mov ebx, 0x54
jmp case.0x100af394.2113928954
add eax, 0x3c
mov eax, dword [eax]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
jmp case.0x100af394.2113928954
mov eax, dword [esi + 0xc]
mov edi, dword [esi + 0x10]
mov eax, dword [eax]
mov ecx, dword [eax + 0x82]
call dword [section..00cfg]
lea eax, [ebp - 0x14]
mov dword [esp + 8], eax
mov dword [esp], edi
mov dword [esp + 4], 0
call ecx
mov edi, dword [esi + 8]
mov eax, dword [esi + 0xc]
mov eax, dword [eax]
mov ecx, dword [eax + 0x86]
mov ebx, dword [esi + 0x10]
call dword [section..00cfg]
mov dword [esp + 8], edi
mov eax, dword [ebp - 0x18]
mov dword [esp + 4], eax
mov dword [esp], ebx
call ecx
mov ebx, eax
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af8cf
cmp dword [eax + 0x30], 0
je 0x100af8cf
mov eax, dword [esi + 0x14]
jmp 0x100af8d2
mov eax, dword [eax + 0x3c]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
test ebx, ebx
je 0x100af8fe
mov dword [esp], ebx
call fcn.100b1140
mov dword [esp], eax
mov dword [esp + 4], 0
call sym.nss3.dll_PR_SetError
xor edi, edi
dec edi
jmp 0x100af9cf
cmp dword [esi + 0x38], 0
je 0x100af91a
mov eax, dword [esi + 0xc]
mov ecx, dword [esi + 0x3c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.nss3.dll_PK11_DoesMechanism
test eax, eax
je 0x100af98c
xor edi, edi
cmp dword [esi + 0x18], 0
jne 0x100af9cf
mov eax, dword [esi + 0xc]
mov ebx, dword [eax + 0x3c]
mov eax, dword [0x101de1f0]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
je 0x100af9e3
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], edi
lea eax, [esi + 0x24]
mov edx, dword [esi + 0x20]
mov dword [esp], eax
mov ecx, esi
call fcn.100ae860
mov dword [esi + 0x20], eax
cmp eax, 1
sbb edi, edi
mov ecx, esi
call fcn.100af050
cmp dword [esi + 0x18], 0
mov eax, dword [esi + 0xc]
je 0x100af9c4
cmp dword [eax + 0x30], 0
je 0x100af9c4
mov eax, dword [esi + 0x14]
jmp 0x100af9c7
cmp dword [esi + 0x3c], 0x4021
jne 0x100af9b8
mov eax, dword [esi + 0xc]
mov dword [esp], eax
mov dword [esp + 4], 0xce53436c
call sym.nss3.dll_PK11_DoesMechanism
test eax, eax
je 0x100af9b8
mov dword [esi + 0x3c], 0xce53436c
jmp 0x100af91a
mov dword [esp], 0x70
jmp 0x100af8e1
mov eax, dword [eax + 0x3c]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1014dc80
mov eax, edi
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
mov edi, eax
jmp 0x100af947
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
jmp 0x100af5b1
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
jmp 0x100af5f1
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
jmp 0x100af681
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
jmp 0x100af6c4
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
jmp 0x100af707
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
jmp 0x100af75a
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
jmp 0x100af7bf