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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov ecx, dword [ebp + 8]
test ecx, ecx
je 0x100951f9
mov ebx, dword [ecx + 4]
test ebx, ebx
je 0x10095197
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x10095201
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], esi
mov ecx, dword [ebp + 8]
mov ebx, dword [ecx + 8]
mov dword [ecx + 8], 0
test ebx, ebx
je 0x100951ea
mov esi, dword [ebp + 0xc]
mov eax, dword [ecx + 0xc]
test eax, eax
je 0x100951ea
test esi, esi
je 0x100951c3
mov edi, dword [ebx + 8]
mov ecx, esi
call dword [section..00cfg]
mov dword [esp], edi
call esi
mov edi, dword [ebx]
mov eax, dword [ebx + 4]
mov dword [eax], edi
mov eax, dword [ebx]
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov dword [esp], ebx
call fcn.10094350
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 0xc]
dec eax
mov dword [ecx + 0xc], eax
mov ebx, edi
test edi, edi
jne 0x100951ab
mov eax, dword [ecx + 4]
test eax, eax
je 0x100951f9
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x10095182

Function at 0x10095220
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov edx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov edi, dword [esi + 4]
test edi, edi
je 0x10095262
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ebx, eax
test eax, eax
je 0x10095282
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], ebx
mov edx, dword [ebp + 0xc]
mov ecx, esi
call fcn.100952a0
mov eax, dword [esi + 4]
test eax, eax
je 0x10095278
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
xor eax, eax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov ebx, eax
jmp 0x1009524d
Function at 0x10095380
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x100953bc
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
je 0x10095417
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], edi
mov ebx, dword [esi + 8]
test ebx, ebx
je 0x100953eb
mov ecx, dword [esi + 0x10]
mov edi, dword [ebx + 8]
call dword [section..00cfg]
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov dword [esp], edi
call ecx
test eax, eax
jne 0x100953fc
mov eax, dword [esi + 8]
cmp ebx, dword [eax + 4]
je 0x100953eb
mov ebx, dword [ebx]
jmp 0x100953bf
mov ecx, esi
mov edx, dword [ebp + 0xc]
call fcn.100952a0
mov edi, eax
mov eax, dword [esi + 4]
jmp 0x10095401
mov eax, dword [esi + 4]
xor edi, edi
test eax, eax
je 0x1009540d
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov edi, eax
jmp 0x100953aa

