Function at 0x100c8740
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x124
mov edx, dword [ebp + 0x24]
mov ecx, dword [ebp + 8]
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 8]
mov byte [ebp - 0x101], 1
mov dword [ebp - 0x108], 4
mov dword [ebp - 0x10c], 0x10
mov dword [ebp - 0x110], 0
cmp edx, 0x11
jb 0x100c8795
push 0
push 0xffffe005
jmp 0x100c8b66
mov dword [ebp - 0x124], eax
mov eax, dword [ebp + 0x18]
mov ecx, eax
and ecx, 0xff000000
mov ebx, eax
and ebx, 0xffffff
cmp ecx, 0x82000000
cmovne ebx, eax
lea esi, [ebp - 0x100]
mov edi, esi
test edx, edx
je 0x100c87eb
lea eax, [edx*4]
lea edi, [eax + eax*2]
lea eax, [ebp - 0x100]
push edi
push dword [ebp + 0x20]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov edx, dword [ebp + 0x24]
add esp, 0xc
add edi, ebp
add edi, 0xffffff00
push 0
push edx
push esi
call fcn.100be040
add esp, 0xc
test eax, eax
jne 0x100c8814
mov dword [edi], 0
lea eax, [ebp - 0x108]
mov dword [edi + 4], eax
mov dword [edi + 8], 4
add edi, 0xc
mov eax, dword [ebp + 8]
mov dword [ebp - 0x128], eax
mov esi, dword [ebp + 0x1c]
lea eax, [ebp - 0x100]
push 0x100
push dword [ebp + 0x24]
push eax
call fcn.100be040
add esp, 0xc
test eax, eax
jne 0x100c8862
push esi
push dword [ebp + 0x14]
call fcn.100b8950
add esp, 8
lea ecx, [ebp - 0x10c]
mov dword [ecx], eax
mov dword [edi], 0x100
mov dword [edi + 4], ecx
mov dword [edi + 8], 4
add edi, 0xc
test esi, esi
mov eax, dword [ebp + 0x24]
jle 0x100c88a8
push 0x161
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.100be040
add esp, 0xc
test eax, eax
mov esi, dword [ebp + 0x14]
jne 0x100c88a3
lea eax, [ebp - 0x110]
mov ecx, dword [ebp + 0x1c]
mov dword [eax], ecx
mov dword [edi], 0x161
mov dword [edi + 4], eax
mov dword [edi + 8], 4
add edi, 0xc
mov eax, dword [ebp + 0x24]
jmp 0x100c88ab
mov esi, dword [ebp + 0x14]
mov ecx, dword [ebp + 0xc]
test ebx, ebx
je 0x100c88e7
push ebx
push eax
lea eax, [ebp - 0x100]
push eax
call fcn.100be040
add esp, 0xc
test eax, eax
jne 0x100c88dc
mov dword [edi], ebx
lea eax, [ebp - 0x101]
mov dword [edi + 4], eax
mov dword [edi + 8], 1
add edi, 0xc
mov dword [ebp - 0x120], edi
mov ecx, dword [ebp + 0xc]
jmp 0x100c88ed
mov dword [ebp - 0x120], edi
push ecx
mov ebx, dword [ebp - 0x124]
push ebx
mov edi, ecx
call sym.nss3.dll_PK11_DoesMechanism
add esp, 8
test eax, eax
je 0x100c896b
mov dword [ebp - 0x12c], 0
mov edi, dword [ebp - 0x120]
xor eax, eax
cmp dword [ebp + 0x28], 0
sete al
mov dword [ebp - 0x124], ebx
mov ecx, ebx
mov edx, esi
mov esi, dword [ebp - 0x128]
push dword [esi + 0xc]
push 1
push eax
call fcn.100c6b90
add esp, 0xc
mov ebx, 0
test eax, eax
je 0x100c8b70
mov edx, eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0x1c]
mov dword [edx + 0x30], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x11c], eax
test ecx, ecx
je 0x100c89e5
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x100c89e9
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0xc]
lea ecx, [ebp - 0x11c]
mov dword [ecx], edi
xor ebx, ebx
push eax
push 1
push ebx
push ebx
push ecx
call fcn.100cf1d0
add esp, 0x14
test eax, eax
mov edi, dword [ebp - 0x120]
je 0x100c8b70
mov ecx, esi
mov esi, eax
xor ebx, ebx
push ecx
push ebx
push ebx
push 0x10c
push dword [ebp + 0xc]
push eax
call fcn.100c75b0
add esp, 0x18
mov dword [ebp - 0x128], eax
lock dec dword [esi + 0x48]
jne 0x100c89c6
push esi
call fcn.100cb320
add esp, 4
mov esi, dword [ebp - 0x128]
test esi, esi
je 0x100c8b70
mov ebx, dword [esi + 8]
mov dword [ebp - 0x12c], esi
mov esi, dword [ebp + 0x14]
jmp 0x100c8913
xor eax, eax
xor ecx, ecx
mov esi, dword [ebp - 0x124]
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x114], ecx
mov dword [edx + 0x34], 1
cmp dword [ebp + 0x28], 0
mov dword [ebp - 0x120], edx
je 0x100c8a28
push esi
call fcn.100cb930
mov edx, dword [ebp - 0x120]
add esp, 4
mov ebx, eax
test eax, eax
jne 0x100c8a74
jmp 0x100c8b2f
cmp dword [edx + 0x28], 0
mov eax, dword [edx + 8]
je 0x100c8a37
cmp dword [eax + 0x30], 0
jne 0x100c8a63
mov esi, dword [eax + 0x3c]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
je 0x100c8b8b
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [esi + 8], ebx
mov edx, dword [ebp - 0x120]
mov ebx, dword [edx + 0x24]
test ebx, ebx
mov esi, dword [ebp - 0x124]
je 0x100c8b0a
lea eax, [ebp - 0x100]
sub edi, eax
sar edi, 2
imul eax, edi, 0xaaaaaaab
mov dword [ebp - 0x130], eax
mov eax, dword [esi]
mov ecx, dword [eax + 0xfa]
mov esi, edx
add esi, 4
mov eax, dword [ebp - 0x128]
mov edi, dword [eax + 4]
call dword [section..00cfg]
lea eax, [ebp - 0x11c]
push esi
push dword [ebp - 0x130]
lea edx, [ebp - 0x100]
push edx
push edi
push eax
push ebx
call ecx
add esp, 0x18
mov edi, eax
cmp dword [ebp + 0x28], 0
je 0x100c8ae2
push ebx
push dword [ebp - 0x124]
call fcn.100cba60
add esp, 8
mov edx, dword [ebp - 0x120]
jmp 0x100c8b34
mov edx, dword [ebp - 0x120]
cmp dword [edx + 0x28], 0
mov eax, dword [edx + 8]
je 0x100c8af7
cmp dword [eax + 0x30], 0
jne 0x100c8b34
push dword [eax + 0x3c]
call sym.nss3.dll_PR_Unlock
mov edx, dword [ebp - 0x120]
add esp, 4
jmp 0x100c8b34
cmp dword [edx + 0x28], 0
mov eax, dword [edx + 8]
je 0x100c8b1e
mov edi, 0xb3
cmp dword [eax + 0x30], 0
jne 0x100c8b34
push dword [eax + 0x3c]
call sym.nss3.dll_PR_Unlock
mov edx, dword [ebp - 0x120]
add esp, 4
mov edi, 0xb3
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x100c8b4d
push eax
call sym.nss3.dll_PK11_FreeSymKey
mov edx, dword [ebp - 0x120]
add esp, 4
test edi, edi
je 0x100c8b87
push edx
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
push edi
call fcn.100aaef0
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, ebx
add esp, 0x124
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, edx
jmp 0x100c8b70
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov ebx, eax
jmp 0x100c8a50