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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x1c
mov ebx, dword [ebp + 8]
test ebx, ebx
je 0x10099dd4
mov edi, dword [ebx + 0x1c]
mov eax, dword [ebx + 0x54]
mov dword [ebp - 0x18], eax
test edi, edi
je 0x10099d1f
mov eax, dword [edi + 0x14]
mov eax, dword [eax + 8]
mov dword [ebp - 0x14], eax
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 0x10099dde
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
lock dec dword [ebx + 4]
mov eax, dword [edi + 0x14]
jne 0x10099dbf
mov dword [esp + 4], ebx
mov dword [esp], eax
call fcn.1009e410
mov eax, dword [edi + 0x14]
add eax, 8
jmp 0x10099d71
mov eax, dword [0x101f50a0]
mov dword [ebp - 0x10], eax
mov eax, dword [eax + 0x14]
mov edi, dword [eax]
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 0x10099df6
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], esi
lock dec dword [ebx + 4]
jne 0x10099dc4
mov dword [esp + 4], ebx
mov esi, dword [ebp - 0x10]
mov dword [esp], esi
call fcn.1009f3a0
mov eax, dword [esi + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
cmp dword [ebx + 0x14], 0
je 0x10099d97
xor esi, esi
mov eax, dword [ebx + 0x10]
mov eax, dword [eax + esi*4]
mov dword [esp], eax
call fcn.10098840
inc esi
cmp esi, dword [ebx + 0x14]
jb 0x10099d83
mov dword [esp], ebx
call fcn.1009c9b0
mov eax, dword [ebx]
mov dword [esp], eax
call fcn.100944c0
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x10099dd4
cmp dword [eax], 1
jne 0x10099dd4
mov dword [esp], eax
call fcn.1009b330
jmp 0x10099dd4
mov eax, dword [eax + 8]
jmp 0x10099dcc
mov eax, dword [ebp - 0x10]
mov eax, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
xor eax, eax
add esp, 0x1c
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 0x10099ce6
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x10099d47
Function at 0x1009c910
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x10
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0xc]
cmp ecx, 1
je 0x1009c935
cmp ecx, 2
jne 0x1009c961
mov eax, dword [eax + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_EnterMonitor
jmp 0x1009c961
mov edi, dword [eax + 8]
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 0x1009c968
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], esi
add esp, 0x10
pop esi
pop edi
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x1009c94f

