joyce8/EMBER2024-capa huggingface dataset:
Function at 0x101091e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov eax, dword [0x101d2014]
mov ecx, dword [ebp + 8]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov edi, dword [ecx + 0x10]
mov ebx, dword [edi + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109386
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov ebx, dword [ebp + 0xc]
push ebx
push dword [edi + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov esi, eax
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
je 0x10109245
cmp dword [esi], ebx
mov eax, ebx
je 0x10109257
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 8]
mov edi, dword [eax + 0x10]
mov ebx, dword [edi + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1010939c
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov ebx, dword [ebp + 0xc]
push ebx
push dword [edi + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov esi, eax
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov edi, dword [ebp + 8]
test esi, esi
je 0x101092db
push ebx
push dword [edi + 0x10]
call fcn.100ffcd0
add esp, 8
mov eax, dword [esi + 4]
test eax, eax
je 0x101092c2
push eax
call fcn.101079e0
add esp, 4
mov eax, dword [esi + 8]
test eax, eax
je 0x101092d2
push eax
call fcn.101079e0
add esp, 4
push esi
call fcn.100ff3c0
add esp, 4
mov edi, dword [edi + 0xc]
lea eax, [ebx + 0x40]
mov dword [ebp - 0x18], eax
mov ebx, dword [edi + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x101093b2
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov ebx, dword [ebp - 0x18]
push ebx
push dword [edi + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov esi, eax
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, dword [ebp + 0xc]
test esi, esi
je 0x10109245
mov edi, ebx
push eax
push esi
call fcn.10100400
add esp, 8
push ebx
mov ebx, dword [ebp + 8]
push dword [ebx + 0xc]
call fcn.100ffcd0
add esp, 8
cmp dword [esi + 0xc], 0
je 0x10109378
lea edi, [ebp - 0x14]
push 1
push edi
push esi
call fcn.101004c0
add esp, 0xc
mov eax, dword [edi]
add eax, 0x40
push esi
push eax
push dword [ebx + 0xc]
call fcn.100ffc40
add esp, 0xc
jmp 0x10109245
push esi
call fcn.10100060
add esp, 4
jmp 0x10109245
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109212
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109276
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x101092fd
Function at 0x101093d0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x101094ad
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov ebx, dword [edi + 0xc]
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x101094c3
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
push dword [ebp + 0xc]
push dword [ebx + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov edi, eax
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor esi, esi
test edi, edi
je 0x10109498
push edi
call fcn.10105380
add esp, 4
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x10109498
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ebx, ecx
cmp ecx, edx
cmova ebx, edx
test edx, edx
cmove ebx, ecx
test eax, eax
je 0x10109474
push ebx
push eax
push edi
jmp 0x10109490
lea eax, [ebx*4 + 4]
push eax
push dword [ebp + 0x18]
call fcn.100ff2b0
add esp, 8
test eax, eax
je 0x10109498
push ebx
push eax
push edi
mov esi, eax
call fcn.101004c0
add esp, 0xc
mov eax, dword [ebp + 8]
push dword [eax + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, esi
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x101093f2
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x1010941b
Function at 0x101094e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov ecx, dword [0x101d2014]
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x101095cb
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
lea esi, [ebp - 0x18]
push esi
push 0x101095f0
push dword [ebx + 0xc]
call fcn.100ffd40
add esp, 0xc
mov eax, dword [esi + 4]
mov esi, ebx
mov dword [ebp - 0x1c], 0
test eax, eax
je 0x101095ab
push eax
call fcn.10105380
add esp, 4
mov edi, dword [ebp - 0x14]
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x101095ab
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov ebx, ecx
cmp ecx, edx
cmova ebx, edx
test edx, edx
cmove ebx, ecx
test eax, eax
je 0x10109584
push ebx
push eax
push edi
call fcn.101004c0
add esp, 0xc
jmp 0x101095ab
lea eax, [ebx*4 + 4]
push eax
push dword [ebp + 0x18]
call fcn.100ff2b0
add esp, 8
test eax, eax
je 0x101095ab
push ebx
push eax
push edi
mov edi, eax
call fcn.101004c0
add esp, 0xc
mov dword [ebp - 0x1c], edi
push dword [esi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, dword [ebp - 0x1c]
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x1010951d
Function at 0x10109670
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov ecx, dword [0x101d2014]
mov eax, dword [ebp + 0xc]
xor esi, esi
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], eax
push esi
push esi
call fcn.100fffc0
add esp, 8
test eax, eax
mov dword [ebp - 0x14], eax
je 0x10109758
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
je 0x1010976c
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], edi
lea edi, [ebp - 0x18]
push edi
push 0x10109790
mov ebx, dword [ebp + 8]
push dword [ebx + 0xc]
call fcn.100ffd40
add esp, 0xc
mov eax, dword [edi + 4]
mov edi, ebx
test eax, eax
je 0x101096f3
push eax
call fcn.10105380
add esp, 4
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov ebx, dword [ebp - 0x14]
test ebx, ebx
je 0x10109758
mov ecx, dword [ebx + 0xc]
xor esi, esi
test ecx, ecx
je 0x1010974d
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov edi, ecx
cmp ecx, edx
cmova edi, edx
test edx, edx
cmove edi, ecx
test eax, eax
je 0x10109729
push edi
push eax
push ebx
jmp 0x10109745
lea eax, [edi*4 + 4]
push eax
push dword [ebp + 0x18]
call fcn.100ff2b0
add esp, 8
test eax, eax
je 0x1010974d
push edi
push eax
push ebx
mov esi, eax
call fcn.101004c0
add esp, 0xc
push dword [ebp - 0x14]
call fcn.10100060
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov edi, eax
jmp 0x101096bd
Function at 0x10109830
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x5c
mov eax, dword [0x101d2014]
mov ebx, dword [ebp + 8]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x101098fe
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp + 0xc]
mov dword [edi + 8], esi
movsd xmm0, qword [eax]
mov eax, dword [ebp + 0x10]
movsd qword [ebp - 0x30], xmm0
movsd xmm0, qword [eax]
movsd qword [ebp - 0x20], xmm0
mov ebx, dword [ebx + 0x10]
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109914
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
lea eax, [ebp - 0x68]
mov dword [edi + 8], esi
push eax
push dword [ebx + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov edi, eax
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor esi, esi
test edi, edi
je 0x101098dc
mov eax, dword [edi]
mov ecx, dword [ebp + 8]
test eax, eax
je 0x101098df
lock inc dword [eax + 4]
mov esi, eax
jmp 0x101098df
mov ecx, dword [ebp + 8]
push dword [ecx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
add esp, 0x5c
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x1010985f
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x1010989c
Function at 0x10109930
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x6c
mov ecx, dword [0x101d2014]
mov eax, dword [ebp + 0xc]
lea edx, [ebp - 0x70]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
lea ecx, [ebp - 0x78]
push ecx
push edx
push eax
call fcn.10105c20
add esp, 0xc
xor esi, esi
test eax, eax
jne 0x10109a2f
mov ebx, dword [ebp + 8]
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109a43
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov eax, dword [ebp - 0x70]
mov ecx, dword [ebp - 0x6c]
mov dword [ebp - 0x2c], ecx
mov dword [ebp - 0x30], eax
mov eax, dword [ebp - 0x78]
mov ecx, dword [ebp - 0x74]
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], eax
mov ebx, dword [ebx + 0x10]
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109a59
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
lea eax, [ebp - 0x68]
mov dword [edi + 8], esi
push eax
push dword [ebx + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov edi, eax
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor esi, esi
test edi, edi
je 0x101099ff
mov eax, dword [edi]
mov ecx, dword [ebp + 8]
test eax, eax
je 0x10109a02
lock inc dword [eax + 4]
mov esi, eax
jmp 0x10109a02
mov ecx, dword [ebp + 8]
push dword [ecx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, dword [ebp - 0x70]
test eax, eax
je 0x10109a1e
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x10109a2f
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
add esp, 0x6c
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x1010997e
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x101099bf
Function at 0x10109a70
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x10], eax
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109b22
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov edi, dword [ebx + 0x10]
mov ebx, dword [edi + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109b38
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
push dword [ebp - 0x10]
push dword [edi + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov esi, eax
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov edi, dword [ebp + 8]
test esi, esi
je 0x10109b0a
mov ebx, dword [ebp + 0xc]
lock inc dword [ebx + 4]
mov eax, dword [esi + 4]
test eax, eax
je 0x10109b07
push eax
call fcn.101079e0
add esp, 4
mov dword [esi + 4], ebx
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
cmp esi, 1
sbb eax, eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109a9c
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109ac1

Function at 0x10109b50
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109be3
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov ebx, dword [edi + 0x10]
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109bf9
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
push dword [ebp + 0xc]
push dword [ebx + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov edi, eax
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor esi, esi
test edi, edi
je 0x10109bce
mov eax, dword [edi + 4]
test eax, eax
je 0x10109bce
lock inc dword [eax + 4]
mov esi, eax
mov eax, dword [ebp + 8]
push dword [eax + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, esi
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109b6e
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109b93
Function at 0x10109c10
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov eax, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [eax + 0x24]
mov edi, dword [ebx + 8]
mov dword [ebp - 0x10], eax
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109cc2
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov edi, dword [ebx + 0x10]
mov ebx, dword [edi + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109cd8
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
push dword [ebp - 0x10]
push dword [edi + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov esi, eax
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov edi, dword [ebp + 8]
test esi, esi
je 0x10109caa
mov ebx, dword [ebp + 0xc]
lock inc dword [ebx + 4]
mov eax, dword [esi + 8]
test eax, eax
je 0x10109ca7
push eax
call fcn.101079e0
add esp, 4
mov dword [esi + 8], ebx
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
cmp esi, 1
sbb eax, eax
add esp, 4
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109c3c
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109c61

Function at 0x10109cf0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109d83
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov ebx, dword [edi + 0x10]
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10109d99
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
push dword [ebp + 0xc]
push dword [ebx + 0xc]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
mov edi, eax
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor esi, esi
test edi, edi
je 0x10109d6e
mov eax, dword [edi + 8]
test eax, eax
je 0x10109d6e
lock inc dword [eax + 4]
mov esi, eax
mov eax, dword [ebp + 8]
push dword [eax + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, esi
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109d0e
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109d33
Function at 0x10109f70
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
test eax, eax
je 0x10109fbf
mov ebx, dword [eax + 8]
mov edi, dword [ebx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1010a03e
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov esi, dword [ebx + 0x10]
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
je 0x10109fce
push 0x24
jmp 0x10109fc1
push 1
call fcn.100ffa40
add esp, 4
xor eax, eax
dec eax
jmp 0x1010a039
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x14]
mov esi, dword [eax]
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_DeleteCriticalSection]
push esi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [edi + 0x14]
push dword [eax + 8]
call fcn.100ffbf0
add esp, 4
mov eax, dword [edi + 0x14]
push dword [eax + 0xc]
call fcn.100ffbf0
add esp, 4
mov eax, dword [edi + 0x14]
push dword [eax + 0x10]
call fcn.100ffbf0
add esp, 4
mov eax, dword [edi + 0x14]
push dword [eax + 0x14]
call fcn.100ffbf0
add esp, 4
mov eax, dword [edi + 0x14]
push dword [eax + 4]
call fcn.100ff520
add esp, 4
xor eax, eax
mov dword [edi + 0x14], 0
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10109f9c
Function at 0x1010a2b0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [0x101d2014]
xor eax, ebp
mov dword [ebp - 0x10], eax
push 0x28
push 0
call fcn.100ff2b0
add esp, 8
test eax, eax
je 0x1010a3c2
mov edi, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [edi + 0x14]
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], ecx
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x14], 0xa
mov ebx, dword [edx]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1010a3d9
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
lea esi, [ebp - 0x24]
mov eax, dword [edi + 0x14]
push esi
push 0x1010a3f0
push dword [eax + 8]
call fcn.100ffd40
add esp, 0xc
cmp dword [esi + 0xc], 0
je 0x1010a36b
xor esi, esi
mov eax, dword [ebp - 0x1c]
mov eax, dword [eax + esi*4]
cmp dword [eax + 0x14], 0
je 0x1010a351
test eax, eax
je 0x1010a365
lock inc dword [eax + 4]
jmp 0x1010a365
push eax
push edi
call fcn.1010a060
add esp, 8
mov eax, dword [ebp - 0x1c]
mov dword [eax + esi*4], 0
inc esi
cmp esi, dword [ebp - 0x18]
jb 0x1010a33b
mov eax, dword [edi + 0x14]
push dword [eax]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov edx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x1c]
test edx, edx
je 0x1010a3b5
xor edi, edi
xor esi, esi
inc esi
mov ecx, dword [eax + edi*4]
test ecx, ecx
je 0x1010a3b0
cmp dword [ecx + 0x54], 0
je 0x1010a3a1
mov edx, esi
call fcn.101064f0
mov eax, dword [ebp - 0x1c]
mov ecx, dword [eax + edi*4]
push ecx
call fcn.10104ae0
add esp, 4
mov eax, dword [ebp - 0x1c]
mov edx, dword [ebp - 0x18]
inc edi
cmp edi, edx
jb 0x1010a387
push eax
call fcn.100ff3c0
add esp, 4
xor esi, esi
jmp 0x1010a3c5
xor esi, esi
dec esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x1010a30f
Function at 0x1010a4a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
xor eax, eax
push eax
push eax
call fcn.100fffc0
add esp, 8
test eax, eax
je 0x1010a5a0
mov esi, dword [ebp + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [esi + 0x14]
mov ebx, dword [eax]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
je 0x1010a5bb
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], edi
mov edi, dword [ebp - 0x14]
mov eax, dword [esi + 0x14]
push edi
push 0x1010b3d0
push dword [eax + 8]
call fcn.100ffd40
add esp, 0xc
mov eax, dword [esi + 0x14]
push dword [eax]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov esi, dword [edi + 0xc]
xor ebx, ebx
test esi, esi
je 0x1010a5a8
lea eax, [esi*4 + 4]
push eax
push 0
call fcn.100ff2b0
add esp, 8
test eax, eax
je 0x1010a5a5
mov ebx, eax
push esi
push eax
push edi
call fcn.101004c0
add esp, 0xc
mov edi, dword [ebx]
mov dword [ebp - 0x10], ebx
test edi, edi
je 0x1010a58e
mov esi, dword [ebp - 0x10]
xor ebx, ebx
add esi, 4
lea eax, [edi + 0x48]
lea ecx, [edi + 0x38]
push ebx
push 2
push eax
push ecx
push ebx
push dword [ebp + 0xc]
call fcn.10102450
add esp, 0x18
test eax, eax
je 0x1010a585
push eax
push edi
call fcn.101078a0
add esp, 8
cmp dword [edi + 0x54], 0
je 0x1010a585
xor edx, edx
mov ecx, edi
inc edx
call fcn.101064f0
mov edi, dword [esi]
add esi, 4
test edi, edi
jne 0x1010a550
push dword [ebp - 0x10]
call fcn.10107f20
add esp, 4
mov edi, dword [ebp - 0x14]
xor ebx, ebx
jmp 0x1010a5a8
xor ebx, ebx
dec ebx
jmp 0x1010a5b1
xor ebx, ebx
dec ebx
push edi
call fcn.10100060
add esp, 4
mov eax, ebx
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov edi, eax
jmp 0x1010a4de

Function at 0x1010a5e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov esi, dword [ebp + 0xc]
test esi, esi
jne 0x1010a5ff
xor edi, edi
push edi
push edi
call fcn.100fffc0
add esp, 8
mov esi, eax
test eax, eax
je 0x1010a67d
mov eax, dword [ebp + 8]
mov eax, dword [eax + 0x14]
mov ebx, dword [eax]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
je 0x1010a684
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], edi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0x14]
push esi
push 0x1010b3d0
push dword [eax + 8]
call fcn.100ffd40
add esp, 0xc
mov eax, dword [edi + 0x14]
push dword [eax]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor edi, edi
cmp dword [ebp + 0xc], 0
jne 0x1010a67d
mov ebx, dword [esi + 0xc]
lea eax, [ebx*4]
push eax
push 0
call fcn.100ff2b0
add esp, 8
mov edi, eax
push ebx
push eax
push esi
call fcn.101004c0
add esp, 0xc
push esi
call fcn.10100060
add esp, 4
mov eax, edi
pop esi
pop edi
pop ebx
pop ebp
ret
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov edi, eax
jmp 0x1010a619