Function at 0x1010fd20
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x2c
mov eax, dword [0x101d2014]
mov ecx, dword [ebp + 8]
xor eax, ebp
test ecx, ecx
mov dword [ebp - 0x10], eax
je 0x1010fe39
mov edx, dword [ebp + 0xc]
test edx, edx
je 0x1010fe39
mov eax, dword [ecx + 0x13c]
test eax, eax
je 0x1010fe42
mov ecx, dword [eax + 0x24]
test ecx, ecx
je 0x1010fe42
mov edi, dword [0x101d5808]
push edx
push ecx
push eax
call fcn.10103630
add esp, 0xc
test eax, eax
je 0x1010fe51
mov esi, eax
xor eax, eax
push 2
push eax
push edi
push esi
push eax
call fcn.101077e0
add esp, 0x14
test eax, eax
je 0x1010fe67
mov ebx, eax
mov dword [ebp - 0x2c], edi
push eax
call fcn.10104a00
add esp, 4
test eax, eax
mov dword [ebp - 0x28], eax
je 0x1010fe72
mov edi, eax
mov eax, dword [esi + 0xc]
test eax, eax
je 0x1010ff22
mov dword [ebp - 0x34], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
mov eax, dword [ebp + 8]
mov esi, dword [edi + 0x28]
mov edi, dword [edi + 0x2c]
add eax, 0xf9
mov dword [ebp - 0x30], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
test ebx, ebx
je 0x1010fe7d
lea ecx, [eax + ebx + 2]
push ecx
mov esi, eax
call sym.nss3.dll_PORT_Alloc_Util
add esp, 4
test eax, eax
je 0x1010ff22
mov edi, eax
push esi
push dword [ebp - 0x30]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
lea eax, [edi + esi]
mov byte [edi + esi], 0x3a
mov dword [ebp - 0x30], eax
lea eax, [edi + esi + 1]
push ebx
push dword [ebp - 0x34]
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov eax, dword [ebp - 0x30]
mov byte [ebx + eax + 1], 0
jmp 0x1010ff24
push 0
push 0xffffe005
jmp 0x1010fe49
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.10192ef0
mov eax, esi
add esp, 0x2c
pop esi
pop edi
pop ebx
pop ebp
ret
push esi
call fcn.10103710
jmp 0x10110056
push ebx
call fcn.101079e0
jmp 0x10110056
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x1010fe96
mov ebx, dword [ecx + 8]
test ebx, ebx
je 0x1010fe96
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x34], ecx
jmp 0x1010fdeb
test edi, edi
je 0x1010ff13
mov ecx, edi
xor edx, edx
mov dword [ebp - 0x38], eax
lea eax, [ebp - 0x1b]
add ecx, 0xfffffffc
mov dword [eax - 5], 0x20444920
mov dword [eax - 9], 0x74726543
cmovs ecx, edx
cmp ecx, edi
jge 0x1010fef7
sub edi, ecx
add esi, ecx
mov ecx, 0x30
mov dl, byte [esi]
mov ebx, 0x57
mov dh, dl
shr dh, 4
cmp dl, 0xa0
cmovb ebx, ecx
add bl, dh
mov byte [eax], bl
mov ebx, 0x57
mov dl, byte [esi]
and dl, 0xf
cmp dl, 0xa
cmovb ebx, ecx
inc esi
add bl, dl
mov byte [eax + 1], bl
add eax, 2
dec edi
jne 0x1010fec5
lea ecx, [ebp - 0x24]
mov byte [eax], 0
mov dword [ebp - 0x34], ecx
push ecx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov ebx, eax
mov eax, dword [ebp - 0x38]
jmp 0x1010fdeb
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 - 0x2c]
call fcn.1010a6a0
add esp, 0xc
mov ebx, dword [esi]
xor edx, edx
mov ecx, ebx
call fcn.101064f0
test eax, eax
je 0x10110036
mov esi, eax
test edi, edi
je 0x1010ff9e
mov eax, dword [esi + 0x154]
test eax, eax
je 0x1010ff5e
mov dword [esi + 0x158], eax
mov eax, dword [esi]
mov dword [ebp - 0x2c], 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 - 0x2c]
call sym.nss3.dll_PORT_ArenaAlloc_Util
add esp, 8
test eax, eax
je 0x1010ff8e
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 0x1010ffd4
mov eax, dword [ebp + 0xc]
lock inc dword [edi + 0x48]
mov dword [esi + 0x17c], edi
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 0x10110050
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.101267d0
add esp, 0xc
test eax, eax
je 0x1011005e
cmp dword [edi + 0x24], 0
mov dword [ebp - 0x2c], ebx
je 0x1011001b
push 0
push edi
call sym.nss3.dll_PK11_IsLoggedIn
add esp, 8
test eax, eax
je 0x101100c9
push 3
push dword [ebp + 0xc]
push edi
call fcn.1012b360
add esp, 0xc
test eax, eax
jne 0x101100db
jmp 0x101100e2
push ebx
call fcn.10104ae0
add esp, 4
test edi, edi
je 0x1010fe51
push edi
call dword [sym.imp.mozglue.dll_free]
jmp 0x10110056
push esi
call sym.nss3.dll_CERT_DestroyCertificate
add esp, 4
jmp 0x1010fe51
lea eax, [ebp - 0x28]
push eax
push esi
call sym.nss3.dll_CERT_IsCACert
add esp, 8
test eax, eax
je 0x1010ffff
mov eax, dword [0x1019f4d8]
movsd xmm0, qword [0x1019f4d0]
lea ecx, [ebp - 0x24]
mov dword [ecx + 8], eax
movsd qword [ecx], xmm0
push 1
push ecx
push dword [ebp + 0xc]
push edi
push 0
call fcn.10127920
add esp, 0x14
test eax, eax
jne 0x101101b4
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x20]
test ecx, ecx
je 0x10110170
jle 0x10110180
xor edx, edx
cmp byte [eax + edx], 0
jne 0x10110174
inc edx
cmp ecx, edx
jne 0x101100b5
jmp 0x10110184
push 2
push dword [ebp + 0xc]
push edi
call fcn.1012b360
add esp, 0xc
test eax, eax
je 0x10110127
or byte [ebx], 0x40
or byte [ebx + 4], 0x40
mov edi, dword [0x101d5784]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
je 0x10110269
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x2c]
mov dword [edi + 8], ebx
mov dword [esi + 0x160], eax
push dword [0x101d5784]
call sym.nss3.dll_PR_Unlock
add esp, 4
jmp 0x1010fe53
mov ecx, esi
add ecx, 0xd4
call fcn.100f9910
test eax, eax
je 0x101100e2
mov ebx, eax
xor eax, eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebx + 4]
dec eax
cmp eax, 7
ja case.0x10110152.3
jmp dword [eax*4 + 0x1019f4f8]
mov dword [ebp - 0x24], 0x120
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x20], eax
mov eax, ebx
add eax, 0x1c
jmp 0x10110216
test eax, eax
je 0x101101b4
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x101101b4
test eax, eax
je 0x1011018e
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
cmp dword [esi + 0x170], 0
je 0x101101b4
push 0x1011
push edi
call sym.nss3.dll_PK11_DoesMechanism
add esp, 8
mov ecx, 0x18
test eax, eax
je 0x101101b9
or byte [ebx + 8], 8
jmp 0x101101b9
mov ecx, 8
mov eax, dword [ebp - 0x28]
test al, 4
je 0x101101c5
or dword [ebx], ecx
mov eax, dword [ebp - 0x28]
test al, 2
je 0x101101cc
or dword [ebx + 4], ecx
test al, 1
je 0x1010ffff
or dword [ebx + 8], ecx
jmp 0x1010ffff
mov dword [ebp - 0x24], 0x11
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x20], eax
mov eax, ebx
add eax, 0x40
jmp 0x10110216
mov dword [ebp - 0x24], 0x11
mov eax, dword [ebx + 0x30]
mov dword [ebp - 0x20], eax
mov eax, ebx
add eax, 0x34
jmp 0x10110216
mov dword [ebp - 0x24], 0x181
mov eax, dword [ebx + 0x24]
mov dword [ebp - 0x20], eax
mov eax, ebx
add eax, 0x28
mov eax, dword [eax]
test eax, eax
mov dword [ebp - 0x1c], eax
je case.0x10110152.3
cmp dword [ebx + 4], 6
je 0x10110231
lea eax, [ebp - 0x24]
push eax
call fcn.10127cf0
add esp, 4
lea eax, [ebp - 0x24]
push 1
push eax
push edi
call fcn.1012b060
add esp, 0xc
mov edi, eax
push ebx
call sym.nss3.dll_SECKEY_DestroyPublicKey
add esp, 4
mov ebx, dword [ebp - 0x2c]
test edi, edi
jne 0x101100db
jmp 0x101100e2
push ebx
call sym.nss3.dll_SECKEY_DestroyPublicKey
add esp, 4
jmp 0x101100e2
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov ebx, eax
jmp 0x101100fe