Function at 0x10095430
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 4]
test ebx, ebx
je 0x10095470
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100954e4
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], esi
mov esi, dword [edi + 8]
test esi, esi
je 0x100954cb
mov ecx, dword [edi + 0x10]
mov ebx, dword [esi + 8]
call dword [section..00cfg]
mov eax, dword [ebp + 0xc]
mov dword [esp + 4], eax
mov dword [esp], ebx
call ecx
mov ecx, dword [edi + 8]
test eax, eax
jne 0x1009549f
cmp esi, dword [ecx + 4]
je 0x100954cb
mov esi, dword [esi]
jmp 0x10095473
cmp esi, ecx
jne 0x100954a8
mov eax, dword [esi]
mov dword [edi + 8], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ecx], eax
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [eax + 4], ecx
mov dword [esp], esi
call fcn.10094350
dec dword [edi + 0xc]
jne 0x100954cb
mov dword [edi + 8], 0
mov eax, dword [edi + 4]
test eax, eax
je 0x100954da
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
xor eax, eax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x1009545e
Function at 0x10095500
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x1009557e
mov esi, dword [ebp + 0x10]
mov eax, dword [edi + 4]
mov dword [ebp - 0x14], eax
test eax, eax
je 0x10095553
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x10095588
mov eax, dword [ebp - 0x14]
add eax, 0x1c
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 0x14]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 0xc]
dec esi
xor ecx, ecx
mov edx, dword [ebx + 8]
mov dword [eax + ecx*4], edx
cmp esi, ecx
je 0x1009556f
mov ebx, dword [ebx]
test ebx, ebx
je 0x1009556f
inc ecx
cmp ebx, dword [edi + 8]
jne 0x10095559
mov eax, dword [edi + 4]
test eax, eax
je 0x1009557e
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
xor eax, eax
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov dword [ebp - 0x10], eax
jmp 0x10095538
Function at 0x100955a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov dword [esp + 4], 0xc
mov dword [esp], 0
call fcn.10094240
xor ebx, ebx
test eax, eax
je 0x10095732
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 8]
mov edi, dword [eax + 4]
call fcn.100941c0
test eax, eax
je 0x100956e8
mov esi, eax
mov dword [esp], eax
mov dword [esp + 4], 0x1c
call fcn.10094240
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100956e0
test edi, edi
je 0x10095611
call sym.nss3.dll_PR_NewLock
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 4], eax
test eax, eax
je 0x100956e0
mov eax, dword [ebp - 0x10]
mov dword [eax], esi
mov dword [eax + 0x18], 1
mov dword [eax + 0x10], 0x10095050
mov eax, dword [ebp + 8]
mov edi, dword [eax + 4]
test edi, edi
je 0x1009565b
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x10095749
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], esi
mov eax, dword [ebp + 8]
cmp dword [eax + 0xc], 0
mov edi, dword [ebp - 0x10]
je 0x100956fc
mov ebx, dword [eax + 8]
mov edx, dword [ebx + 8]
mov esi, dword [edi + 4]
test esi, esi
je 0x100956aa
mov dword [ebp - 0x18], edx
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
je 0x100956cc
lea eax, [esi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [esi + 8], edi
mov edi, dword [ebp - 0x10]
mov edx, dword [ebp - 0x18]
mov ecx, edi
call fcn.100952a0
mov eax, dword [edi + 4]
test eax, eax
je 0x100956c0
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov ebx, dword [ebx]
mov eax, dword [ebp + 8]
cmp ebx, dword [eax + 8]
jne 0x1009566e
jmp 0x100956fc
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov edi, eax
jmp 0x10095692
mov dword [esp], esi
call fcn.10094400
mov esi, dword [ebp - 0x14]
mov dword [esi + 4], 0
mov dword [esp], esi
call fcn.10094350
jmp 0x10095732
mov eax, dword [eax + 4]
test eax, eax
je 0x1009570b
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov esi, dword [ebp - 0x14]
mov dword [esi + 4], edi
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 4], 0
mov ebx, 0
je 0x10095730
call sym.nss3.dll_PR_NewLock
mov dword [esi], eax
test eax, eax
je 0x1009573c
mov ebx, esi
mov eax, ebx
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [esi + 4]
mov dword [esp], eax
call fcn.10095060
jmp 0x100956f2
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x10095649
Function at 0x10095760
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, dword [ebp + 8]
mov edi, dword [esi]
test edi, edi
je 0x10095782
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_DeleteCriticalSection]
push edi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov eax, dword [esi + 4]
test eax, eax
je 0x10095792
push eax
call fcn.10095060
add esp, 4
pop esi
pop edi
pop ebp
jmp fcn.10094350

