Function at 0x100fa9c0
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 [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
test byte [ecx + 0x1d], 4
jne 0x100fa9f0
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 0x100fab33
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 0x100faa42
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 0x100faa64
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 0x100faa86
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 0x100faaa8
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 0x100faadc
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 0x100faae8
mov ebx, 0xffffd01c
jmp 0x100fab24
mov edx, 0xa
mov ebx, 0xffffd02a
jmp 0x100fab24
mov word [ebp - 0x22], bx
mov word [ebp - 0x20], ax
mov ebx, 0xffffd009
cmp dword [ecx + 0x620], 0
mov eax, 0xffffd009
je 0x100fab69
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.100f4470
mov ecx, dword [ebp + 8]
add esp, 0xc
test byte [ecx + 0x1d], 4
jne 0x100fab47
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.10157a00
mov eax, edi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
movzx edx, word [ecx + 0x24]
test dx, dx
je 0x100faba9
cmp dx, si
ja 0x100fab03
movzx edx, word [ecx + 0x26]
cmp dx, si
cmovae edx, esi
cmp dword [ecx + 0x38], 0
je 0x100fabb3
cmp word [ecx + 0x58], dx
jne 0x100fab03
mov word [ecx + 0x58], dx
or byte [ecx + 0x54c], 0x11
movzx ebx, word [ebp - 0x20]
movzx edi, word [ebp - 0x1c]
jmp 0x100fac56
mov eax, 0xffffd014
jmp 0x100fab03
mov word [ecx + 0x58], dx
or byte [ecx + 0x54c], 0x11
test byte [ecx + 0x1d], 4
jne 0x100fabd9
push dword [ecx + 0x174]
call fcn.100d4790
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 0x100fac0f
cmp edx, 1
mov edx, 0xfefd
mov esi, 0x303
cmove esi, edx
jmp 0x100fac3b
cmp edx, 1
jne 0x100fac3b
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 0x100fac56
mov eax, dword [ebp + 8]
push dword [eax + 0x174]
call fcn.100d4880
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 0x100fad79
lea edx, [eax - 0x21]
mov ebx, 0xffffd01c
cmp edx, 0xffffffef
mov ecx, dword [ebp + 8]
mov edx, 0x2f
jb 0x100fab24
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.100f3ca0
test eax, eax
je 0x100faeec
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.100f4120
add esp, 8
test eax, eax
je 0x100fad5a
cmp dword [ebp - 0x1c], 3
jb 0x100fad5a
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 0x100fad8b
lea edi, [edx + 3]
add edx, 0xfffffffa
cmp edx, dword [ebp - 0x1c]
mov edx, edi
jb 0x100fad2e
mov eax, dword [ebp - 0x20]
inc eax
mov edx, 0x28
mov ebx, 0xffffd002
cmp eax, 0x47
mov ecx, dword [ebp + 8]
jne 0x100face9
jmp 0x100fab24
mov ebx, 0xffffd01c
mov ecx, dword [ebp + 8]
mov edx, 0x2f
jmp 0x100fab24
mov edx, dword [ebp + 8]
mov word [edx + 0x490], ax
xor ecx, ecx
cmp word [ecx + 0x101c57c0], ax
je 0x100fadd3
add ecx, 0x14
cmp ecx, 0x5a0
jne 0x100fad97
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 0x100fae06
lea eax, [ecx + 0x101c57c0]
mov dword [edx + 0x494], eax
mov eax, dword [eax + 0xc]
lea eax, [eax + eax*2]
lea eax, [eax*8 + 0x101c5d60]
mov dword [edx + 0x48c], eax
or byte [edx + 0x54c], 2
push edx
call fcn.100f6a00
add esp, 4
test eax, eax
je 0x100fae34
cmp dword [0x101f4f80], 0
je 0x100fb04a
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x100faff9
mov ebx, dword [eax + 0x28]
mov edx, 0x50
jmp 0x100faf15
mov ecx, dword [ebp + 8]
movzx eax, word [ecx + 0x26]
cmp ax, word [ecx + 0x5a]
jbe 0x100fae6b
mov eax, 0xb
movzx edx, word [esi + eax - 1]
rol dx, 8
movzx edx, dx
cmp edx, 0x5600
je 0x100faf1d
lea edx, [eax + 3]
add eax, 0xfffffffa
cmp eax, dword [ebp - 0x1c]
mov eax, edx
jb 0x100fae46
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 0x100fae9f
lea ecx, [eax + 3]
add eax, 0xfffffffa
cmp eax, dword [ebp - 0x1c]
mov eax, ecx
jb 0x100fae70
jmp 0x100faec1
mov dword [ebp - 0x14], 0x101c5fa4
lea eax, [ebp - 0x18]
mov dword [eax], 5
push 1
push eax
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 8]
call fcn.10106470
add esp, 0x10
mov ecx, dword [ebp + 8]
test byte [ecx + 0x1d], 0x80
je 0x100faee3
push 0xff01
push ecx
call fcn.10105f30
mov ecx, dword [ebp + 8]
add esp, 8
test eax, eax
je 0x100fafc8
call fcn.100fa600
test eax, eax
je 0x100faf2c
cmp dword [0x101f4f80], 0
je 0x100fb054
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x100fb014
mov ebx, dword [eax + 0x28]
mov edx, 0x28
mov ecx, dword [ebp + 8]
jmp 0x100fab24
mov edx, 0x56
mov ebx, 0xffffd083
jmp 0x100fab24
lock inc dword [0x101f5a34]
push 1
push dword [ebp + 8]
call fcn.100f8b00
add esp, 8
test eax, eax
je 0x100fafa0
mov ecx, dword [ebp + 8]
mov dword [ecx + 0xc4], eax
push 0
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push ecx
call fcn.100f6ca0
add esp, 0x10
test eax, eax
jne 0x100fafa0
mov eax, dword [ebp + 8]
test byte [eax + 0x1d], 4
jne 0x100faf79
push dword [eax + 0x168]
call sym.nss3.dll_PR_EnterMonitor
add esp, 4
mov esi, dword [ebp + 8]
mov ecx, esi
call fcn.100fb070
mov edi, eax
test byte [esi + 0x1d], 4
jne 0x100faf9c
mov eax, dword [ebp + 8]
push dword [eax + 0x168]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
test edi, edi
je 0x100fafd7
cmp dword [0x101f4f80], 0
je 0x100fb05e
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x100fb02f
mov ebx, dword [eax + 0x28]
mov ecx, dword [ebp + 8]
jmp 0x100fab33
mov edx, 0x28
mov ebx, 0xffffd071
jmp 0x100fab24
xor edi, edi
mov eax, dword [ebp + 8]
test byte [eax + 0x1d], 4
jne 0x100fab55
push dword [eax + 0x170]
call sym.nss3.dll_PR_ExitMonitor
add esp, 4
jmp 0x100fab55
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
jmp 0x100fae27
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
jmp 0x100faf0d
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
jmp 0x100fafbd
call fcn.1001b2e0
jmp 0x100fae13
call fcn.1001b2e0
jmp 0x100faef9
call fcn.1001b2e0
jmp 0x100fafad