Function at 0x100ab4b0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov ecx, dword [ebp + 8]
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [ebp - 0x10], eax
test ecx, ecx
je 0x100ab5cb
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x100ab5cb
mov eax, dword [ecx + 0x13c]
test eax, eax
je 0x100ab5d4
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x100ab5d4
mov edi, dword [0x101decc8]
push edx
push ecx
push eax
call fcn.1009e9a0
add esp, 0xc
test eax, eax
je 0x100ab5e3
mov esi, eax
xor eax, eax
push 2
push eax
push edi
push esi
push eax
call fcn.100a2c70
add esp, 0x14
test eax, eax
je 0x100ab5f9
mov ebx, eax
mov dword [ebp - 0x30], edi
push eax
call fcn.1009fde0
add esp, 4
mov dword [ebp - 0x28], eax
test eax, eax
je 0x100ab604
mov edi, eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x100ab6ba
mov dword [ebp - 0x2c], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
mov ebx, dword [edi + 0x28]
mov edi, dword [edi + 0x2c]
mov eax, dword [ebp + 8]
add eax, 0xf9
mov dword [ebp - 0x34], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test esi, esi
je 0x100ab60f
lea ecx, [eax + esi]
add ecx, 2
push ecx
mov ebx, eax
call sym.nss3.dll_PORT_Alloc_Util
add esp, 4
test eax, eax
je 0x100ab6ba
mov edi, eax
push ebx
push dword [ebp - 0x34]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [edi + ebx]
mov dword [ebp - 0x34], eax
lea eax, [edi + ebx]
inc eax
mov byte [edi + ebx], 0x3a
push esi
push dword [ebp - 0x2c]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x34]
mov byte [esi + eax + 1], 0
jmp 0x100ab6bc
push 0
push 0xffffe005
jmp 0x100ab5db
push 0
push 0xffffe041
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.1014dc80
mov eax, esi
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
push esi
call fcn.1009ea70
jmp 0x100ab7e2
push ebx
call fcn.100a2e70
jmp 0x100ab7e2
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x100ab628
mov esi, dword [ecx + 8]
test esi, esi
je 0x100ab628
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x2c], ecx
jmp 0x100ab57b
test edi, edi
je 0x100ab6ab
mov esi, edi
mov dword [ebp - 0x38], eax
xor edx, edx
mov ecx, edi
add ecx, 0xfffffffc
lea eax, [ebp - 0x1b]
mov dword [eax - 5], 0x20444920
mov dword [eax - 9], 0x74726543
cmovs ecx, edx
cmp ecx, edi
jge 0x100ab68f
mov dword [ebp - 0x2c], edi
mov edi, 0x30
mov esi, ebx
mov bl, byte [ebx + ecx]
mov bh, bl
shr bh, 4
cmp bl, 0xa0
mov edx, 0x57
cmovb edx, edi
add dl, bh
mov byte [eax], dl
and bl, 0xf
cmp bl, 0xa
mov edx, 0x57
cmovb edx, edi
add dl, bl
mov ebx, esi
mov byte [eax + 1], dl
add eax, 2
inc ecx
cmp dword [ebp - 0x2c], ecx
jne 0x100ab658
lea ecx, [ebp - 0x24]
mov byte [eax], 0
mov dword [ebp - 0x2c], ecx
push ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov esi, eax
mov eax, dword [ebp - 0x38]
jmp 0x100ab57b
push 0
push 0xffffe001
call sym.nss3.dll_PR_SetError
add esp, 8
xor edi, edi
lea esi, [ebp - 0x28]
push 1
push esi
push dword [ebp - 0x30]
call fcn.100a5d20
add esp, 0xc
mov ebx, dword [esi]
mov ecx, ebx
xor edx, edx
call fcn.100a1930
test eax, eax
je 0x100ab7c2
mov esi, eax
test edi, edi
je 0x100ab736
mov eax, dword [esi + 0x154]
test eax, eax
je 0x100ab6f6
mov dword [esi + 0x158], eax
mov eax, dword [esi]
mov dword [ebp - 0x30], eax
push edi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
inc ebx
push ebx
push dword [ebp - 0x30]
call sym.nss3.dll_PORT_ArenaAlloc_Util
add esp, 8
test eax, eax
je 0x100ab726
push ebx
push edi
push eax
mov ebx, eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, ebx
add esp, 0xc
mov dword [esi + 0x154], eax
push edi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
cmp dword [esi + 0x17c], 0
mov edi, dword [ebp + 8]
jne 0x100ab76c
lock inc dword [edi + 0x48]
mov dword [esi + 0x17c], edi
mov eax, dword [ebp + 0xc]
mov dword [esi + 0x180], eax
mov dword [esi + 0x184], 1
movzx eax, word [edi + 0x80]
mov dword [esi + 0x178], eax
push 0xc
push dword [esi]
call sym.nss3.dll_PORT_ArenaAlloc_Util
add esp, 8
test eax, eax
je 0x100ab7dc
mov ebx, eax
xor eax, eax
mov dword [ebx + 4], eax
mov dword [ebx], eax
mov dword [ebx + 8], eax
push ebx
push esi
push edi
call fcn.100c24c0
add esp, 0xc
test eax, eax
je 0x100ab7ea
cmp dword [edi + 0x24], 0
mov dword [ebp - 0x30], ebx
je 0x100ab7b3
push 0
push edi
call sym.nss3.dll_PK11_IsLoggedIn
add esp, 8
test eax, eax
je 0x100ab855
mov eax, 3
mov cl, 1
mov dword [ebp - 0x2c], ecx
jmp 0x100ab861
push ebx
call fcn.1009fed0
add esp, 4
test edi, edi
je 0x100ab5e3
push edi
call dword [sym.imp.mozglue.dll_free]
jmp 0x100ab7e2
push esi
call sym.nss3.dll_CERT_DestroyCertificate
add esp, 4
jmp 0x100ab5e3
lea eax, [ebp - 0x28]
push eax
push esi
call sym.nss3.dll_CERT_IsCACert
add esp, 8
test eax, eax
je 0x100ab797
mov eax, dword [0x101a7cf8]
lea ecx, [ebp - 0x24]
mov dword [ecx + 8], eax
movsd xmm0, qword [0x101a7cf0]
movsd qword [ecx], xmm0
push 1
push ecx
push dword [ebp + 0xc]
push edi
push 0
call fcn.100c3690
add esp, 0x14
test eax, eax
jne 0x100ab9e6
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x1c]
test ecx, ecx
je 0x100ab9a2
jle 0x100ab9b2
xor edx, edx
cmp byte [eax + edx], 0
jne 0x100ab9a6
inc edx
cmp ecx, edx
jne 0x100ab841
jmp 0x100ab9b6
mov eax, 2
mov dword [ebp - 0x2c], 0
push eax
push dword [ebp + 0xc]
push edi
call fcn.100c72a0
add esp, 0xc
xor ebx, ebx
test eax, eax
setne bl
cmp byte [ebp - 0x2c], 0
jne 0x100ab94f
test eax, eax
jne 0x100ab94f
mov ecx, esi
add ecx, 0xd4
call fcn.10094ac0
xor ebx, ebx
test eax, eax
je 0x100ab94f
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
mov ecx, dword [eax + 4]
dec ecx
cmp ecx, 7
ja case.0x100ab8b1.3
jmp dword [ecx*4 + 0x101a7d18]
mov dword [ebp - 0x24], 0x120
mov ecx, dword [eax + 0x18]
mov dword [ebp - 0x20], ecx
mov ecx, eax
add ecx, 0x1c
jmp 0x100ab906
mov dword [ebp - 0x24], 0x11
mov ecx, dword [eax + 0x3c]
mov dword [ebp - 0x20], ecx
mov ecx, eax
add ecx, 0x40
jmp 0x100ab906
mov dword [ebp - 0x24], 0x11
mov ecx, dword [eax + 0x30]
mov dword [ebp - 0x20], ecx
mov ecx, eax
add ecx, 0x34
jmp 0x100ab906
mov dword [ebp - 0x24], 0x181
mov ecx, dword [eax + 0x24]
mov dword [ebp - 0x20], ecx
mov ecx, eax
add ecx, 0x28
mov ecx, dword [ecx]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
je case.0x100ab8b1.3
mov ebx, eax
cmp dword [eax + 4], 6
je 0x100ab923
lea eax, [ebp - 0x24]
push eax
call fcn.100c3a70
add esp, 4
lea eax, [ebp - 0x24]
push 1
push eax
push edi
call fcn.100c6f80
add esp, 0xc
mov edi, eax
push ebx
call sym.nss3.dll_SECKEY_DestroyPublicKey
add esp, 4
test edi, edi
je 0x100ab95d
xor ebx, ebx
inc ebx
jmp 0x100ab94f
push eax
call sym.nss3.dll_SECKEY_DestroyPublicKey
add esp, 4
test ebx, ebx
je 0x100ab95d
mov eax, dword [ebp - 0x30]
or byte [eax], 0x40
or byte [eax + 4], 0x40
mov edi, dword [0x101dec44]
push dword [0x101de1f0]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
je 0x100aba0e
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], ebx
mov eax, dword [ebp - 0x30]
mov dword [esi + 0x160], eax
push dword [0x101dec44]
call sym.nss3.dll_PR_Unlock
add esp, 4
jmp 0x100ab5e5
test eax, eax
je 0x100ab9e6
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x100ab9e6
test eax, eax
je 0x100ab9c0
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
cmp dword [esi + 0x170], 0
je 0x100ab9e6
push 0x1011
push edi
call sym.nss3.dll_PK11_DoesMechanism
add esp, 8
mov ecx, 0x18
test eax, eax
je 0x100ab9eb
or byte [ebx + 8], 8
jmp 0x100ab9eb
mov ecx, 8
mov eax, dword [ebp - 0x28]
test al, 4
je 0x100ab9f7
or dword [ebx], ecx
mov eax, dword [ebp - 0x28]
test al, 2
je 0x100ab9fe
or dword [ebx + 4], ecx
test al, 1
je 0x100ab797
or dword [ebx + 8], ecx
jmp 0x100ab797
sub esp, 0x10
movaps xmm0, xmmword [0x1019c190]
movups xmmword [esp], xmm0
call fcn.10072140
add esp, 0x10
mov ebx, eax
jmp 0x100ab979