Function at 0x100957a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov edi, dword [ebp + 8]
mov ebx, dword [edi]
test ebx, ebx
je 0x100957db
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100957f9
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], esi
mov eax, dword [edi + 4]
cmp dword [eax + 0xc], 0
je 0x100957ef
mov eax, dword [eax + 8]
mov dword [edi + 8], eax
mov eax, dword [eax + 8]
jmp 0x100957f1
xor eax, eax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x100957c9
Function at 0x10095cc0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov ecx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x18]
mov ebx, dword [eax + 0x3c]
mov edi, dword [ecx]
test edi, edi
je 0x10095cf4
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10095d2e
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov ecx, dword [ebx + 0x66]
mov edi, dword [ebp + 0x14]
mov esi, dword [edi + 4]
call dword [section..00cfg]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
push esi
call ecx
add esp, 0x10
mov esi, eax
mov eax, dword [edi]
test eax, eax
je 0x10095d23
push eax
call sym.nss3.dll_PR_Unlock
add esp, 4
xor eax, eax
neg esi
sbb eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x10095ce7
Function at 0x10096b80
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov edi, dword [ebp + 8]
mov ebx, dword [edi + 4]
mov ecx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x30]
mov ecx, dword [ecx + 0x3c]
mov dword [ebp - 0x14], ecx
test eax, eax
je 0x10096ba9
push edi
push eax
call fcn.100998a0
add esp, 8
xor esi, esi
dec esi
cmp dword [edi + 8], 0
je 0x10096c63
mov edi, dword [ebx + 0x24]
test edi, edi
je 0x10096bc5
mov al, 1
cmp dword [edi + 0xc], 0
jne 0x10096be0
push 1
push 0
push dword [ebx + 0x14]
call fcn.100a1270
add esp, 0xc
test eax, eax
je 0x10096c63
mov edi, eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov esi, dword [edi]
test esi, esi
je 0x10096c08
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
je 0x10096c6d
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [esi + 8], ebx
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax + 0x5a]
mov eax, dword [ebp + 8]
mov esi, dword [eax]
mov ebx, dword [edi + 4]
call dword [section..00cfg]
push esi
push ebx
call ecx
add esp, 8
mov ebx, eax
mov eax, dword [edi]
test eax, eax
je 0x10096c34
push eax
call sym.nss3.dll_PR_Unlock
add esp, 4
cmp byte [ebp - 0x10], 0
mov esi, 0xffffffff
jne 0x10096c48
push edi
call fcn.100a12d0
add esp, 4
test ebx, ebx
je 0x10096c61
push ebx
call fcn.10094a30
add esp, 4
push 0x26
call fcn.10094a30
add esp, 4
jmp 0x10096c63
xor esi, esi
mov eax, esi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov ebx, eax
jmp 0x10096bfb
Function at 0x10097690
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, edx
mov edi, ecx
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 0x14]
mov eax, dword [eax + 0x3c]
mov dword [ebp - 0x20], eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.10095d50
add esp, 8
test eax, eax
sete bl
je 0x100976d6
test esi, esi
je 0x100976e1
mov al, 1
cmp dword [esi + 0xc], 0
jne 0x1009770b
jmp 0x100977a8
mov al, 1
test esi, esi
jne 0x1009770b
mov esi, dword [edi + 0x24]
jmp 0x10097701
mov esi, dword [edi + 0x24]
test esi, esi
je 0x100976f0
mov al, 1
cmp dword [esi + 0xc], 0
jne 0x1009770b
push 1
push 0
push dword [edi + 0x14]
call fcn.100a1270
add esp, 0xc
mov esi, eax
mov eax, ebx
test esi, esi
je 0x100977a8
mov byte [ebp - 0x15], al
mov dword [ebp - 0x1c], edi
mov edi, dword [esi]
test edi, edi
je 0x1009773a
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, eax
test eax, eax
je 0x100977c8
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], ebx
mov eax, dword [ebp - 0x20]
mov ecx, dword [eax + 0x52]
mov edi, dword [esi + 4]
call dword [section..00cfg]
lea eax, [ebp - 0x14]
push eax
push dword [ebp + 0xc]
push dword [ebp + 8]
push edi
call ecx
add esp, 0x10
mov ebx, eax
mov eax, dword [esi]
test eax, eax
je 0x1009776a
push eax
call sym.nss3.dll_PR_Unlock
add esp, 4
test ebx, ebx
mov eax, dword [ebp - 0x1c]
je 0x10097788
push ebx
call fcn.10094a30
add esp, 4
push 0x26
call fcn.10094a30
add esp, 4
xor edi, edi
jmp 0x10097797
push dword [ebp - 0x14]
push esi
push eax
call fcn.10098770
add esp, 0xc
mov edi, eax
cmp byte [ebp - 0x15], 0
jne 0x100977b4
push esi
call fcn.100a12d0
add esp, 4
jmp 0x100977b4
push 0x17
call fcn.10094a30
add esp, 4
xor edi, edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov ebx, eax
jmp 0x1009772d
Function at 0x100982c0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov ecx, dword [0x101f1014]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov ecx, dword [eax + 0x14]
mov ecx, dword [ecx + 0x3c]
test ebx, ebx
jne 0x100982eb
mov ebx, dword [eax + 0x24]
test ebx, ebx
je 0x10098350
mov esi, dword [ebx + 4]
test esi, esi
je 0x10098350
mov dword [ebp - 0x18], ecx
mov edi, dword [ebx]
test edi, edi
je 0x10098321
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009841a
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov esi, dword [ebx + 4]
mov edi, dword [ebp - 0x18]
mov ecx, dword [edi + 0x96]
call dword [section..00cfg]
push dword [ebp + 0x10]
push esi
call ecx
add esp, 8
test eax, eax
je 0x10098375
mov eax, dword [ebx]
xor edi, edi
test eax, eax
je 0x10098361
push eax
call sym.nss3.dll_PR_Unlock
add esp, 4
jmp 0x10098361
push 0
push 0xffffe041
call sym.nss3.dll_PR_SetError
add esp, 8
xor edi, edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, edi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x14], 0
test eax, eax
je 0x10098391
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov dword [ebp - 0x14], eax
test esi, esi
jne 0x100983a5
jmp 0x10098393
xor eax, eax
push eax
push dword [ebp + 0x1c]
call fcn.10094240
add esp, 8
mov esi, eax
test eax, eax
je 0x1009833d
mov eax, dword [ebp + 0x14]
mov ecx, dword [edi + 0x9a]
mov edx, dword [eax]
mov dword [ebp - 0x18], edx
mov edi, dword [eax + 4]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x1c], eax
call dword [section..00cfg]
lea eax, [ebp - 0x14]
push eax
push esi
push edi
push dword [ebp - 0x18]
push dword [ebp - 0x1c]
call ecx
add esp, 0x14
mov edi, eax
mov eax, dword [ebx]
test eax, eax
je 0x100983e4
push eax
call sym.nss3.dll_PR_Unlock
add esp, 4
test edi, edi
je 0x100983f6
push esi
call fcn.10094350
add esp, 4
jmp 0x1009835f
xor edi, edi
cmp dword [ebp + 0x18], 0
jne 0x10098361
push esi
push dword [ebp - 0x14]
push 0
push dword [ebp + 0x1c]
call fcn.10094e70
add esp, 0x10
mov edi, eax
jmp 0x10098361
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x10098311
Function at 0x10098840
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x10098868
push dword [esi + 4]
call fcn.10096ae0
add esp, 4
push dword [esi + 0xc]
call fcn.10094350
add esp, 4
pop esi
pop ebp
jmp fcn.10094350
pop esi
pop ebp
ret

