Function at 0x100749c0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x20
mov ebx, dword [ebp + 8]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x10074b5d
lea eax, [ebx + 0x20]
mov dword [ebp - 0x1c], eax
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 0xc], esi
mov eax, dword [ebx + 0x88]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x194]
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebx + 0x194], eax
mov dword [ebx + 0x88], eax
mov edx, dword [ebx + 0x198]
test edx, edx
jne 0x10074bd4
lea esi, [ebx + 0x8c]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ecx, eax
test eax, eax
je 0x10074b74
mov dword [ebp - 0x10], esi
mov eax, dword [esi]
cmp dword [eax + 8], ecx
jne 0x10074a7d
lea edi, [ebx + 0x100]
mov ecx, dword [eax + 0x34]
add eax, 0x34
xor esi, esi
test ecx, ecx
jg 0x10074c23
lea edx, [esi + esi*2]
mov dword [eax + edx*4 + 8], 1
mov dword [eax + edx*4 + 4], edi
inc ecx
mov dword [eax], ecx
lea esi, [ebx + 0x110]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
je 0x10074b8b
mov ebx, dword [esi]
cmp dword [ebx + 8], edi
jne 0x10074b01
mov ecx, esi
mov esi, 0x1002
mov eax, dword [edi + 0xe0]
and eax, esi
cmp eax, 2
je 0x10074bb4
mov eax, dword [ebp + 0xc]
mov dword [edi + 0xd8], ecx
xor ecx, ecx
mov dword [ebx + 8], ecx
lea ecx, [ebx + 0x1c]
mov edx, dword [ebp + 8]
add edx, 0x184
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sym.nss3.dll__PR_MD_WAIT_CV
xor eax, eax
mov dword [edi + 0xd8], eax
mov dword [ebx + 8], edi
and esi, dword [edi + 0xe0]
cmp esi, 2
je 0x10074bb4
mov esi, dword [ebp + 8]
cmp dword [esi + 0x194], 0
jne 0x10074bee
mov eax, dword [ebp - 0x14]
mov dword [esi + 0x194], eax
mov eax, dword [ebp - 0x18]
mov dword [esi + 0x88], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10074ba2
cmp dword [esi + 0xc], eax
jne 0x10074c1b
mov dword [esi + 0xc], 0
mov eax, dword [ebp - 0x1c]
mov dword [esp], eax
call sym.nss3.dll__PR_MD_UNLOCK
xor eax, eax
add esp, 0x20
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov esi, eax
jmp 0x100749e7
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov ecx, eax
jmp 0x10074a4b
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov edi, eax
jmp 0x10074a9e
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
jmp 0x10074b38
mov dword [esp + 4], 0
mov dword [esp], 0xffffe897
call sym.nss3.dll_PR_SetError
and byte [edi + 0xe0], 0xfd
jmp 0x10074b01
lea ecx, [ebx + 0x110]
call fcn.101ac6d0
mov dword [ebx + 0x198], 0
jmp 0x10074a2a
call fcn.10155630
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx]
cmp dword [ecx + 8], eax
jne 0x10074b01
mov dword [esp], ecx
mov dword [esp + 4], 0xffffffff
mov ecx, eax
mov edx, dword [ebp - 0x10]
call fcn.101ab1a0
jmp 0x10074b01
xor eax, eax
dec eax
jmp 0x10074b55
mov ebx, eax
add eax, 8
mov edx, ecx
cmp dword [eax - 4], edi
je 0x10074c46
add eax, 0xc
dec edx
jne 0x10074c2a
cmp ecx, 6
jge 0x10074c59
mov eax, ebx
mov esi, ecx
mov ebx, dword [ebp + 8]
jmp 0x10074a6b
mov ecx, dword [eax]
cmp ecx, 0xffffffff
mov ebx, dword [ebp + 8]
jne 0x10074a7a
jmp 0x10074a7d
mov eax, dword [ebx + 0x4c]
test eax, eax
jne 0x10074c78
mov dword [esp + 4], 0x50
mov dword [esp], 1
call dword [sym.imp.mozglue.dll_calloc]
mov dword [ebx + 0x4c], eax
mov ecx, dword [eax]
test ecx, ecx
jle 0x10074c3e
jmp 0x10074c23