Function at 0x10094f30
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x98
mov edi, dword [ebp + 8]
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x40]
cmp dword [eax + 0xc], 0
je 0x10094f60
xor ebx, ebx
cmp dword [eax + 0x18], 0
sete bl
jmp 0x100952c8
mov ebx, dword [edi + 0x44]
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 0x1009541d
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], esi
mov esi, dword [edi + 0x34]
mov ebx, dword [edi + 0x4c]
cmp dword [0x101f2f50], 0
je 0x100954e3
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10095434
cmp ebx, eax
je 0x100950e8
cmp byte [0x101f306c], 0
jne 0x10094fe1
cmp dword [0x101f2f50], 0
je 0x100954f7
mov byte [0x101f306c], 1
cmp dword [0x101f2f50], 0
je 0x100954ed
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp esi, 2
jne 0x10095010
cmp byte [0x101f306c], 1
jne 0x10095010
sub eax, dword [edi + 0x30]
cmp eax, 0x3e7
jbe 0x100950e8
mov eax, dword [edi + 0x44]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x1009516b
mov dword [ebp - 0x90], eax
mov ebx, dword [edi + 0x44]
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 0x10095449
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], esi
cmp dword [edi + 0x4c], 0
je 0x10095077
mov eax, dword [edi + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0xffffffff
call sym.nss3.dll_PR_WaitCondVar
jmp 0x1009505c
mov esi, dword [edi + 0x34]
cmp dword [0x101f2f50], 0
je 0x10095501
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10095460
cmp byte [0x101f306c], 0
jne 0x100950bd
cmp dword [0x101f2f50], 0
je 0x1009551f
mov byte [0x101f306c], 1
cmp dword [0x101f2f50], 0
je 0x1009550b
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp esi, 2
jne 0x100950fe
cmp byte [0x101f306c], 1
jne 0x100950fe
sub eax, dword [edi + 0x30]
cmp eax, 0x3e7
ja 0x100950fe
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x44]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
and ebx, 1
jmp 0x100952c8
mov dword [edi + 0x34], 1
cmp dword [0x101f2f50], 0
je 0x10095515
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x1009547d
mov dword [edi + 0x4c], eax
mov eax, dword [edi + 0x44]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, dword [edi + 0x40]
mov dword [esp], eax
call fcn.100cbb00
test eax, eax
je 0x10095172
mov esi, eax
mov eax, dword [edi + 0x40]
lea ecx, [ebp - 0x78]
mov dword [esp + 4], ecx
mov dword [esp], eax
call sym.nss3.dll_PK11_GetSlotInfo
test eax, eax
je 0x10095179
mov eax, dword [esi + 0xc]
mov byte [eax], 0
jmp 0x10095238
xor ebx, ebx
jmp 0x100952c8
xor ebx, ebx
jmp 0x10095242
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x1c], eax
mov edx, dword [esi + 0x24]
test al, 1
jne 0x100952df
test edx, edx
je 0x1009520d
mov ebx, dword [edx]
test ebx, ebx
mov dword [ebp - 0x8c], edx
je 0x100951d7
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x94], eax
test eax, eax
je 0x100954ad
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x94]
mov dword [ebx + 8], eax
mov edx, dword [ebp - 0x8c]
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x100951ff
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x36]
call dword [section..00cfg]
mov dword [esp], ebx
call ecx
mov edx, dword [ebp - 0x8c]
mov dword [edx + 4], 0
mov eax, dword [edx]
test eax, eax
je 0x1009520d
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, dword [esi + 0xc]
cmp byte [eax], 0
je 0x1009522a
mov byte [eax], 0
mov eax, dword [esi + 0x28]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.1009e040
mov eax, dword [esi + 0xc]
mov byte [eax], 0
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call fcn.100974d0
xor ebx, ebx
mov dword [esp], esi
call fcn.10095540
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x8c], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x90], eax
test eax, eax
je 0x10095492
mov esi, dword [ebp - 0x8c]
lea eax, [esi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x90]
mov dword [esi + 8], eax
cmp dword [edi + 0x34], 1
jne 0x100952ab
cmp dword [0x101f2f50], 0
je 0x10095529
call dword [sym.imp.WINMM.dll_timeGetTime]
mov dword [edi + 0x30], eax
mov dword [edi + 0x34], 2
mov dword [edi + 0x4c], 0
mov eax, dword [edi + 0x48]
mov dword [esp], eax
call sym.nss3.dll_PR_NotifyAllCondVar
mov eax, dword [edi + 0x44]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov eax, ebx
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
test edx, edx
je 0x100953a0
mov ebx, dword [edx]
test ebx, ebx
mov dword [ebp - 0x8c], edx
je 0x10095330
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x94], eax
test eax, eax
je 0x100954c8
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x94]
mov dword [ebx + 8], eax
mov edx, dword [ebp - 0x8c]
mov ebx, dword [edx + 4]
test ebx, ebx
je 0x1009538c
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x3e]
call dword [section..00cfg]
lea eax, [ebp - 0x88]
mov dword [esp + 4], eax
mov dword [esp], ebx
call ecx
mov edx, dword [ebp - 0x8c]
test eax, eax
je 0x10095383
mov eax, dword [ebp - 0x90]
mov ecx, dword [eax + 0x36]
mov ebx, dword [edx + 4]
call dword [section..00cfg]
mov dword [esp], ebx
call ecx
mov edx, dword [ebp - 0x8c]
mov dword [edx + 4], 0
cmp dword [edx + 4], 0
sete bl
jmp 0x1009538e
mov bl, 1
mov eax, dword [edx]
test eax, eax
je 0x1009539c
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
test bl, bl
je 0x10095415
mov eax, dword [esi + 0x28]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.1009e040
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call fcn.100974d0
mov eax, dword [esi + 0xc]
mov al, byte [eax]
mov byte [ebp - 0x90], al
mov eax, dword [edi + 0x40]
mov dword [esp], eax
mov dword [esp + 4], 0
call fcn.100caf50
xor ebx, ebx
test eax, eax
jne 0x1009523a
cmp byte [ebp - 0x90], 0
jne 0x100953fa
mov eax, dword [esi + 0x28]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.1009e240
mov dword [esp], esi
call fcn.1009fff0
test eax, eax
je 0x10095415
mov eax, dword [esi + 0xc]
mov byte [eax], 0
and byte [edi + 0x1c], 0xfe
jmp 0x1009523a
xor ebx, ebx
inc ebx
jmp 0x1009523a
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov esi, eax
jmp 0x10094f7e
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
jmp 0x10094fbc
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov esi, eax
jmp 0x1009504a
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
test eax, eax
jne 0x100950a0
jmp 0x100950e8
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
jmp 0x1009512b
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x90], eax
jmp 0x1009526a
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x94], eax
jmp 0x100951b9
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x94], eax
jmp 0x10095312
call fcn.100029d0
jmp 0x10094fa3
call fcn.100029e0
jmp 0x10094fee
call fcn.100029e0
jmp 0x10094fda
call fcn.100029d0
jmp 0x10095087
call fcn.100029e0
jmp 0x100950ca
call fcn.100029d0
jmp 0x10095112
call fcn.100029e0
jmp 0x100950b6
call fcn.100029e0
jmp 0x1009529b