Function at 0x10098900
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x1009892d
mov eax, dword [esi]
test eax, eax
je 0x10098926
add esi, 4
push eax
call fcn.10096450
add esp, 4
mov eax, dword [esi]
add esi, 4
test eax, eax
jne 0x10098914
pop esi
pop ebp
jmp fcn.10094350
pop esi
pop ebp
ret

Function at 0x10098930
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x1009895d
mov eax, dword [esi]
test eax, eax
je 0x10098956
add esi, 4
push eax
call fcn.10096ae0
add esp, 4
mov eax, dword [esi]
add esi, 4
test eax, eax
jne 0x10098944
pop esi
pop ebp
jmp fcn.10094350
pop esi
pop ebp
ret

Function at 0x10098960
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x100989a5
mov edi, dword [esi]
test edi, edi
je 0x1009899d
add esi, 4
push dword [edi + 4]
call fcn.10096ae0
add esp, 4
push dword [edi + 0xc]
call fcn.10094350
add esp, 4
push edi
call fcn.10094350
add esp, 4
mov edi, dword [esi]
add esi, 4
test edi, edi
jne 0x10098975
pop esi
pop edi
pop ebp
jmp fcn.10094350
pop esi
pop edi
pop ebp
ret

Function at 0x10098a30
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x10098a64
mov ecx, esi
call fcn.10098ae0
mov esi, dword [esi + 4]
test esi, esi
je 0x10098a5d
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
pop esi
pop ebp
jmp fcn.10094350
pop esi
pop ebp
ret

