Function at 0x100f9ab0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xa0
mov esi, ecx
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ecx
call fcn.100fa480
add esp, 4
xor ebx, ebx
dec ebx
test eax, eax
je 0x100f9adc
mov edi, ebx
jmp 0x100f9ae9
mov ecx, esi
call fcn.10102450
mov edi, eax
test eax, eax
je 0x100f9b00
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov eax, edi
add esp, 0xa0
pop esi
pop edi
pop ebx
pop ebp
ret
push 5
push esi
call fcn.10104970
add esp, 8
test eax, eax
je 0x100f9b81
mov eax, dword [esi + 0x9c]
mov eax, dword [eax + 0x20]
test eax, eax
je 0x100f9b81
cmp dword [eax + 4], 0
je 0x100f9b81
mov dword [ebp - 0xa8], eax
mov eax, dword [ebp - 0xa8]
mov eax, dword [eax]
mov eax, dword [eax + 8]
add eax, 4
push eax
push 0x16
push esi
call fcn.100f5860
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x100f9ae9
xor eax, eax
inc eax
push eax
push 0
push eax
push esi
call fcn.1010acf0
add esp, 0x10
mov edi, eax
mov eax, dword [ebp - 0xa8]
test edi, edi
jne 0x100f9ae9
mov eax, dword [eax]
push 3
push dword [eax + 8]
push dword [eax + 4]
push esi
call fcn.1010ad70
add esp, 0x10
mov edi, eax
test eax, eax
jne 0x100f9ae9
mov eax, dword [esi + 0x48c]
cmp dword [eax + 0x10], 0
mov dword [ebp - 0xa8], esi
je 0x100f9ec7
mov ecx, dword [eax + 4]
cmp ecx, 4
je 0x100f9caa
cmp ecx, 2
mov edi, dword [ebp - 0xa8]
jne 0x100f9cbf
xor ecx, ecx
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0x9c], ecx
xorps xmm0, xmm0
movups xmmword [ebp - 0x80], xmm0
mov eax, dword [eax]
and eax, 0xfffffffe
cmp eax, 4
jne 0x100f9cd3
lea eax, [ebp - 0x88]
push eax
push edi
call fcn.10113780
add esp, 8
cmp eax, 0xffffffff
je 0x100f9cdc
mov eax, dword [ebp - 0x88]
mov dword [edi + 0x94], eax
push eax
call fcn.101135c0
add esp, 4
lea ecx, [ebp - 0x84]
push ecx
push eax
push dword [ebp - 0x88]
call fcn.100fa570
add esp, 0xc
cmp eax, 0xffffffff
je 0x100f9cf0
lea eax, [edi + 0xd4]
mov esi, dword [ebp - 0x84]
mov dword [esi], eax
mov eax, dword [edi + 0xd8]
mov dword [esi + 4], eax
mov eax, dword [edi + 0xd8]
mov dword [eax], esi
mov dword [edi + 0xd8], esi
movzx eax, word [edi + 0x58]
xor edx, edx
cmp eax, 0x303
jne 0x100f9c6a
push dword [edi + 0x488]
call fcn.100f5b00
add esp, 4
mov edx, eax
mov eax, dword [esi + 0xc]
mov ebx, edi
mov edi, dword [eax + 4]
lea esi, [ebp - 0x58]
mov ecx, ebx
push 1
push dword [edi + 0x34]
push dword [edi + 0x30]
push dword [edi + 0x28]
push dword [edi + 0x24]
push dword [edi + 0x1c]
push dword [edi + 0x18]
push esi
call fcn.101025c0
add esp, 0x20
test eax, eax
je 0x100f9cff
push 0xffffd044
call fcn.1010aec0
add esp, 4
jmp 0x100f9e96
push dword [ebp - 0xa8]
call fcn.10104070
add esp, 4
mov edi, eax
jmp 0x100f9eb9
push 0
push 0xffffe001
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x100f9ad8
push 0
push 0xffffd044
jmp 0x100f9ce3
push 0
push 0xffffd002
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x100f9eb6
push 0xffffe064
call fcn.1010aec0
jmp 0x100f9eb3
mov eax, dword [ebx + 0x9c]
mov eax, dword [eax + 0x18]
movzx edx, word [ebx + 0x58]
xor ecx, ecx
cmp edx, 0x301
setae cl
mov ebx, dword [ebx + 0x488]
lea edx, [ebp - 0xa4]
push edx
push ecx
push ebx
push dword [eax]
push esi
call fcn.100f30e0
add esp, 0x14
test eax, eax
jne 0x100f9e96
mov esi, dword [ebp - 0xa8]
cmp dword [esi + 0x60], 0
je 0x100f9d5a
mov dword [esi + 0x88], ebx
push ebx
call fcn.100f33b0
add esp, 4
mov dword [esi + 0x80], eax
mov eax, dword [edi + 0x1c]
add eax, eax
add eax, dword [edi + 0x28]
add eax, dword [ebp - 0x9c]
movzx ecx, word [esi + 0x58]
xor edx, edx
cmp ecx, 0x303
setae dl
lea eax, [eax + edx*2]
add eax, 8
push eax
push 0xc
push esi
call fcn.100f5860
add esp, 0xc
test eax, eax
jne 0x100f9e96
push 2
push dword [edi + 0x1c]
push dword [edi + 0x18]
push dword [ebp - 0xa8]
call fcn.1010ad70
add esp, 0x10
test eax, eax
jne 0x100f9e96
push 2
push dword [edi + 0x28]
push dword [edi + 0x24]
push dword [ebp - 0xa8]
call fcn.1010ad70
add esp, 0x10
test eax, eax
jne 0x100f9e96
mov esi, dword [edi + 0x1c]
mov ebx, dword [edi + 0x34]
lea eax, [ebp - 0x80]
push 2
push 0
push esi
push eax
call fcn.1010a4c0
add esp, 0x10
test eax, eax
jne 0x100f9e96
cmp esi, ebx
je 0x100f9e0f
sub ebx, esi
xor esi, esi
push 1
push esi
push esi
lea eax, [ebp - 0x80]
push eax
call fcn.1010a4c0
add esp, 0x10
test eax, eax
jne 0x100f9e96
inc ebx
jne 0x100f9df4
push dword [edi + 0x34]
push dword [edi + 0x30]
lea eax, [ebp - 0x80]
push eax
call fcn.1010a420
add esp, 0xc
test eax, eax
jne 0x100f9e96
mov edx, dword [ebp - 0x80]
mov ecx, dword [ebp - 0xa8]
push 0
push dword [ebp - 0x7c]
call fcn.1010ab50
add esp, 8
test eax, eax
jne 0x100f9e96
mov eax, dword [ebp - 0xa8]
movzx eax, word [eax + 0x58]
cmp eax, 0x303
jb 0x100f9e72
mov edx, dword [ebp - 0xa8]
mov eax, dword [edx + 0x488]
mov ecx, eax
sar ecx, 0x1f
push 2
push ecx
push eax
push edx
call fcn.1010acf0
add esp, 0x10
test eax, eax
jne 0x100f9e96
push 2
push dword [ebp - 0x9c]
push dword [ebp - 0xa0]
push dword [ebp - 0xa8]
call fcn.1010ad70
add esp, 0x10
test eax, eax
je 0x100fa1f6
mov eax, dword [ebp - 0xa0]
test eax, eax
je 0x100f9eaa
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
lea eax, [ebp - 0x80]
push eax
call fcn.1010a940
add esp, 4
xor edi, edi
dec edi
test edi, edi
mov esi, dword [ebp - 0xa8]
jne 0x100f9ae9
test byte [esi + 0x1c], 4
mov edi, esi
jne 0x100f9f07
push 0
push 0xe
push edi
call fcn.100f5860
add esp, 0xc
mov esi, edi
mov edi, eax
test eax, eax
jne 0x100f9ae9
cmp dword [esi + 0xa24], 1
jne 0x100f9fc7
push 0
push esi
call fcn.100f1200
add esp, 8
mov edi, eax
jmp 0x100fa1af
lea eax, [ebp - 0x80]
mov dword [ebp - 0xa4], eax
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0x9c], 0x26
mov dword [ebp - 0x98], 1
movzx esi, word [edi + 0x58]
lea eax, [ebp - 0x94]
lea ecx, [ebp - 0x8c]
lea edx, [ebp - 0x90]
push eax
push ecx
push edx
push edi
call fcn.10108d30
add esp, 0x10
mov edi, eax
test eax, eax
jne 0x100f9ae9
movzx eax, si
mov ebx, dword [ebp - 0x90]
add ebx, 6
mov dword [ebp - 0xac], eax
cmp eax, 0x303
jb 0x100fa00d
mov edi, dword [ebp - 0xa8]
movzx eax, word [edi + 0x58]
xor ecx, ecx
lea edx, [ebp - 0x58]
mov dword [edx + 0x44], ecx
mov dword [edx + 0x40], ecx
xorps xmm0, xmm0
movups xmmword [edx + 0x30], xmm0
movups xmmword [edx + 0x20], xmm0
movups xmmword [edx + 0x10], xmm0
movups xmmword [edx], xmm0
lea esi, [ebp - 0x88]
mov dword [esi], ecx
push esi
push edx
push 0x12
push 1
push ecx
push eax
push edi
call fcn.100fa6a0
add esp, 0x1c
test eax, eax
je 0x100fa0d8
xor edi, edi
dec edi
jmp 0x100f9ae9
mov eax, dword [esi + 0xa0]
test eax, eax
je 0x100fa1bd
mov ecx, dword [esi + 0xa4]
test ecx, ecx
je 0x100fa1bd
xor edi, edi
push edi
push ecx
push eax
push 0x16
push edi
push esi
call fcn.100f4350
add esp, 0x18
test eax, eax
js 0x100fa163
cmp eax, dword [esi + 0xa4]
jb 0x100fa18d
jmp 0x100fa19f
mov esi, dword [ebp - 0xa8]
push ebx
push 0xd
push esi
call fcn.100f5860
add esp, 0xc
mov edi, eax
test eax, eax
jne 0x100f9ae9
push 1
push 3
push 0x101c3e08
push esi
call fcn.1010ad70
add esp, 0x10
mov edi, eax
test eax, eax
jne 0x100f9ae9
cmp dword [ebp - 0xac], 0x303
jb 0x100fa073
mov edx, dword [ebp - 0xa4]
mov ecx, esi
push 0
push dword [ebp - 0xa0]
call fcn.1010ab50
add esp, 8
mov edi, eax
test eax, eax
jne 0x100f9ae9
push 2
push 0
push dword [ebp - 0x90]
push esi
call fcn.1010acf0
add esp, 0x10
mov edi, eax
test eax, eax
jne 0x100f9ae9
cmp dword [ebp - 0x94], 0
je 0x100fa0cd
mov esi, dword [ebp - 0x8c]
add esi, 8
xor ebx, ebx
push 2
push dword [esi]
push dword [esi - 4]
push dword [ebp - 0xa8]
call fcn.1010ad70
add esp, 0x10
test eax, eax
jne 0x100fa1ef
inc ebx
add esi, 0xc
cmp ebx, dword [ebp - 0x94]
jb 0x100fa0a4
mov edi, dword [ebp - 0xa8]
jmp 0x100f9ecf
mov edi, dword [ebp - 0x88]
test edi, edi
je 0x100fa1db
lea eax, [ebp - 0x84]
lea ecx, [ebp - 0xa4]
push eax
push 2
push ecx
call fcn.1010a770
add esp, 0xc
test eax, eax
jne 0x100f9fbf
xor esi, esi
mov eax, dword [ebp + esi*4 - 0x58]
mov ecx, eax
sar ecx, 0x1f
push 2
push ecx
push eax
lea eax, [ebp - 0xa4]
push eax
call fcn.1010a4c0
add esp, 0x10
test eax, eax
jne 0x100f9fbf
inc esi
cmp edi, esi
jne 0x100fa108
push 2
push dword [ebp - 0x84]
lea eax, [ebp - 0xa4]
push eax
call fcn.1010a800
add esp, 0xc
mov edi, eax
test eax, eax
mov esi, dword [ebp - 0xa8]
jne 0x100f9ae9
add ebx, dword [ebp - 0xa0]
jmp 0x100fa013
cmp dword [0x101f2f50], 0
je 0x100fa23c
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x100fa221
cmp dword [eax + 0x28], 0xffffe892
jne 0x100fa19c
push 0
push 0xffffe001
call sym.nss3.dll_PR_SetError
add esp, 8
xor edi, edi
dec edi
mov eax, dword [ebp - 0xa8]
mov dword [eax + 0xa4], 0
test edi, edi
mov esi, dword [ebp - 0xa8]
jne 0x100f9ae9
mov eax, dword [esi + 0x1c]
and eax, 4
xor edi, edi
cmp eax, 1
mov eax, 0
adc eax, 3
mov dword [esi + 0x450], eax
jmp 0x100f9ae9
push 0
push 0xffffd086
call sym.nss3.dll_PR_SetError
add esp, 8
jmp 0x100f9fbf
mov edi, eax
jmp 0x100f9ae9
lea eax, [ebp - 0x80]
push eax
call fcn.1010a940
add esp, 4
mov eax, dword [ebp - 0xa0]
xor edi, edi
test eax, eax
je 0x100f9eb9
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x100f9eb9
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
jmp 0x100fa184
call fcn.100029d0
jmp 0x100fa170