Function at 0x100964d0
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 [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x40]
cmp dword [eax + 0xc], 0
je 0x10096500
xor ebx, ebx
cmp dword [eax + 0x18], 0
sete bl
jmp 0x10096868
mov ebx, dword [edi + 0x44]
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100969bd
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 [0x101f4f80], 0
je 0x10096a83
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100969d4
cmp ebx, eax
je 0x10096688
cmp byte [0x101f509c], 0
jne 0x10096581
cmp dword [0x101f4f80], 0
je 0x10096a97
mov byte [0x101f509c], 1
cmp dword [0x101f4f80], 0
je 0x10096a8d
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp esi, 2
jne 0x100965b0
cmp byte [0x101f509c], 1
jne 0x100965b0
sub eax, dword [edi + 0x30]
cmp eax, 0x3e7
jbe 0x10096688
mov eax, dword [edi + 0x44]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, dword [edi + 0x3c]
test eax, eax
je 0x1009670b
mov dword [ebp - 0x90], eax
mov ebx, dword [edi + 0x44]
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100969e9
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 0x10096617
mov eax, dword [edi + 0x48]
mov dword [esp], eax
mov dword [esp + 4], 0xffffffff
call sym.nss3.dll_PR_WaitCondVar
jmp 0x100965fc
mov esi, dword [edi + 0x34]
cmp dword [0x101f4f80], 0
je 0x10096aa1
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10096a00
cmp byte [0x101f509c], 0
jne 0x1009665d
cmp dword [0x101f4f80], 0
je 0x10096abf
mov byte [0x101f509c], 1
cmp dword [0x101f4f80], 0
je 0x10096aab
call dword [sym.imp.WINMM.dll_timeGetTime]
cmp esi, 2
jne 0x1009669e
cmp byte [0x101f509c], 1
jne 0x1009669e
sub eax, dword [edi + 0x30]
cmp eax, 0x3e7
ja 0x1009669e
mov ebx, dword [edi + 0x1c]
mov eax, dword [edi + 0x44]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
and ebx, 1
jmp 0x10096868
mov dword [edi + 0x34], 1
cmp dword [0x101f4f80], 0
je 0x10096ab5
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10096a1d
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.100cd0c0
test eax, eax
je 0x10096712
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 0x10096719
mov eax, dword [esi + 0xc]
mov byte [eax], 0
jmp 0x100967d8
xor ebx, ebx
jmp 0x10096868
xor ebx, ebx
jmp 0x100967e2
mov eax, dword [ebp - 0x18]
mov dword [edi + 0x1c], eax
mov edx, dword [esi + 0x24]
test al, 1
jne 0x1009687f
test edx, edx
je 0x100967ad
mov ebx, dword [edx]
test ebx, ebx
mov dword [ebp - 0x8c], edx
je 0x10096777
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x94], eax
test eax, eax
je 0x10096a4d
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 0x1009679f
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 0x100967ad
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, dword [esi + 0xc]
cmp byte [eax], 0
je 0x100967ca
mov byte [eax], 0
mov eax, dword [esi + 0x28]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.1009f600
mov eax, dword [esi + 0xc]
mov byte [eax], 0
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call fcn.10098a70
xor ebx, ebx
mov dword [esp], esi
call fcn.10096ae0
mov eax, dword [edi + 0x44]
mov dword [ebp - 0x8c], eax
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x90], eax
test eax, eax
je 0x10096a32
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 0x1009684b
cmp dword [0x101f4f80], 0
je 0x10096ac9
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.10157a00
mov eax, ebx
add esp, 0x98
pop esi
pop edi
pop ebx
pop ebp
ret
test edx, edx
je 0x10096940
mov ebx, dword [edx]
test ebx, ebx
mov dword [ebp - 0x8c], edx
je 0x100968d0
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x94], eax
test eax, eax
je 0x10096a68
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 0x1009692c
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 0x10096923
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 0x1009692e
mov bl, 1
mov eax, dword [edx]
test eax, eax
je 0x1009693c
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
test bl, bl
je 0x100969b5
mov eax, dword [esi + 0x28]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.1009f600
mov eax, dword [esi + 0x30]
mov dword [esp], eax
call fcn.10098a70
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.100cc510
xor ebx, ebx
test eax, eax
jne 0x100967da
cmp byte [ebp - 0x90], 0
jne 0x1009699a
mov eax, dword [esi + 0x28]
mov dword [esp + 4], esi
mov dword [esp], eax
call fcn.1009f800
mov dword [esp], esi
call fcn.100a15b0
test eax, eax
je 0x100969b5
mov eax, dword [esi + 0xc]
mov byte [eax], 0
and byte [edi + 0x1c], 0xfe
jmp 0x100967da
xor ebx, ebx
inc ebx
jmp 0x100967da
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x1009651e
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x1009655c
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x100965ea
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
test eax, eax
jne 0x10096640
jmp 0x10096688
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x100966cb
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov dword [ebp - 0x90], eax
jmp 0x1009680a
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov dword [ebp - 0x94], eax
jmp 0x10096759
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov dword [ebp - 0x94], eax
jmp 0x100968b2
call fcn.1001b2e0
jmp 0x10096543
call fcn.1001b2f0
jmp 0x1009658e
call fcn.1001b2f0
jmp 0x1009657a
call fcn.1001b2e0
jmp 0x10096627
call fcn.1001b2f0
jmp 0x1009666a
call fcn.1001b2e0
jmp 0x100966b2
call fcn.1001b2f0
jmp 0x10096656
call fcn.1001b2f0
jmp 0x1009683b