Function at 0x100cf170
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x124
mov edi, dword [ebp + 0x24]
mov ecx, dword [ebp + 8]
mov eax, dword [0x101db014]
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 edi, 0x11
jb 0x100cf1c5
push 0
push 0xffffe005
jmp 0x100cf55f
mov dword [ebp - 0x124], eax
mov eax, dword [ebp + 0x18]
lea esi, [ebp - 0x100]
mov ecx, eax
and ecx, 0xff000000
mov ebx, eax
and ebx, 0xffffff
cmp ecx, 0x82000000
cmovne ebx, eax
test edi, edi
je 0x100cf215
mov eax, dword [ebp + 0x20]
lea edx, [ebp - 0x100]
mov ecx, edi
mov esi, dword [eax + 8]
mov dword [edx + 8], esi
lea esi, [edx + 0xc]
movsd xmm0, qword [eax]
add eax, 0xc
movsd qword [edx], xmm0
mov edx, esi
dec ecx
jne 0x100cf1fc
push 0
push edi
lea eax, [ebp - 0x100]
push eax
call fcn.100c42e0
add esp, 0xc
test eax, eax
jne 0x100cf244
mov dword [esi], 0
lea eax, [ebp - 0x108]
mov dword [esi + 4], eax
mov dword [esi + 8], 4
add esi, 0xc
lea eax, [ebp - 0x100]
push 0x100
push edi
push eax
call fcn.100c42e0
add esp, 0xc
test eax, eax
jne 0x100cf286
push dword [ebp + 0x1c]
push dword [ebp + 0x14]
call fcn.100bed00
add esp, 8
lea ecx, [ebp - 0x10c]
mov dword [ecx], eax
mov dword [esi], 0x100
mov dword [esi + 4], ecx
mov dword [esi + 8], 4
add esi, 0xc
cmp dword [ebp + 0x1c], 0
jle 0x100cf2c3
push 0x161
push edi
lea eax, [ebp - 0x100]
push eax
call fcn.100c42e0
add esp, 0xc
test eax, eax
jne 0x100cf2c3
lea eax, [ebp - 0x110]
mov ecx, dword [ebp + 0x1c]
mov dword [eax], ecx
mov dword [esi], 0x161
mov dword [esi + 4], eax
mov dword [esi + 8], 4
add esi, 0xc
mov eax, dword [ebp + 0xc]
test ebx, ebx
je 0x100cf2f7
push ebx
push edi
lea eax, [ebp - 0x100]
push eax
call fcn.100c42e0
add esp, 0xc
test eax, eax
jne 0x100cf2f4
mov dword [esi], ebx
lea eax, [ebp - 0x101]
mov dword [esi + 4], eax
mov dword [esi + 8], 1
add esi, 0xc
mov eax, dword [ebp + 0xc]
push eax
mov ebx, dword [ebp - 0x124]
push ebx
call sym.nss3.dll_PK11_DoesMechanism
add esp, 8
test eax, eax
mov edi, dword [ebp + 8]
je 0x100cf36d
mov dword [ebp - 0x12c], 0
xor eax, eax
cmp dword [ebp + 0x28], 0
sete al
mov dword [ebp - 0x124], ebx
mov ecx, ebx
mov edx, dword [ebp + 0x14]
push dword [edi + 0xc]
push 1
push eax
call fcn.100cd640
add esp, 0xc
mov ebx, 0
test eax, eax
je 0x100cf569
mov edx, eax
mov dword [ebp - 0x128], edi
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 0x100cf3de
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
jmp 0x100cf3e2
mov eax, dword [edi + 0xc]
lea ecx, [ebp - 0x11c]
mov edx, dword [ebp + 0xc]
mov dword [ecx], edx
xor ebx, ebx
push eax
push 1
push ebx
push ebx
push ecx
call fcn.100d5860
add esp, 0x14
test eax, eax
je 0x100cf569
mov edi, eax
xor ebx, ebx
push dword [ebp + 8]
push ebx
push ebx
push 0x10c
push dword [ebp + 0xc]
push eax
call fcn.100cdfd0
add esp, 0x18
mov dword [ebp - 0x128], eax
lock dec dword [edi + 0x48]
jne 0x100cf3c2
push edi
call fcn.100d1c70
add esp, 4
mov edi, dword [ebp - 0x128]
test edi, edi
je 0x100cf569
mov ebx, dword [edi + 8]
mov dword [ebp - 0x12c], edi
jmp 0x100cf318
xor eax, eax
xor ecx, ecx
mov edi, 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 0x100cf421
push edi
call fcn.100d2250
mov edx, dword [ebp - 0x120]
add esp, 4
mov ebx, eax
test eax, eax
jne 0x100cf46d
jmp 0x100cf528
cmp dword [edx + 0x28], 0
mov eax, dword [edx + 8]
je 0x100cf430
cmp dword [eax + 0x30], 0
jne 0x100cf45c
mov edi, dword [eax + 0x3c]
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
je 0x100cf584
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], ebx
mov edx, dword [ebp - 0x120]
mov ebx, dword [edx + 0x24]
test ebx, ebx
mov edi, dword [ebp - 0x124]
je 0x100cf503
lea eax, [ebp - 0x100]
sub esi, eax
sar esi, 2
imul eax, esi, 0xaaaaaaab
mov dword [ebp - 0x130], eax
mov eax, dword [edi]
mov ecx, dword [eax + 0xfa]
mov edi, edx
add edi, 4
mov eax, dword [ebp - 0x128]
mov esi, dword [eax + 4]
call dword [section..00cfg]
lea eax, [ebp - 0x11c]
push edi
push dword [ebp - 0x130]
lea edx, [ebp - 0x100]
push edx
push esi
push eax
push ebx
call ecx
add esp, 0x18
mov esi, eax
cmp dword [ebp + 0x28], 0
je 0x100cf4db
push ebx
push dword [ebp - 0x124]
call fcn.100d2380
add esp, 8
mov edx, dword [ebp - 0x120]
jmp 0x100cf52d
mov edx, dword [ebp - 0x120]
cmp dword [edx + 0x28], 0
mov eax, dword [edx + 8]
je 0x100cf4f0
cmp dword [eax + 0x30], 0
jne 0x100cf52d
push dword [eax + 0x3c]
call sym.nss3.dll_PR_Unlock
mov edx, dword [ebp - 0x120]
add esp, 4
jmp 0x100cf52d
cmp dword [edx + 0x28], 0
mov eax, dword [edx + 8]
je 0x100cf517
mov esi, 0xb3
cmp dword [eax + 0x30], 0
jne 0x100cf52d
push dword [eax + 0x3c]
call sym.nss3.dll_PR_Unlock
mov edx, dword [ebp - 0x120]
add esp, 4
mov esi, 0xb3
mov eax, dword [ebp - 0x12c]
test eax, eax
je 0x100cf546
push eax
call sym.nss3.dll_PK11_FreeSymKey
mov edx, dword [ebp - 0x120]
add esp, 4
test esi, esi
je 0x100cf580
push edx
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
push esi
call fcn.100b1140
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.1014dc80
mov eax, ebx
add esp, 0x124
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, edx
jmp 0x100cf569
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
mov ebx, eax
jmp 0x100cf449