Function at 0x100d3e20
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x30
mov ebx, dword [ebp + 0x14]
test ebx, ebx
je 0x100d3eb7
cmp dword [ebx + 4], 0
je 0x100d3eb7
mov eax, dword [ebx + 8]
test eax, eax
je 0x100d3eb7
cmp eax, 0x3fffffff
ja 0x100d3eb7
add eax, 2
mov ecx, 0xaaaaaaab
mul ecx
mov edi, edx
mov eax, edx
shr eax, 1
shr edi, 5
mov ecx, edi
shl ecx, 4
lea edx, [edi + edi]
sub eax, ecx
lea ecx, [edi + edi - 2]
cmovne ecx, edx
shl eax, 2
shl edi, 6
add edi, ecx
add edi, eax
je 0x100d3eb7
mov edx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
test eax, eax
je 0x100d3ef6
mov dword [esp], eax
mov esi, edx
call sym.nss3.dll_PORT_ArenaMark_Util
mov edx, esi
mov esi, eax
test edx, edx
jne 0x100d3efc
mov eax, edi
or eax, 1
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call sym.nss3.dll_PORT_ArenaAlloc_Util
test eax, eax
je 0x100d4041
mov edx, eax
jmp 0x100d3f4c
cmp dword [0x101f4f80], 0
je 0x100d436d
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100d4304
mov dword [eax + 0x28], 0xffffe005
xor esi, esi
mov dword [eax + 0x2c], esi
mov dword [eax + 0x30], esi
mov eax, esi
add esp, 0x30
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
test edx, edx
je 0x100d3f37
mov eax, dword [ebp + 0x10]
or edi, 1
cmp edi, eax
mov edi, eax
jbe 0x100d3f4c
cmp dword [0x101f4f80], 0
je 0x100d4377
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100d4319
mov dword [eax + 0x28], 0xffffe003
jmp 0x100d3ee4
mov eax, edi
or eax, 1
mov dword [esp], eax
call sym.nss3.dll_PORT_Alloc_Util
mov edx, eax
xor esi, esi
test eax, eax
je 0x100d3eec
mov eax, dword [ebx + 8]
test eax, eax
je 0x100d401c
mov dword [ebp - 0x1c], edx
cmp eax, 0x3fffffff
ja 0x100d3fd4
mov dword [ebp - 0x10], eax
mov eax, dword [ebp - 0x10]
add eax, 2
mov ecx, 0xaaaaaaab
mul ecx
mov eax, edx
shr eax, 1
shr edx, 5
mov ecx, edx
shl ecx, 4
mov dword [ebp - 0x20], ecx
lea ecx, [edx + edx]
mov dword [ebp - 0x14], ecx
sub eax, dword [ebp - 0x20]
lea ecx, [edx + edx - 2]
cmovne ecx, dword [ebp - 0x14]
shl eax, 2
shl edx, 6
add edx, ecx
add edx, eax
je 0x100d3fd4
cmp edx, edi
jbe 0x100d4059
cmp dword [0x101f4f80], 0
je 0x100d438b
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100d4343
mov dword [eax + 0x28], 0xffffe8b6
jmp 0x100d4001
cmp dword [0x101f4f80], 0
je 0x100d4381
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100d432e
mov dword [eax + 0x28], 0xffffe005
xor ecx, ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
mov edx, dword [ebp - 0x1c]
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x100d4029
mov dword [esp], 0
jmp 0x100d404b
xor ebx, ebx
mov byte [edx + ebx], 0
mov esi, edx
jmp 0x100d3eec
xor esi, esi
test edx, edx
je 0x100d3eec
mov dword [esp], edx
call dword [sym.imp.mozglue.dll_free]
jmp 0x100d3eec
mov dword [esp], 0
mov ecx, dword [ebp + 8]
mov edx, esi
call fcn.100dd3f0
xor esi, esi
jmp 0x100d3eec
mov eax, dword [ebx + 4]
mov dword [ebp - 0x14], eax
mov dword [esp + 4], 0x24
mov dword [esp], 1
call dword [sym.imp.mozglue.dll_calloc]
test eax, eax
mov edx, dword [ebp - 0x1c]
je 0x100d400c
mov ebx, eax
mov dword [eax + 8], 0x40
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], edi
mov ecx, dword [ebp - 0x10]
cmp ecx, 2
mov dword [ebp - 0x20], eax
ja 0x100d40ab
mov ecx, dword [ebp - 0x14]
mov al, byte [ecx]
mov byte [ebx], al
jne 0x100d40f9
mov al, byte [ecx + 1]
mov byte [ebx + 1], al
mov eax, 2
jmp 0x100d40fc
mov eax, dword [ebp - 0x14]
add eax, ecx
mov dword [ebp - 0x24], eax
mov edx, 0xaaaaaaab
mov eax, ecx
mul edx
shr edx, 1
lea eax, [edx + edx*2]
mov dword [ebp - 0x18], eax
mov eax, ecx
sub eax, dword [ebp - 0x18]
je 0x100d4104
mov edx, ecx
sub edx, eax
mov dword [ebp - 0x10], edx
mov ecx, dword [ebp - 0x14]
mov cl, byte [ecx + edx]
mov byte [ebx], cl
cmp eax, 1
mov edx, dword [ebp - 0x14]
je 0x100d40ec
mov ecx, dword [ebp - 0x10]
mov cl, byte [ecx + edx + 1]
mov byte [ebx + 1], cl
mov dword [ebx + 4], eax
mov ecx, dword [ebp - 0x24]
sub ecx, eax
mov eax, dword [ebp - 0x1c]
jmp 0x100d410d
xor eax, eax
inc eax
mov dword [ebx + 4], eax
jmp 0x100d427e
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
cmp ecx, edx
jbe 0x100d427e
add edi, 0xfffffffd
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x2c], edi
mov dword [ebp - 0x24], ecx
xor eax, eax
mov ebx, 0xfffffffd
mov edi, edx
mov edx, eax
shl edx, 8
movzx ecx, byte [edi + ebx + 3]
lea eax, [edx + ecx]
inc ebx
jne 0x100d412a
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x20]
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x100d418a
mov dword [ebp - 0x28], ebx
mov ebx, dword [edi + 0xc]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x28]
cmp dword [ebp - 0x18], ebx
jae 0x100d415d
mov ebx, dword [ebp - 0x18]
jmp 0x100d417b
mov ebx, edi
mov dword [edi + 0xc], 0
mov edi, dword [ebp - 0x10]
mov word [edi], 0xa0d
add edi, 2
mov dword [ebp - 0x10], edi
add dword [ebx + 0x20], 2
mov ebx, dword [ebx + 0xc]
add ebx, 4
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x20]
mov edi, dword [ebp - 0x18]
mov dword [ebx + 0xc], edi
mov ebx, edx
shr ebx, 0x12
and ebx, 0x3f
mov bl, byte [ebx + 0x101c0870]
mov edi, dword [ebp - 0x10]
mov byte [edi], bl
shr edx, 0xc
and edx, 0x3f
mov dl, byte [edx + 0x101c0870]
mov ebx, dword [ebp - 0x10]
mov byte [ebx + 1], dl
shr eax, 6
and eax, 0x3f
mov al, byte [eax + 0x101c0870]
mov byte [ebx + 2], al
mov edx, dword [ebp - 0x14]
add edx, 3
and ecx, 0x3f
mov al, byte [ecx + 0x101c0870]
mov byte [ebx + 3], al
add ebx, 4
mov dword [ebp - 0x10], ebx
mov ebx, dword [ebp - 0x20]
mov eax, dword [ebx + 0x20]
add eax, 4
mov dword [ebx + 0x20], eax
mov edi, dword [ebp - 0x2c]
cmp eax, edi
jb 0x100d4230
mov ecx, dword [ebx + 0x10]
test ecx, ecx
je 0x100d423d
mov dword [ebp - 0x14], edx
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0x18], edx
mov edx, dword [ebx + 0x18]
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x28], eax
call dword [section..00cfg]
mov eax, dword [ebp - 0x28]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x10]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x18]
mov dword [esp], eax
call ecx
test eax, eax
js 0x100d42ff
mov dword [ebx + 0x20], 0
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x24]
cmp edx, ecx
jb 0x100d4121
jmp 0x100d427e
mov ecx, dword [ebp - 0x24]
cmp edx, ecx
jae 0x100d4233
cmp dword [0x101f4f80], 0
je 0x100d4395
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x100d4358
mov dword [eax + 0x28], 0xffffe8b6
xor ecx, ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
mov ebx, dword [ebp - 0x20]
jmp 0x100d4289
mov ecx, ebx
call fcn.100d43c0
test eax, eax
je 0x100d42a7
mov eax, dword [ebx + 0x18]
test eax, eax
je 0x100d4299
mov dword [esp], eax
call dword [sym.imp.mozglue.dll_free]
mov dword [esp], ebx
call dword [sym.imp.mozglue.dll_free]
jmp 0x100d4009
mov eax, dword [ebx + 0x18]
mov dword [ebp - 0x14], eax
mov edi, ebx
mov ebx, dword [ebx + 0x20]
mov dword [edi + 0x18], 0
mov ecx, edi
call fcn.100d43c0
mov dword [ebp - 0x10], eax
mov eax, dword [edi + 0x18]
test eax, eax
je 0x100d42d3
mov dword [esp], eax
call dword [sym.imp.mozglue.dll_free]
mov eax, dword [ebp - 0x20]
mov dword [esp], eax
call dword [sym.imp.mozglue.dll_free]
cmp dword [ebp - 0x10], 0xffffffff
je 0x100d42f7
cmp dword [ebp - 0x14], 0
mov edx, dword [ebp - 0x1c]
jne 0x100d401e
jmp 0x100d400c
mov eax, dword [ebp - 0x14]
mov dword [esp], eax
jmp 0x100d429c
mov eax, dword [ebp - 0x10]
jmp 0x100d428c
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x100d3edd
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x100d3f2e
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x100d3ffa
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x100d3fcb
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x100d426a
call fcn.1001b2e0
jmp 0x100d3ec4
call fcn.1001b2e0
jmp 0x100d3f15
call fcn.1001b2e0
jmp 0x100d3fe1
call fcn.1001b2e0
jmp 0x100d3fb2
call fcn.1001b2e0
jmp 0x100d4251