Function at 0x1009cac0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov edi, dword [ebp + 8]
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009cae3
cmp eax, 2
jne 0x1009cb09
push dword [edi + 8]
call sym.nss3.dll_PR_EnterMonitor
add esp, 4
jmp 0x1009cb09
mov ebx, dword [edi + 8]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009cbe3
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov ebx, dword [ebp + 0xc]
cmp dword [edi + 0x14], 0
je 0x1009cb41
xor esi, esi
mov eax, dword [edi + 0x10]
push ebx
push dword [eax + esi*4]
call fcn.100988e0
add esp, 8
test eax, eax
jne 0x1009cb79
inc esi
mov eax, dword [edi + 0x14]
cmp esi, eax
jb 0x1009cb14
lea eax, [eax*4 + 4]
push eax
push dword [edi + 0x10]
call fcn.10094750
jmp 0x1009cb4a
push 4
push dword [edi]
call fcn.10094240
add esp, 8
mov esi, eax
test eax, eax
je 0x1009cb62
mov dword [edi + 0x10], esi
mov eax, dword [edi + 0x14]
lea ecx, [eax + 1]
mov dword [edi + 0x14], ecx
mov dword [esi + eax*4], ebx
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009cbad
cmp eax, 2
jne 0x1009cbb8
push dword [edi + 8]
call sym.nss3.dll_PR_ExitMonitor
jmp 0x1009cbb5
mov eax, dword [edi + 0x10]
mov eax, dword [eax + esi*4]
push dword [eax + 0xc]
call fcn.10094350
add esp, 4
mov eax, dword [ebx + 0xc]
mov ecx, dword [edi + 0x10]
mov ecx, dword [ecx + esi*4]
mov dword [ecx + 0xc], eax
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009cbc1
cmp eax, 2
jne 0x1009cbcc
push dword [edi + 8]
call sym.nss3.dll_PR_ExitMonitor
jmp 0x1009cbc9
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor eax, eax
cmp esi, 1
sbb eax, eax
jmp 0x1009cbde
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov dword [ebx + 0xc], 0
push ebx
call fcn.10098840
add esp, 4
xor 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 0x1009cafc
Function at 0x1009cc80
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 eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009cca6
cmp eax, 2
jne 0x1009ccd6
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_EnterMonitor
jmp 0x1009ccd6
mov ebx, dword [edi + 8]
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 0x1009cd71
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 + 0x14]
test eax, eax
je 0x1009cd42
mov ebx, dword [ebp + 0xc]
mov ecx, dword [edi + 0x10]
xor edx, edx
mov esi, dword [ecx + edx*4]
cmp dword [esi + 4], ebx
je 0x1009ccf6
inc edx
cmp eax, edx
jne 0x1009cce5
xor esi, esi
jmp 0x1009cd0e
mov eax, dword [ecx + eax*4 - 4]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x10]
mov ecx, dword [edi + 0x14]
mov dword [eax + ecx*4 - 4], 0
mov eax, dword [edi + 0x14]
dec eax
mov dword [edi + 0x14], eax
je 0x1009cd2f
shl eax, 2
mov ecx, dword [edi + 0x10]
mov dword [esp + 4], eax
mov dword [esp], ecx
call fcn.10094750
test eax, eax
je 0x1009cd3a
mov dword [edi + 0x10], eax
jmp 0x1009cd3a
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call fcn.10094350
mov dword [esp], esi
call fcn.10098840
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009cd5c
cmp eax, 2
jne 0x1009cd67
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_ExitMonitor
jmp 0x1009cd67
mov eax, dword [edi + 8]
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 0x1009ccc4
Function at 0x1009cd90
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]
mov eax, dword [ecx + 0xc]
cmp eax, 1
je 0x1009cdb6
cmp eax, 2
jne 0x1009cde9
mov eax, dword [ecx + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_EnterMonitor
jmp 0x1009cde6
mov edi, dword [ecx + 8]
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 0x1009ce83
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], esi
mov ecx, dword [ebp + 8]
cmp dword [ecx + 0x14], 0
mov eax, 0
je 0x1009ce39
xor edi, edi
xor ebx, ebx
mov eax, dword [ecx + 0x10]
mov esi, dword [eax + edi*4]
mov dword [esp], esi
call fcn.10096b80
mov ecx, dword [ebp + 8]
mov edx, dword [ecx + 0x10]
mov dword [edx + edi*4], 0
test eax, eax
je 0x1009ce20
mov edx, dword [ecx + 0x10]
mov dword [edx + ebx*4], esi
inc ebx
jmp 0x1009ce2f
mov dword [esp], esi
mov esi, eax
call fcn.10098840
mov eax, esi
mov ecx, dword [ebp + 8]
inc edi
cmp edi, dword [ecx + 0x14]
jb 0x1009cdf8
test ebx, ebx
jne 0x1009ce4d
mov ecx, dword [ecx + 0x10]
mov dword [esp], ecx
mov esi, eax
call fcn.10094350
mov eax, esi
mov ecx, dword [ebp + 8]
xor ebx, ebx
mov dword [ecx + 0x14], ebx
mov edx, dword [ecx + 0xc]
cmp edx, 1
je 0x1009ce6c
cmp edx, 2
jne 0x1009ce7b
mov ecx, dword [ecx + 8]
mov dword [esp], ecx
mov esi, eax
call sym.nss3.dll_PR_ExitMonitor
jmp 0x1009ce79
mov ecx, dword [ecx + 8]
mov dword [esp], ecx
mov esi, 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 0x1009cdd4
Function at 0x1009cea0
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 eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009cec6
cmp eax, 2
jne 0x1009cef6
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_EnterMonitor
jmp 0x1009cef6
mov ebx, dword [edi + 8]
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 0x1009cf76
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 + 0x14]
xor esi, esi
test eax, eax
je 0x1009cf3a
lea eax, [eax*4 + 4]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.10094240
test eax, eax
je 0x1009cf3a
cmp dword [edi + 0x14], 0
je 0x1009cf38
xor ecx, ecx
mov edx, dword [edi + 0x10]
mov edx, dword [edx + ecx*4]
mov edx, dword [edx + 4]
lock inc dword [edx + 8]
mov dword [eax + ecx*4], edx
inc ecx
cmp ecx, dword [edi + 0x14]
jb 0x1009cf22
mov esi, eax
mov ebx, dword [ebp + 0xc]
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009cf57
cmp eax, 2
jne 0x1009cf62
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_ExitMonitor
jmp 0x1009cf62
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
test ebx, ebx
je 0x1009cf6c
mov dword [ebx], 0
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 0x1009cee4
Function at 0x1009cf90
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xc]
cmp eax, 1
je 0x1009cfb3
cmp eax, 2
jne 0x1009cfd9
push dword [ebx + 8]
call sym.nss3.dll_PR_EnterMonitor
add esp, 4
jmp 0x1009cfd9
mov edi, dword [ebx + 8]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009d065
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x1009d002
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebx + 0x10]
xor esi, esi
mov edi, dword [edx + esi*4]
test ecx, ecx
jne 0x1009cff6
mov ebx, dword [edi + 0xc]
test ebx, ebx
jne 0x1009d00d
cmp dword [edi + 4], ecx
je 0x1009d006
inc esi
cmp eax, esi
jne 0x1009cfe8
jmp 0x1009d037
xor esi, esi
jmp 0x1009d03c
mov ebx, dword [edi + 0xc]
test ebx, ebx
je 0x1009d082
push ebx
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
mov edi, eax
inc edi
push edi
push 0
call fcn.10094240
add esp, 8
test eax, eax
je 0x1009d037
mov esi, eax
push edi
push ebx
push eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
jmp 0x1009d039
xor esi, esi
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0xc]
cmp eax, 1
je 0x1009d053
cmp eax, 2
jne 0x1009d05e
push dword [ebx + 8]
call sym.nss3.dll_PR_ExitMonitor
jmp 0x1009d05b
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, esi
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 0x1009cfcc
xor edi, edi
inc edi
xor ebx, ebx
jmp 0x1009d019
Function at 0x1009d090
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]
cmp dword [edi + 0x14], 0
je 0x1009d0bc
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009d0c3
cmp eax, 2
jne 0x1009d0f3
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_EnterMonitor
jmp 0x1009d0f3
xor esi, esi
jmp 0x1009d157
mov ebx, dword [edi + 8]
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 0x1009d161
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 + 0x14]
lea eax, [eax*4 + 4]
mov dword [esp + 4], eax
mov dword [esp], 0
call fcn.10094240
mov esi, eax
test eax, eax
je 0x1009d132
cmp dword [edi + 0x14], 0
je 0x1009d132
xor ebx, ebx
mov eax, dword [edi + 0x10]
mov eax, dword [eax + ebx*4]
mov dword [esp], eax
call fcn.10098870
mov dword [esi + ebx*4], eax
inc ebx
cmp ebx, dword [edi + 0x14]
jb 0x1009d11b
mov eax, dword [edi + 0xc]
cmp eax, 1
je 0x1009d14c
cmp eax, 2
jne 0x1009d157
mov eax, dword [edi + 8]
mov dword [esp], eax
call sym.nss3.dll_PR_ExitMonitor
jmp 0x1009d157
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 [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x1009d0e1

Function at 0x1009d180
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x1009d1c6
mov ecx, dword [esi]
test ecx, ecx
je 0x1009d1bf
add esi, 4
cmp dword [ecx + 0x54], 0
je 0x1009d1ad
xor edx, edx
call fcn.1009b6a0
test eax, eax
je 0x1009d1b6
push eax
call sym.nss3.dll_CERT_DestroyCertificate
jmp 0x1009d1b3
push ecx
call fcn.10099ca0
add esp, 4
mov ecx, dword [esi]
add esi, 4
test ecx, ecx
jne 0x1009d194
pop esi
pop ebp
jmp fcn.10094350
pop esi
pop ebp
ret

Function at 0x1009d4c0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
mov esi, dword [ebp + 8]
test esi, esi
je 0x1009d4ed
mov eax, dword [esi]
test eax, eax
je 0x1009d4e6
add esi, 4
push eax
call fcn.1009cc00
add esp, 4
mov eax, dword [esi]
add esi, 4
test eax, eax
jne 0x1009d4d4
pop esi
pop ebp
jmp fcn.10094350
pop esi
pop ebp
ret
Function at 0x1009e070
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]
mov ebx, dword [eax + 0x10]
mov edi, dword [ebx + 8]
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 0x1009e12a
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 + 8]
mov esi, dword [ebx + 0x10]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
test esi, esi
je 0x1009e0d2
mov dword [esp], 0x24
call fcn.10094a30
xor eax, eax
dec eax
jmp 0x1009e122
mov edi, dword [ebp + 8]
mov esi, dword [edi + 8]
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]
mov eax, dword [edi + 0x10]
mov dword [esp], eax
call fcn.10094be0
mov eax, dword [edi + 0xc]
mov dword [esp], eax
call fcn.10094be0
cmp dword [edi], 0
je 0x1009e118
mov eax, dword [edi + 4]
mov dword [esp], eax
call fcn.100944c0
jmp 0x1009e120
mov dword [esp], edi
call fcn.10094350
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 0x1009e09d
Function at 0x1009e410
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov ecx, dword [ebp + 8]
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov edi, dword [ecx + 0x10]
mov ebx, dword [edi + 8]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009e5b6
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 0x1009e475
mov eax, ebx
cmp dword [esi], ebx
je 0x1009e487
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
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 [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009e5d3
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
mov edi, dword [ebp + 8]
je 0x1009e50b
push ebx
push dword [edi + 0x10]
call fcn.10094cc0
add esp, 8
mov eax, dword [esi + 4]
test eax, eax
je 0x1009e4f2
push eax
call fcn.1009cc00
add esp, 4
mov eax, dword [esi + 8]
test eax, eax
je 0x1009e502
push eax
call fcn.1009cc00
add esp, 4
push esi
call fcn.10094350
add esp, 4
lea eax, [ebx + 0x40]
mov dword [ebp - 0x18], eax
mov edi, dword [edi + 0xc]
mov ebx, dword [edi + 8]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009e5f0
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
test esi, esi
mov eax, dword [ebp + 0xc]
je 0x1009e475
mov edi, ebx
push eax
push esi
call fcn.10095430
add esp, 8
push ebx
mov ebx, dword [ebp + 8]
push dword [ebx + 0xc]
call fcn.10094cc0
add esp, 8
cmp dword [esi + 0xc], 0
je 0x1009e5a8
lea edi, [ebp - 0x14]
push 1
push edi
push esi
call fcn.10095500
add esp, 0xc
mov eax, dword [edi]
add eax, 0x40
push esi
push eax
push dword [ebx + 0xc]
call fcn.10094c30
add esp, 0xc
jmp 0x1009e475
push esi
call fcn.10095060
add esp, 4
jmp 0x1009e475
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x1009e442
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x1009e4a6
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x1009e52d
Function at 0x1009e610
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 [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009e6ee
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 [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009e70b
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 esi, eax
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor edi, edi
test esi, esi
je 0x1009e6d5
push esi
call fcn.1009a590
add esp, 4
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x1009e6d5
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
cmp ecx, edx
mov ebx, edx
cmovb ebx, ecx
test edx, edx
cmove ebx, ecx
xor edi, edi
test eax, eax
jne 0x1009e6ca
lea eax, [ebx*4 + 4]
push eax
push dword [ebp + 0x18]
call fcn.10094240
add esp, 8
mov edi, eax
test eax, eax
je 0x1009e6ea
push ebx
push eax
push esi
call fcn.10095500
add esp, 0xc
mov eax, dword [ebp + 8]
push dword [eax + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, edi
pop esi
pop edi
pop ebx
pop ebp
ret
xor edi, edi
jmp 0x1009e6d5
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x1009e632
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x1009e65b
Function at 0x1009e730
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov edi, dword [ebp + 8]
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x101f1014]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], 0
mov ebx, dword [edi + 8]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1009e80c
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
lea esi, [ebp - 0x18]
push esi
push 0x1009e830
push dword [edi + 0xc]
call fcn.10094d40
add esp, 0xc
mov eax, dword [esi + 4]
xor esi, esi
test eax, eax
je 0x1009e7e9
push eax
call fcn.1009a590
add esp, 4
mov ebx, dword [ebp - 0x14]
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x1009e7e9
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
cmp ecx, edx
mov edi, edx
cmovb edi, ecx
test edx, edx
cmove edi, ecx
xor esi, esi
test eax, eax
jne 0x1009e7db
lea eax, [edi*4 + 4]
push eax
push dword [ebp + 0x18]
call fcn.10094240
add esp, 8
mov esi, eax
test eax, eax
je 0x1009e808
push edi
push eax
push ebx
call fcn.10095500
add esp, 0xc
mov edi, dword [ebp + 8]
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, esi
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
xor esi, esi
jmp 0x1009e7e6
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x1009e76d
Function at 0x1009e8b0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov eax, dword [ebp + 0xc]
mov ecx, dword [0x101f1014]
xor ecx, ebp
mov dword [ebp - 0x10], ecx
mov dword [ebp - 0x18], eax
xor esi, esi
push esi
push esi
call fcn.10094fc0
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x1009e997
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 8]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
je 0x1009e9ab
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 0x1009e9d0
mov ebx, dword [ebp + 8]
push dword [ebx + 0xc]
call fcn.10094d40
add esp, 0xc
mov eax, dword [edi + 4]
test eax, eax
mov edi, ebx
je 0x1009e933
push eax
call fcn.1009a590
add esp, 4
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov edi, dword [ebp - 0x14]
test edi, edi
je 0x1009e997
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x1009e98a
mov edx, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
cmp ecx, edx
mov ebx, edx
cmovb ebx, ecx
test edx, edx
cmove ebx, ecx
xor esi, esi
test eax, eax
jne 0x1009e97d
lea eax, [ebx*4 + 4]
push eax
push dword [ebp + 0x18]
call fcn.10094240
add esp, 8
mov esi, eax
test eax, eax
je 0x1009e98a
push ebx
push eax
push edi
call fcn.10095500
add esp, 0xc
jmp 0x1009e98c
xor esi, esi
push dword [ebp - 0x14]
call fcn.10095060
add esp, 4
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10157a00
mov eax, esi
add esp, 0xc
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 edi, eax
jmp 0x1009e8fd