Function at 0x100f9400
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
test byte [ecx + 0x1d], 4
jne 0x100f9430
push dword [ecx + 0x170]
call sym.nss3.dll_PR_EnterMonitor
mov ecx, dword [ebp + 8]
add esp, 4
movzx esi, word [esi + 1]
rol si, 8
movzx edi, si
mov ebx, 0xffffd01c
cmp edi, 0x300
jb 0x100f9573
xor eax, eax
mov dword [ecx + 0x454], eax
mov dword [ecx + 0x45c], eax
mov dword [ecx + 0x46c], eax
mov eax, dword [ecx + 0x478]
test eax, eax
je 0x100f9482
push 1
push eax
call sym.nss3.dll_PK11_DestroyContext
mov ecx, dword [ebp + 8]
add esp, 8
mov dword [ecx + 0x478], 0
mov eax, dword [ecx + 0x47c]
test eax, eax
je 0x100f94a4
push 1
push eax
call sym.nss3.dll_PK11_DestroyContext
mov ecx, dword [ebp + 8]
add esp, 8
mov dword [ecx + 0x47c], 0
mov eax, dword [ecx + 0x480]
test eax, eax
je 0x100f94c6
push 1
push eax
call sym.nss3.dll_PK11_DestroyContext
mov ecx, dword [ebp + 8]
add esp, 8
mov dword [ecx + 0x480], 0
mov eax, dword [ecx + 0x484]
test eax, eax
je 0x100f94e8
push 1
push eax
call sym.nss3.dll_PK11_DestroyContext
mov ecx, dword [ebp + 8]
add esp, 8
mov dword [ecx + 0x484], 0
cmp dword [ecx + 0x450], 1
jne 0x100f951c
mov eax, dword [ebp + 0xc]
movzx edx, word [eax + 3]
mov word [ebp - 0x1c], dx
movzx ebx, word [eax + 5]
movzx eax, word [eax + 7]
mov word [ecx + 0x5a], di
mov edx, 0x2f
cmp edi, 0x303
jbe 0x100f9528
mov ebx, 0xffffd01c
jmp 0x100f9564
mov edx, 0xa
mov ebx, 0xffffd02a
jmp 0x100f9564
mov word [ebp - 0x22], bx
mov word [ebp - 0x20], ax
mov ebx, 0xffffd009
cmp dword [ecx + 0x620], 0
mov eax, 0xffffd009
je 0x100f95a9
push 0
push eax
call sym.nss3.dll_PR_SetError
mov ecx, dword [ebp + 8]
add esp, 8
cmp edi, 0x301
mov eax, 0x46
mov edx, 0x28
cmovae edx, eax
push edx
push 2
push ecx
call fcn.100f2eb0
mov ecx, dword [ebp + 8]
add esp, 0xc
test byte [ecx + 0x1d], 4
jne 0x100f9587
push dword [ecx + 0x170]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
push 0
push ebx
call sym.nss3.dll_PR_SetError
add esp, 8
xor edi, edi
dec edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov eax, edi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
movzx edx, word [ecx + 0x24]
test dx, dx
je 0x100f95e9
cmp dx, si
ja 0x100f9543
movzx edx, word [ecx + 0x26]
cmp dx, si
cmovae edx, esi
cmp dword [ecx + 0x38], 0
je 0x100f95f3
cmp word [ecx + 0x58], dx
jne 0x100f9543
mov word [ecx + 0x58], dx
or byte [ecx + 0x54c], 0x11
movzx ebx, word [ebp - 0x20]
movzx edi, word [ebp - 0x1c]
jmp 0x100f9696
mov eax, 0xffffd014
jmp 0x100f9543
mov word [ecx + 0x58], dx
or byte [ecx + 0x54c], 0x11
test byte [ecx + 0x1d], 4
jne 0x100f9619
push dword [ecx + 0x174]
call fcn.100d31d0
mov ecx, dword [ebp + 8]
add esp, 4
movzx edx, word [ecx + 0x58]
mov eax, dword [ecx + 0x3b8]
mov word [eax + 0x10], dx
movzx esi, word [ecx + 0x58]
mov edx, dword [ecx + 0xa24]
cmp esi, 0x304
movzx ebx, word [ebp - 0x20]
movzx edi, word [ebp - 0x1c]
jb 0x100f964f
cmp edx, 1
mov edx, 0xfefd
mov esi, 0x303
cmove esi, edx
jmp 0x100f967b
cmp edx, 1
jne 0x100f967b
movzx ecx, si
xor edx, edx
cmp ecx, 0x303
setne dl
neg edx
or edx, 0xfffffefd
cmp ecx, 0x302
mov esi, 0xfeff
cmovne esi, edx
mov ecx, dword [ebp + 8]
mov word [eax + 0x12], si
test byte [ecx + 0x1d], 4
jne 0x100f9696
mov eax, dword [ebp + 8]
push dword [eax + 0x174]
call fcn.100d32c0
add esp, 4
rol di, 8
movzx ecx, di
movzx eax, word [ebp - 0x22]
rol ax, 8
movzx edi, ax
rol bx, 8
movzx eax, bx
movzx edx, byte [ebp + 0x14]
mov dword [ebp - 0x1c], ecx
add edx, ecx
add edx, edi
add edx, eax
add edx, 9
cmp edx, dword [ebp + 0x10]
jne 0x100f97b9
lea edx, [eax - 0x21]
mov ebx, 0xffffd01c
cmp edx, 0xffffffef
mov ecx, dword [ebp + 8]
mov edx, 0x2f
jb 0x100f9564
mov esi, ecx
mov ecx, dword [ebp + 0xc]
lea edx, [ecx + 9]
add edx, dword [ebp - 0x1c]
add edx, edi
lea ecx, [esi + 0x410]
xorps xmm0, xmm0
movups xmmword [esi + 0x420], xmm0
movups xmmword [esi + 0x410], xmm0
sub ecx, eax
add ecx, 0x20
push eax
push edx
push ecx
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
mov ecx, esi
call fcn.100f26e0
test eax, eax
je 0x100f992c
xor eax, eax
mov ecx, dword [ebp + 8]
mov dword [ebp - 0x20], eax
lea esi, [ecx + eax*4]
add esi, 0x210
movzx eax, word [ecx + 0x58]
mov word [ebp - 0x14], ax
mov word [ebp - 0x12], ax
mov eax, ecx
movzx edx, byte [ecx + 0x3e0]
mov ecx, esi
push eax
lea eax, [ebp - 0x14]
push eax
call fcn.100f2b60
add esp, 8
test eax, eax
je 0x100f979a
cmp dword [ebp - 0x1c], 3
jb 0x100f979a
movzx eax, word [esi]
movzx ecx, ax
mov edx, 0xb
mov esi, dword [ebp + 0xc]
movzx edi, byte [esi + edx - 2]
shl edi, 0x10
movzx ebx, byte [esi + edx - 1]
shl ebx, 8
or ebx, edi
movzx edi, byte [esi + edx]
or edi, ebx
cmp edi, ecx
je 0x100f97cb
lea edi, [edx + 3]
add edx, 0xfffffffa
cmp edx, dword [ebp - 0x1c]
mov edx, edi
jb 0x100f976e
mov eax, dword [ebp - 0x20]
inc eax
mov edx, 0x28
mov ebx, 0xffffd002
cmp eax, 0x47
mov ecx, dword [ebp + 8]
jne 0x100f9729
jmp 0x100f9564
mov ebx, 0xffffd01c
mov ecx, dword [ebp + 8]
mov edx, 0x2f
jmp 0x100f9564
mov edx, dword [ebp + 8]
mov word [edx + 0x490], ax
xor ecx, ecx
cmp word [ecx + 0x101c35e0], ax
je 0x100f9813
add ecx, 0x14
cmp ecx, 0x5a0
jne 0x100f97d7
xor esi, esi
push esi
push 0xffffd016
mov edi, edx
call sym.nss3.dll_PR_SetError
add esp, 8
mov dword [edi + 0x494], esi
push esi
push 0xffffe001
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x100f9846
lea eax, [ecx + 0x101c35e0]
mov dword [edx + 0x494], eax
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x101c3b80]
mov dword [edx + 0x48c], eax
or byte [edx + 0x54c], 2
push edx
call fcn.100f5440
add esp, 4
test eax, eax
je 0x100f9874
cmp dword [0x101f2f50], 0
je 0x100f9a8a
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x100f9a39
mov ebx, dword [eax + 0x28]
mov edx, 0x50
jmp 0x100f9955
mov ecx, dword [ebp + 8]
movzx eax, word [ecx + 0x26]
cmp ax, word [ecx + 0x5a]
jbe 0x100f98ab
mov eax, 0xb
movzx edx, word [esi + eax - 1]
rol dx, 8
movzx edx, dx
cmp edx, 0x5600
je 0x100f995d
lea edx, [eax + 3]
add eax, 0xfffffffa
cmp eax, dword [ebp - 0x1c]
mov eax, edx
jb 0x100f9886
mov eax, 0xb
movzx ecx, byte [esi + eax - 2]
shl ecx, 0x10
movzx edx, byte [esi + eax - 1]
shl edx, 8
or edx, ecx
movzx ecx, byte [esi + eax]
or ecx, edx
cmp ecx, 0xff
je 0x100f98df
lea ecx, [eax + 3]
add eax, 0xfffffffa
cmp eax, dword [ebp - 0x1c]
mov eax, ecx
jb 0x100f98b0
jmp 0x100f9901
mov dword [ebp - 0x14], 0x101c3dc4
lea eax, [ebp - 0x18]
mov dword [eax], 5
push 1
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 8]
call fcn.10104eb0
add esp, 0x10
mov ecx, dword [ebp + 8]
test byte [ecx + 0x1d], 0x80
je 0x100f9923
push 0xff01
push ecx
call fcn.10104970
mov ecx, dword [ebp + 8]
add esp, 8
test eax, eax
je 0x100f9a08
call fcn.100f9040
test eax, eax
je 0x100f996c
cmp dword [0x101f2f50], 0
je 0x100f9a94
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x100f9a54
mov ebx, dword [eax + 0x28]
mov edx, 0x28
mov ecx, dword [ebp + 8]
jmp 0x100f9564
mov edx, 0x56
mov ebx, 0xffffd083
jmp 0x100f9564
lock inc dword [0x101f3a04]
push 1
push dword [ebp + 8]
call fcn.100f7540
add esp, 8
test eax, eax
je 0x100f99e0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc4], eax
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
call fcn.100f56e0
add esp, 0x10
test eax, eax
jne 0x100f99e0
mov eax, dword [ebp + 8]
test byte [eax + 0x1d], 4
jne 0x100f99b9
push dword [eax + 0x168]
call sym.nss3.dll_PR_EnterMonitor
add esp, 4
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.100f9ab0
mov edi, eax
test byte [esi + 0x1d], 4
jne 0x100f99dc
mov eax, dword [ebp + 8]
push dword [eax + 0x168]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
test edi, edi
je 0x100f9a17
cmp dword [0x101f2f50], 0
je 0x100f9a9e
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x100f9a6f
mov ebx, dword [eax + 0x28]
mov ecx, dword [ebp + 8]
jmp 0x100f9573
mov edx, 0x28
mov ebx, 0xffffd071
jmp 0x100f9564
xor edi, edi
mov eax, dword [ebp + 8]
test byte [eax + 0x1d], 4
jne 0x100f9595
push dword [eax + 0x170]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
jmp 0x100f9595
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
jmp 0x100f9867
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
jmp 0x100f994d
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
jmp 0x100f99fd
call fcn.100029d0
jmp 0x100f9853
call fcn.100029d0
jmp 0x100f9939
call fcn.100029d0
jmp 0x100f99ed