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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, dword [ebp + 8]
test eax, eax
je 0x100c969f
cmp dword [ebp + 0xc], 0
je 0x100c969f
mov edi, dword [eax + 8]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100c96c0
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], esi
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebx + 0xc]
lea eax, [edi - 1]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
xor esi, esi
cmp edi, 1
jne 0x100c96b6
mov eax, dword [ebx + 8]
lock dec dword [eax + 0x48]
jne 0x100c9694
mov dword [esp], eax
call fcn.100c9d60
mov dword [esp], ebx
call dword [sym.imp.mozglue.dll_free]
jmp 0x100c96b6
mov dword [esp + 4], 0
mov dword [esp], 0xffffe005
call sym.nss3.dll_PR_SetError
xor esi, esi
dec esi
mov eax, esi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov esi, eax
jmp 0x100c9650

Function at 0x100c9720
Capabilities:
Get thread local storage value

Disassembly:
test ecx, ecx
je 0x100c97f3
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov edi, ecx
mov ebx, dword [ecx]
test ebx, ebx
je 0x100c97c6
mov dword [ebp - 0x10], edi
mov eax, dword [ebx]
mov dword [ebp - 0x14], eax
mov esi, dword [edi + 8]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
je 0x100c97b2
lea eax, [esi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [esi + 8], edi
mov esi, dword [ebx + 0xc]
lea eax, [esi - 1]
mov dword [ebx + 0xc], eax
mov edi, dword [ebp - 0x10]
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
cmp esi, 1
jne 0x100c97a7
mov eax, dword [ebx + 8]
lock dec dword [eax + 0x48]
jne 0x100c979e
mov dword [esp], eax
call fcn.100c9d60
mov dword [esp], ebx
call dword [sym.imp.mozglue.dll_free]
mov eax, dword [ebp - 0x14]
mov ebx, eax
test eax, eax
jne 0x100c9740
jmp 0x100c97c6
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov edi, eax
jmp 0x100c975f
mov esi, dword [edi + 8]
test esi, esi
je 0x100c97e5
lea eax, [esi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DeleteCriticalSection]
sub esp, 4
mov dword [esp], esi
call dword [sym.imp.mozglue.dll_free]
xor eax, eax
mov dword [edi + 8], eax
mov dword [edi], eax
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x100c9800
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [esp], 0x10
call sym.nss3.dll_PORT_Alloc_Util
test eax, eax
je 0x100c9898
mov esi, eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
lock inc dword [eax + 0x48]
mov dword [esi + 8], eax
mov dword [esi + 4], 0
mov dword [esi + 0xc], 1
mov eax, dword [ecx + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100c98e1
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp - 0x14]
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [edi + 8], eax
mov edi, dword [ebp + 8]
mov eax, edi
mov eax, dword [eax]
test ebx, ebx
je 0x100c989d
test eax, eax
je 0x100c989d
mov ecx, dword [eax + 8]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x64]
mov edx, dword [esi + 8]
mov edx, dword [edx + 4]
cmp ecx, dword [edx + 0x64]
jg 0x100c9878
jmp 0x100c98a1
xor eax, eax
dec eax
jmp 0x100c98c8
test eax, eax
je 0x100c98d0
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov dword [eax + 4], esi
mov dword [esi], eax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x100c98b5
mov dword [ecx], esi
cmp dword [edi], eax
jne 0x100c98bb
mov dword [edi], esi
mov eax, dword [edi + 8]
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
mov ecx, dword [edi + 4]
mov dword [esi + 4], ecx
mov dword [esi], 0
mov dword [edi + 4], esi
jmp 0x100c98ac
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x10], eax
jmp 0x100c9858
Function at 0x100c9910
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, edx
mov ebx, ecx
mov eax, dword [ecx + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100c99f5
mov edi, dword [ebp - 0x14]
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [edi + 8], eax
mov eax, dword [esi + 4]
test eax, eax
cmove eax, ebx
mov ecx, dword [esi]
mov dword [eax], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 4]
test eax, eax
cmove eax, ebx
mov dword [eax + 4], ecx
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
mov dword [ebp - 0x14], ebx
je 0x100c9a0d
mov ebx, dword [ebp - 0x10]
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 + 0xc]
lea eax, [ebx - 1]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
cmp ebx, 1
jne 0x100c99ed
mov eax, dword [esi + 8]
lock dec dword [eax + 0x48]
jne 0x100c99e4
mov dword [esp], eax
call fcn.100c9d60
mov dword [esp], esi
call dword [sym.imp.mozglue.dll_free]
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x10], eax
jmp 0x100c993f
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov edi, eax
jmp 0x100c99a2