Function at 0x10098a70
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov esi, dword [ebp + 8]
test esi, esi
je 0x10098abe
mov ebx, dword [esi + 4]
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
je 0x10098ac6
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], edi
mov ecx, esi
call fcn.10098ae0
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov edi, eax
jmp 0x10098a9a
Function at 0x10098c40
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 4]
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x10098cbf
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], esi
cmp ebx, 0xce534351
je 0x10098c9a
cmp ebx, 0xce534353
je 0x10098ca2
xor esi, esi
cmp ebx, 1
mov ecx, dword [ebp + 8]
jne 0x10098caa
lea eax, [ecx + 0xc]
jmp 0x10098ca8
mov ecx, dword [ebp + 8]
lea eax, [ecx + 0x14]
jmp 0x10098ca8
mov ecx, dword [ebp + 8]
lea eax, [ecx + 0x10]
mov esi, dword [eax]
mov eax, dword [ecx + 4]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, esi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x10098c69
Function at 0x100998a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov ebx, dword [ebp + 8]
mov eax, dword [ebx]
mov esi, dword [eax + 0x14]
lock inc dword [esi + 8]
mov dword [esp], esi
call fcn.100964d0
mov edi, eax
mov dword [esp], esi
call fcn.10096450
test edi, edi
je 0x10099a4e
mov esi, dword [ebx + 4]
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
je 0x10099a56
lea eax, [esi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [esi + 8], edi
xor edi, edi
mov esi, dword [ebp + 8]
cmp dword [esi + edi*4 + 0xc], 0
je 0x100999bc
cmp dword [esi + edi*4 + 0x18], 0
je 0x100999bc
mov eax, dword [esi]
mov ebx, dword [eax + 0x14]
lock inc dword [ebx + 8]
mov eax, dword [ebx + 0x40]
mov dword [esp], eax
call sym.nss3.dll_PK11_IsFriendly
test eax, eax
jne 0x10099956
mov eax, dword [ebx + 0x40]
cmp dword [eax + 0x24], 0
je 0x1009994f
mov dword [esp], eax
mov dword [esp + 4], 0
call sym.nss3.dll_PK11_IsLoggedIn
test eax, eax
je 0x100999a0
mov dword [esi + 8], 1
mov dword [esp], ebx
call fcn.10096450
mov ebx, dword [esi + edi*4 + 0x24]
test ebx, ebx
je 0x100999bc
mov ecx, dword [ebx]
test ecx, ecx
je 0x100999bc
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 4]
add ebx, 0xfffffffc
mov dword [ebp - 0x10], eax
mov ecx, dword [ecx + 4]
cmp dword [ecx + 4], eax
jne 0x10099994
mov edx, dword [ecx]
mov eax, edi
mov edi, esi
mov esi, dword [ebp + 0xc]
cmp edx, dword [esi]
mov esi, edi
mov edi, eax
mov eax, dword [ebp - 0x10]
je 0x100999c8
mov ecx, dword [ebx + 8]
add ebx, 4
test ecx, ecx
jne 0x10099978
jmp 0x100999bc
cmp dword [esi + 8], 0
je 0x100999b4
mov ecx, esi
call fcn.10098ae0
mov dword [esi + 8], 0
mov dword [esp], ebx
call fcn.10096450
inc edi
cmp edi, 3
jne 0x10099904
jmp 0x10099a43
mov esi, ebx
cmp dword [esi + 8], 0
lea esi, [esi + 4]
jne 0x100999ca
mov dword [ecx + 4], 0
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 4]
test ecx, ecx
je 0x10099a0e
mov eax, dword [ecx + 4]
mov dword [esp], eax
mov dword [ebp - 0x10], ecx
call fcn.10096ae0
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call fcn.10094350
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call fcn.10094350
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov dword [esp], eax
call fcn.100944c0
mov eax, dword [esi]
mov dword [ebx + 4], eax
mov dword [esi], 0
mov esi, dword [ebp + 8]
mov eax, dword [esi + edi*4 + 0x24]
test eax, eax
je 0x10099a43
cmp dword [eax], 0
jne 0x10099a43
mov dword [esp], eax
call fcn.10094350
mov dword [esi + edi*4 + 0x24], 0
mov eax, dword [esi + 4]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov edi, eax
jmp 0x100998ed