Function at 0x100f77c0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x43c
mov eax, dword [ebp + 8]
mov ecx, dword [0x101ef014]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x430], 0
mov edi, dword [eax + 0x9c]
test edi, edi
je 0x100f794a
mov eax, dword [edi + 0x18]
test eax, eax
je 0x100f794a
mov ecx, dword [eax]
test ecx, ecx
je 0x100f794a
cmp dword [eax + 4], 0
je 0x100f794a
movzx eax, word [edi + 8]
xor edx, edx
mov esi, 0
test al, 2
jne 0x100f7852
test al, al
js 0x100f784f
mov esi, 2
bt eax, 8
jb 0x100f7852
mov esi, 3
test al, 0x10
jne 0x100f7852
mov esi, 4
test al, 0x20
jne 0x100f7852
mov esi, 5
test al, 0x40
jne 0x100f7852
jmp 0x100f794a
xor esi, esi
inc esi
mov eax, dword [ebp + 0x10]
cmp eax, 0x330
jle 0x100f788e
cmp eax, 0x650
jg 0x100f78c0
cmp eax, 0x3ff
jg 0x100f7906
cmp eax, 0x331
je 0x100f7972
cmp eax, 0x341
jne 0x100f794a
mov edx, 4
jmp 0x100f79a8
cmp eax, 0x140
jle 0x100f78e3
cmp eax, 0x310
jg 0x100f7922
cmp eax, 0x141
je 0x100f7979
cmp eax, 0x301
jne 0x100f794a
mov edx, 6
jmp 0x100f79a8
cmp eax, 0x1007
jg 0x100f7935
cmp eax, 0x651
je 0x100f7980
cmp eax, 0x1002
jne 0x100f794a
mov edx, 0xb
jmp 0x100f79a8
cmp eax, 0x101
je 0x100f7987
cmp eax, 0x121
je 0x100f798e
cmp eax, 0x132
je 0x100f79a8
jmp 0x100f794a
cmp eax, 0x400
je 0x100f7995
cmp eax, 0x551
jne 0x100f794a
mov edx, 0xd
jmp 0x100f79a8
cmp eax, 0x311
je 0x100f799c
cmp eax, 0x321
jne 0x100f794a
xor edx, edx
inc edx
jmp 0x100f79a8
cmp eax, 0x1008
je 0x100f79a3
cmp eax, 0x1081
jne 0x100f794a
mov edx, 0xc
jmp 0x100f79a8
push 0
push 0xffffe001
call sym.nss3.dll_PR_SetError
add esp, 8
xor ebx, ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov eax, ebx
add esp, 0x43c
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, 7
jmp 0x100f79a8
mov edx, 9
jmp 0x100f79a8
mov edx, 0xe
jmp 0x100f79a8
mov edx, 8
jmp 0x100f79a8
mov edx, 2
jmp 0x100f79a8
mov edx, 3
jmp 0x100f79a8
mov edx, 5
jmp 0x100f79a8
mov edx, 0xa
mov dword [ebp - 0x438], ecx
mov eax, dword [esi*4 + 0x101c3dac]
mov dword [ebp - 0x434], eax
mov dword [ebp - 0x440], edx
lea eax, [edx + edx*2]
lea eax, [eax*8 + 0x101f3a20]
mov dword [ebp - 0x43c], eax
push 1
call fcn.1010bcd0
add esp, 4
mov dword [ebp - 0x444], esi
mov esi, dword [0x101f3a1c]
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
je 0x100f7dc2
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [esi + 8], ebx
mov eax, dword [ebp - 0x43c]
mov esi, dword [ebp - 0x444]
mov ebx, dword [eax + esi*4]
test ebx, ebx
je 0x100f7a49
push ebx
call fcn.100c58b0
add esp, 4
test eax, eax
je 0x100f7a33
lock inc dword [ebx + 0x2c]
jmp 0x100f7d2e
push ebx
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
mov eax, dword [ebp - 0x43c]
mov dword [eax + esi*4], 0
lea eax, [ebp - 0x420]
mov ecx, dword [ebp - 0x440]
mov edx, esi
push 0
push eax
call fcn.10110f90
add esp, 8
test eax, eax
je 0x100f7b42
mov esi, dword [ebp + 0xc]
xor ebx, ebx
test esi, esi
je 0x100f7d2e
mov eax, dword [ebp + 0x10]
push eax
push esi
call fcn.100ce180
add esp, 8
push dword [ebp + 0x14]
push eax
push 0
push dword [ebp + 0x10]
push esi
call sym.nss3.dll_PK11_KeyGen
add esp, 0x14
test eax, eax
je 0x100f7d2e
mov ebx, eax
xor esi, esi
push 0x410
push esi
lea eax, [ebp - 0x420]
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [edi + 0x18]
mov edi, dword [eax + 4]
mov dword [ebp - 0x42c], esi
push edi
call fcn.1008d800
add esp, 4
add eax, 7
mov ecx, eax
shr ecx, 3
mov dword [ebp - 0x424], ecx
lea ecx, [ebp - 0x420]
mov dword [ebp - 0x428], ecx
cmp eax, 0x2007
ja 0x100f7d2e
mov ecx, dword [ebp - 0x434]
cmp ecx, 8
ja 0x100f7d21
mov eax, 0x70
bt eax, ecx
jb 0x100f7b76
mov eax, 0x182
bt eax, ecx
jae 0x100f7d21
xor eax, eax
cmp dword [edi + 4], 1
sete al
add eax, eax
dec eax
lea ecx, [ebp - 0x42c]
xor esi, esi
inc esi
push ecx
push ebx
push 0
push eax
push edi
call fcn.100c68f0
add esp, 0x14
mov edi, eax
jmp 0x100f7d1d
lea ecx, [ebp - 0x420]
mov edx, dword [ebp - 0x438]
push dword [ebp + 0x10]
push esi
call fcn.100f7de0
add esp, 8
mov ebx, eax
test eax, eax
je 0x100f7a6a
lock inc dword [ebx + 0x2c]
mov eax, dword [ebp - 0x43c]
mov dword [eax + esi*4], ebx
jmp 0x100f7d2e
cmp dword [edi + 4], 6
jne 0x100f7bda
lea eax, [edi + 0x10]
lea esi, [ebp - 0x430]
push 0
push esi
push eax
call fcn.1008ccb0
add esp, 0xc
mov ecx, dword [esi]
test eax, eax
je 0x100f7bee
test ecx, ecx
je 0x100f7bee
mov dword [ebp - 0x434], eax
cmp dword [ecx + 0x1c], 0
jne 0x100f7bb9
push edi
call fcn.1008d800
add esp, 4
mov ecx, dword [ebp - 0x430]
mov dword [ecx + 0x1c], eax
mov eax, dword [ecx + 0x28]
add eax, dword [ecx + 0x18]
cmp eax, 0x1f8
jb 0x100f7c00
push 0
push 0xffffe028
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x100f7ce6
push 0
push 0xffffe001
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x100f7d21
xor edi, edi
dec edi
xor esi, esi
test eax, eax
jne 0x100f7cf1
jmp 0x100f7d00
sub esp, 0x30
movaps xmm0, xmmword [0x101c3540]
movups xmmword [esp + 0x1c], xmm0
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x18], eax
movaps xmm0, xmmword [0x101bb720]
movups xmmword [esp + 8], xmm0
mov dword [esp + 4], ecx
mov eax, dword [ebp - 0x438]
mov dword [esp], eax
mov dword [esp + 0x2c], 0
call sym.nss3.dll_PK11_PubDeriveWithKDF
add esp, 0x30
test eax, eax
je 0x100f7ce6
mov edi, dword [ebp - 0x430]
movzx ecx, word [edi + 0x1c]
lea edx, [ebp - 0x418]
mov word [edx - 8], cx
mov dword [ebp - 0x448], eax
mov esi, dword [edi + 0x18]
mov word [edx - 6], si
push esi
push dword [edi + 0x14]
push edx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [edi + 0x28]
lea ecx, [ebp - 0x418]
mov word [ecx - 4], ax
movzx ecx, si
mov esi, dword [ebp - 0x448]
lea ecx, [ebp + ecx - 0x418]
push eax
push dword [edi + 0x24]
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea ecx, [ebp - 0x418]
movzx eax, word [ecx - 6]
movzx ecx, word [ecx - 4]
add ecx, eax
mov eax, 0x1f8
sub eax, ecx
lea edx, [ebp - 0x42c]
mov dword [edx + 8], eax
lea eax, [ecx + ebp]
add eax, 0xfffffbe8
mov dword [edx + 4], eax
push edx
push ebx
push esi
push 0
push dword [ebp + 0x10]
call sym.nss3.dll_PK11_WrapSymKey
add esp, 0x14
test eax, eax
je 0x100f7dad
mov edi, eax
jmp 0x100f7ceb
xor edi, edi
dec edi
xor esi, esi
mov eax, dword [ebp - 0x434]
push eax
call sym.nss3.dll_SECKEY_DestroyPrivateKey
add esp, 4
mov ecx, dword [ebp - 0x430]
test ecx, ecx
je 0x100f7d0d
push ecx
call sym.nss3.dll_SECKEY_DestroyPublicKey
add esp, 4
test esi, esi
je 0x100f7d1a
push esi
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
mov esi, dword [ebp + 0x10]
test edi, edi
je 0x100f7d41
push 0xffffd045
call fcn.1010aec0
add esp, 4
push dword [0x101f3a1c]
call sym.nss3.dll_PR_Unlock
add esp, 4
jmp 0x100f795b
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x440]
mov word [ebp - 0x18], ax
mov esi, dword [ebp - 0x444]
mov word [ebp - 0x16], si
movzx eax, word [ebp - 0x424]
mov word [ebp - 0x14], ax
lea eax, [ebp - 0x420]
push eax
call fcn.101110a0
add esp, 4
test eax, eax
jne 0x100f7b64
push ebx
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
lea ecx, [ebp - 0x420]
mov edx, dword [ebp - 0x438]
push edi
push esi
call fcn.100f7de0
add esp, 8
mov ebx, eax
test eax, eax
jne 0x100f7b64
xor ebx, ebx
jmp 0x100f7d2e
movzx eax, word [ebp - 0x424]
mov word [ebp - 0x41a], ax
xor edi, edi
jmp 0x100f7ceb
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
mov ebx, eax
jmp 0x100f79fd