Function at 0x100c9a30
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 + 8]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100c9a86
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]
test esi, esi
je 0x100c9a71
inc dword [esi + 0xc]
mov eax, dword [edi + 8]
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 [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov esi, eax
jmp 0x100c9a56
Function at 0x100c9aa0
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 + 0xc]
mov eax, dword [ebp + 8]
mov edi, dword [eax + 8]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100c9ba0
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 [ebx]
test eax, eax
je 0x100c9b70
inc dword [eax + 0xc]
mov ecx, eax
mov dword [ebp - 0x10], ecx
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov esi, dword [ebx + 8]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov edi, eax
test eax, eax
je 0x100c9bb7
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 + 0xc]
mov esi, dword [edi + 0xc]
lea eax, [esi - 1]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
cmp esi, 1
jne 0x100c9b65
mov eax, dword [edi + 8]
lock dec dword [eax + 0x48]
jne 0x100c9b5c
mov dword [esp], eax
call fcn.100c9d60
mov dword [esp], edi
call dword [sym.imp.mozglue.dll_free]
mov eax, dword [ebp - 0x10]
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
xor ecx, ecx
cmp dword [ebp + 0x10], 0
je 0x100c9aee
cmp dword [ebx + 4], 0
jne 0x100c9aee
mov eax, dword [ebp + 8]
mov eax, dword [eax]
cmp eax, ebx
je 0x100c9aee
test eax, eax
jne 0x100c9ae9
jmp 0x100c9aee
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov esi, eax
jmp 0x100c9acd
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov edi, eax
jmp 0x100c9b1d

