Function at 0x100c5870
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x3c
mov edi, ecx
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x101db014]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov ebx, dword [edi + 8]
mov dword [ebp - 0x24], eax
cmp dword [edi + 4], 1
jne 0x100c5938
mov dword [ebp - 0x38], edx
mov eax, dword [edi + 0x18]
test al, 1
mov dword [ebp - 0x28], edi
jne 0x100c5944
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x2c], eax
lea eax, [ebp - 0x11]
mov byte [eax], 0
mov dword [ebp - 0x20], 2
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 1
mov edi, dword [ebx + 0x3c]
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x100c5c9c
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov eax, dword [ebx]
mov esi, dword [ebx + 0x38]
mov ecx, dword [eax + 0x62]
call dword [section..00cfg]
lea eax, [ebp - 0x20]
push 1
push eax
push dword [ebp - 0x2c]
push esi
call ecx
add esp, 0x10
mov esi, eax
push dword [ebx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
je 0x100c5b78
push esi
call fcn.100b1140
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
mov edi, dword [ebp - 0x28]
jmp 0x100c5954
push 0
push 0xffffe028
jmp 0x100c5c5c
test al, 2
je 0x100c5954
push dword [edi + 0x14]
push ebx
call fcn.100aaa20
add esp, 8
cmp dword [ebx + 0x30], 0
jne 0x100c5983
mov edi, dword [ebx + 0x3c]
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x100c5cb9
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov edi, dword [ebp - 0x28]
mov eax, dword [ebx]
mov esi, dword [ebx + 0x40]
mov ecx, dword [eax + 0x32]
call dword [section..00cfg]
lea eax, [ebp - 0x20]
push eax
push sym.nss3.dll_SECMOD_CanDeleteInternalModule
push ebx
push 4
push esi
call ecx
add esp, 0x14
mov esi, eax
test eax, eax
je 0x100c59af
mov eax, dword [ebx + 0x38]
mov dword [ebp - 0x20], eax
cmp dword [ebx + 0x30], 0
jne 0x100c59c0
push dword [ebx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x30], esi
test esi, esi
je 0x100c5a0a
mov edi, dword [ebx + 0x3c]
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x100c5c7f
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov al, 1
mov dword [ebp - 0x3c], eax
xor eax, eax
inc eax
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x34], 0
mov edi, dword [ebp - 0x28]
jmp 0x100c5a23
cmp dword [ebx + 0x30], 0
je 0x100c59cd
mov dword [ebp - 0x44], 0
mov al, 1
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x3c], 0
mov eax, dword [ebx]
mov ecx, dword [eax + 0x86]
mov esi, dword [edi + 0xc]
call dword [section..00cfg]
push esi
push dword [ebp + 0x18]
push dword [ebp - 0x2c]
call ecx
add esp, 0xc
test eax, eax
je 0x100c5ac8
mov esi, eax
cmp byte [ebp - 0x3c], 0
je 0x100c5a5b
push dword [ebx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
cmp dword [ebp - 0x30], 0
jne 0x100c5c50
cmp dword [ebx + 0x30], 0
jne 0x100c5a9b
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x30], eax
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x100c5cf3
mov edi, dword [ebp - 0x30]
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x28]
mov dword [edi + 8], eax
mov eax, dword [ebx]
mov ecx, dword [eax + 0x36]
call dword [section..00cfg]
push dword [ebp - 0x2c]
call ecx
add esp, 4
cmp dword [ebx + 0x30], 0
jne 0x100c5c50
push dword [ebx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
jmp 0x100c5c50
mov eax, dword [edi + 0x18]
test al, 1
jne 0x100c5b8a
mov ecx, dword [edi + 8]
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x11]
mov byte [eax], 0
mov dword [ebp - 0x20], 0x202
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 1
cmp byte [ebp - 0x34], 0
mov dword [ebp - 0x40], ecx
je 0x100c5b28
mov edi, dword [ecx + 0x3c]
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x100c5cd6
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov edi, dword [ebp - 0x28]
mov ecx, dword [ebp - 0x40]
mov eax, dword [ecx]
mov esi, dword [ecx + 0x38]
mov ecx, dword [eax + 0x62]
call dword [section..00cfg]
push 1
lea eax, [ebp - 0x20]
push eax
push dword [ebp - 0x48]
push esi
call ecx
add esp, 0x10
mov esi, eax
cmp byte [ebp - 0x34], 0
je 0x100c5b5b
mov eax, dword [ebp - 0x40]
push dword [eax + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
je 0x100c5b8e
push esi
call fcn.100b1140
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
mov esi, dword [ebp - 0x38]
jmp 0x100c5bad
cmp byte [ebp - 0x11], 0
mov edi, dword [ebp - 0x28]
jne 0x100c5948
jmp 0x100c5954
test al, 4
jmp 0x100c5b92
cmp byte [ebp - 0x11], 0
mov esi, dword [ebp - 0x38]
je 0x100c5bad
push 1
push dword [ebp - 0x44]
push dword [edi + 0x14]
push 0
push dword [ebp - 0x2c]
push ebx
call fcn.100aad20
add esp, 0x18
mov eax, dword [ebx]
mov ecx, dword [eax + 0x8a]
call dword [section..00cfg]
lea eax, [ebp - 0x24]
push eax
push esi
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp - 0x2c]
call ecx
add esp, 0x14
mov esi, eax
cmp byte [ebp - 0x3c], 0
je 0x100c5be1
push dword [ebx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov edi, dword [ebp + 8]
cmp dword [ebp - 0x30], 0
jne 0x100c5c47
cmp dword [ebx + 0x30], 0
jne 0x100c5c23
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x30], eax
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x100c5d11
mov edi, dword [ebp - 0x30]
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x28]
mov dword [edi + 8], eax
mov edi, dword [ebp + 8]
mov eax, dword [ebx]
mov ecx, dword [eax + 0x36]
call dword [section..00cfg]
push dword [ebp - 0x2c]
call ecx
add esp, 4
cmp dword [ebx + 0x30], 0
jne 0x100c5c47
push dword [ebx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, dword [ebp - 0x24]
mov dword [edi], eax
test esi, esi
je 0x100c5c7b
push esi
call fcn.100b1140
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
dec esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1014dc80
mov eax, esi
add esp, 0x3c
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
jmp 0x100c5c67
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
mov esi, eax
jmp 0x100c59e6
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
mov esi, eax
jmp 0x100c58e0
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
mov esi, eax
jmp 0x100c5973
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
mov esi, eax
jmp 0x100c5b15
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
mov dword [ebp - 0x28], eax
jmp 0x100c5a88
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
mov dword [ebp - 0x28], eax
jmp 0x100c5c0d