Function at 0x100c9ed0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
mov ecx, dword [ebp + 8]
pop ebp
jmp fcn.100cbe80
Function at 0x100ca370
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 eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp dword [edi + 0x30], 0
je 0x100ca392
cmp dword [edi + 0x2c], 0
je 0x100ca3c9
mov ebx, dword [edi + 0x3c]
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x100ca444
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
cmp dword [edi + 0x2c], 0
je 0x100ca3c5
mov esi, dword [edi + 0x38]
test esi, esi
jne 0x100ca430
xor ebx, ebx
jmp 0x100ca3cb
mov bl, 1
mov eax, dword [edi]
mov esi, dword [edi + 0x40]
mov ecx, dword [eax + 0x32]
call dword [section..00cfg]
lea eax, [ebp - 0x14]
push eax
push sym.nss3.dll_SECMOD_CanDeleteInternalModule
push edi
push 6
push esi
call ecx
add esp, 0x14
test eax, eax
jne 0x100ca401
mov esi, dword [ebp - 0x14]
test esi, esi
je 0x100ca401
cmp dword [edi + 0x2c], 0
je 0x100ca430
mov dword [edi + 0x38], esi
jmp 0x100ca430
test eax, eax
mov esi, 0x30
cmovne esi, eax
test bl, bl
jne 0x100ca41a
push dword [edi + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
push esi
call fcn.100a9930
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov eax, esi
add esp, 8
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
mov esi, eax
jmp 0x100ca3ab

Function at 0x100ca650
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x101f32b8
call fcn.100c9720
mov ecx, 0x101f32c4
call fcn.100c9720
mov ecx, 0x101f32d0
call fcn.100c9720
mov ecx, 0x101f32dc
call fcn.100c9720
mov ecx, 0x101f32e8
call fcn.100c9720
mov ecx, 0x101f32f4
call fcn.100c9720
mov ecx, 0x101f3300
call fcn.100c9720
mov ecx, 0x101f330c
call fcn.100c9720
mov ecx, 0x101f3318
call fcn.100c9720
mov ecx, 0x101f3324
call fcn.100c9720
mov ecx, 0x101f3330
call fcn.100c9720
mov ecx, 0x101f333c
call fcn.100c9720
mov ecx, 0x101f3348
call fcn.100c9720
mov ecx, 0x101f3354
call fcn.100c9720
mov ecx, 0x101f3360
call fcn.100c9720
mov ecx, 0x101f336c
call fcn.100c9720
mov ecx, 0x101f3378
call fcn.100c9720
mov ecx, 0x101f3384
call fcn.100c9720
mov ecx, 0x101f3390
call fcn.100c9720
mov ecx, 0x101f339c
pop ebp
jmp fcn.100c9720
Function at 0x100ca9c0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
test ecx, ecx
jle 0x100ca9ee
mov esi, dword [edx + 0x40]
xor edx, edx
mov edi, eax
cmp dword [edi], esi
je 0x100ca9f0
inc edx
add edi, 0x24
cmp ecx, edx
jne 0x100ca9dd
jmp 0x100cab2d
xor edx, edx
cmp edx, ecx
je 0x100cab2d
lea edx, [edx + edx*8]
mov ecx, dword [eax + edx*4 + 4]
mov edi, dword [ebp + 8]
mov dword [edi + 0x44], ecx
mov esi, dword [eax + edx*4 + 8]
mov dword [edi + 0x60], esi
mov esi, dword [eax + edx*4 + 0xc]
mov dword [edi + 0x64], esi
movsx eax, byte [eax + edx*4 + 0x10]
mov dword [edi + 0x11c], eax
cmp dword [edi + 0x18], 0
jne 0x100cab2d
bt ecx, 0x1e
jb 0x100cab21
mov ebx, 0xffffff04
mov eax, dword [ebx + 0x101be090]
mov ecx, dword [ebp + 8]
test dword [ecx + 0x44], eax
je 0x100cab01
mov ecx, dword [ebx + 0x101be094]
call fcn.100ca720
test eax, eax
je 0x100cab01
mov esi, eax
mov dword [esp], 0x10
call sym.nss3.dll_PORT_Alloc_Util
test eax, eax
je 0x100cab01
mov edi, eax
mov eax, dword [ebp + 8]
lock inc dword [eax + 0x48]
mov dword [edi + 8], eax
mov dword [edi + 4], 0
mov dword [edi + 0xc], 1
mov eax, dword [esi + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100cab0c
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 [esi]
test eax, eax
je 0x100caad8
mov ecx, dword [eax + 4]
mov dword [edi + 4], ecx
mov dword [eax + 4], edi
mov dword [edi], eax
jmp 0x100caae7
mov ecx, dword [esi + 4]
mov dword [edi + 4], ecx
mov dword [edi], 0
mov dword [esi + 4], edi
mov ecx, dword [edi + 4]
test ecx, ecx
je 0x100caaf0
mov dword [ecx], edi
cmp dword [esi], eax
jne 0x100caaf6
mov dword [esi], edi
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
add ebx, 0xc
jne 0x100caa37
jmp 0x100cab2d
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x10], eax
jmp 0x100caaaa
xor eax, eax
inc eax
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x18], eax
mov dword [ecx + 0x1c], eax
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x100cab40
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 + 8]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebx + 8]
call fcn.100ca720
mov edi, eax
cmp dword [ebp + 0x10], 0
mov eax, dword [ebx + 4]
je 0x100cabf2
or dword [esi + 0x44], eax
xor eax, eax
test edi, edi
je 0x100caca0
mov dword [esp], 0x10
call sym.nss3.dll_PORT_Alloc_Util
test eax, eax
je 0x100cac70
mov ebx, eax
lock inc dword [esi + 0x48]
mov dword [eax + 8], esi
mov dword [eax + 4], 0
mov dword [eax + 0xc], 1
mov eax, dword [edi + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100cacb3
mov esi, dword [ebp - 0x14]
lea eax, [esi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [esi + 8], eax
mov eax, dword [edi]
test eax, eax
je 0x100cac75
mov ecx, dword [eax + 4]
mov dword [ebx + 4], ecx
mov dword [eax + 4], ebx
mov dword [ebx], eax
jmp 0x100cac84
not eax
and dword [esi + 0x44], eax
xor eax, eax
test edi, edi
je 0x100caca0
mov eax, dword [edi + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100caccb
mov ebx, dword [ebp - 0x14]
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [ebx + 8], eax
mov ebx, dword [edi]
test ebx, ebx
je 0x100cac93
inc dword [ebx + 0xc]
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
cmp dword [ebx + 8], esi
je 0x100caca8
mov dword [esp + 4], ebx
mov dword [esp], edi
mov dword [esp + 8], 1
call sym.nss3.dll_PK11_GetNextSafe
mov ebx, eax
test eax, eax
jne 0x100cac4f
jmp 0x100cac9e
xor eax, eax
dec eax
jmp 0x100caca0
mov ecx, dword [edi + 4]
mov dword [ebx + 4], ecx
mov dword [ebx], 0
mov dword [edi + 4], ebx
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x100cac8d
mov dword [ecx], ebx
cmp dword [edi], eax
jne 0x100cac93
mov dword [edi], ebx
mov eax, dword [edi + 8]
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
mov ecx, edi
mov edx, ebx
call fcn.100c9910
jmp 0x100cac9e
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x10], eax
jmp 0x100cabc0
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x10], eax
jmp 0x100cac23
Function at 0x100cacf0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x18
mov eax, dword [ebp + 8]
cmp dword [eax + 0x18], 0
je 0x100cad0a
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
cmp dword [eax + 0x44], 0
je 0x100cad02
xor ebx, ebx
lea eax, [ebx + ebx*2]
mov ecx, dword [eax*4 + 0x101bdf94]
mov edx, dword [ebp + 8]
test dword [edx + 0x44], ecx
je 0x100cae37
mov ecx, dword [eax*4 + 0x101bdf98]
call fcn.100ca720
test eax, eax
je 0x100cae37
mov esi, eax
mov eax, dword [eax + 8]
mov dword [ebp - 0x14], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x10], eax
test eax, eax
je 0x100cae46
mov edi, dword [ebp - 0x14]
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x10]
mov dword [edi + 8], eax
mov edi, dword [esi]
test edi, edi
je 0x100cadb3
inc dword [edi + 0xc]
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov eax, dword [ebp + 8]
cmp dword [edi + 8], eax
je 0x100cadc0
mov dword [esp + 4], edi
mov dword [esp], esi
mov dword [esp + 8], 1
call sym.nss3.dll_PK11_GetNextSafe
mov edi, eax
test eax, eax
jne 0x100cad8c
jmp 0x100cae37
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
jmp 0x100cae37
mov ecx, esi
mov edx, edi
call fcn.100c9910
mov eax, dword [esi + 8]
mov dword [ebp - 0x10], eax
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov dword [ebp - 0x14], eax
test eax, eax
je 0x100cae5e
mov eax, dword [ebp - 0x10]
add eax, 0x1c
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x10]
mov dword [ecx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x10], eax
dec eax
mov dword [edi + 0xc], eax
mov eax, dword [esi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
cmp dword [ebp - 0x10], 1
jne 0x100cae37
mov eax, dword [edi + 8]
lock dec dword [eax + 0x48]
jne 0x100cae2e
mov dword [esp], eax
call fcn.100c9d60
mov dword [esp], edi
call dword [sym.imp.mozglue.dll_free]
inc ebx
cmp ebx, 0x15
jne 0x100cad12
jmp 0x100cad02
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x10], eax
jmp 0x100cad60
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov dword [ebp - 0x14], eax
jmp 0x100cade7
Function at 0x100cbb00
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 + 0x140]
mov eax, dword [0x101f25a4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov esi, eax
test eax, eax
je 0x100cbb61
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 + 0x13c]
test esi, esi
je 0x100cbb49
lock inc dword [esi + 8]
mov eax, dword [edi + 0x140]
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 [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
mov esi, eax
jmp 0x100cbb29

Function at 0x100cbd60
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x30], 0
jne 0x100cbd9b
mov edi, dword [ecx + 0x3c]
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x100cbe5d
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov ecx, dword [ebp + 8]
lea edi, [ebx + 0x40]
movaps xmm0, xmmword [str._________________vk]
movups xmmword [ebx + 0x50], xmm0
movups xmmword [ebx + 0x40], xmm0
movups xmmword [ebx + 0x30], xmm0
movups xmmword [ebx + 0x20], xmm0
movups xmmword [ebx + 0x10], xmm0
movups xmmword [ebx], xmm0
mov eax, dword [ecx]
mov esi, dword [ecx + 0x40]
mov ecx, dword [eax + 0x16]
call dword [section..00cfg]
push ebx
push esi
call ecx
add esp, 8
mov esi, eax
xor eax, eax
cmp byte [ebx + eax], 0
je 0x100cbde3
inc eax
cmp eax, 0x40
jne 0x100cbdd5
jmp 0x100cbdfe
cmp eax, 0x3f
ja 0x100cbdfe
lea ecx, [ebx + eax]
mov edx, 0x40
sub edx, eax
push edx
push 0x20
push ecx
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
add ebx, 0x60
mov eax, edi
mov ecx, dword [ebp + 8]
cmp byte [eax], 0
je 0x100cbe10
inc eax
cmp eax, ebx
jb 0x100cbe06
cmp eax, ebx
jae 0x100cbe28
sub edi, eax
add edi, 0x20
push edi
push 0x20
push eax
call sub.VCRUNTIME140.dll_memset
mov ecx, dword [ebp + 8]
add esp, 0xc
cmp dword [ecx + 0x30], 0
jne 0x100cbe39
push dword [ecx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
je 0x100cbe56
push esi
call fcn.100a9930
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
xor eax, eax
dec eax
jmp 0x100cbe58
xor eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
mov esi, eax
jmp 0x100cbd8b
Function at 0x100cd630
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 + 0xc]
mov ebx, dword [ebp + 8]
mov eax, dword [0x101ef014]
xor eax, ebp
mov dword [ebp - 0x10], eax
cmp edi, 1
jne 0x100cd665
cmp dword [ebx + 0x124], 0
je 0x100cd665
mov eax, dword [ebx + 0x128]
mov dword [ebp - 0x14], eax
jmp 0x100cd6ef
cmp dword [ebx + 0x30], 0
jne 0x100cd694
mov edi, dword [ebx + 0x3c]
push dword [0x101f25a4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x100cd718
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov edi, dword [ebp + 0xc]
mov eax, dword [ebx]
mov esi, dword [ebx + 0x40]
mov ecx, dword [eax + 0x22]
call dword [section..00cfg]
lea eax, [ebp - 0x1c]
push eax
push edi
push esi
call ecx
add esp, 0xc
mov esi, edi
mov edi, eax
cmp dword [ebx + 0x30], 0
jne 0x100cd6c2
push dword [ebx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
cmp esi, 1
jne 0x100cd6e9
test edi, edi
jne 0x100cd6e9
cmp dword [ebx + 0x124], 0
jne 0x100cd6ef
mov eax, dword [ebp - 0x14]
mov dword [ebx + 0x128], eax
mov dword [ebx + 0x124], 1
jmp 0x100cd6ef
xor esi, esi
test edi, edi
jne 0x100cd704
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x100cd701
mov ecx, dword [ebp - 0x14]
not ecx
xor esi, esi
test eax, ecx
jne 0x100cd704
xor esi, esi
inc esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10156ff0
mov eax, esi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
sub esp, 0x10
movaps xmm0, xmmword [0x101af1a0]
movups xmmword [esp], xmm0
call fcn.1006d800
add esp, 0x10
mov esi, eax
jmp 0x100cd684