joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1012add0
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]
test edi, edi
je 0x1012ae7f
mov eax, dword [edi]
test eax, eax
je 0x1012adf0
mov ecx, dword [edi + 4]
mov dword [eax + 4], ecx
mov eax, dword [edi + 4]
test eax, eax
je 0x1012adfb
mov ecx, dword [edi]
mov dword [eax], ecx
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi], eax
mov ebx, dword [edi + 8]
test ebx, ebx
je 0x1012ae75
cmp dword [edi + 0x10], 0
je 0x1012ae66
mov eax, dword [edi + 0xc]
mov dword [ebp - 0x18], eax
mov eax, dword [ebx + 0x3c]
mov dword [ebp - 0x14], eax
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
mov dword [ebp - 0x10], eax
je 0x1012ae89
mov esi, dword [ebp - 0x14]
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x10]
mov dword [esi + 8], eax
mov eax, dword [ebx]
mov esi, dword [ebx + 0x38]
mov ecx, dword [eax + 0x5a]
call dword [section..00cfg]
push dword [ebp - 0x18]
push esi
call ecx
add esp, 8
push dword [ebx + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov ebx, dword [edi + 8]
lock dec dword [ebx + 0x48]
jne 0x1012ae75
push ebx
call fcn.10135de0
add esp, 4
push edi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
xor eax, eax
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 dword [ebp - 0x10], eax
jmp 0x1012ae2e

Function at 0x1012aea0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov eax, dword [0x101d2014]
mov edi, dword [ebp + 8]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ebx, dword [edi + 0x3c]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1012af5d
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
lea eax, [ebp - 0x14]
mov dword [ebx + 8], esi
push eax
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [edi + 0x38]
push edi
call fcn.10127e70
add esp, 0x18
mov esi, eax
push dword [edi + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
je 0x1012af1f
push 0xffffffffffffffff
call fcn.10115520
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
jmp 0x1012af49
push 0x14
call sym.nss3.dll_PORT_Alloc_Util
add esp, 4
test eax, eax
je 0x1012af1b
mov esi, eax
lock inc dword [edi + 0x48]
mov eax, dword [ebp + 0x18]
mov dword [esi + 8], edi
mov ecx, dword [ebp - 0x14]
mov dword [esi + 0xc], ecx
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], eax
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
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 esi, eax
jmp 0x1012aecf
Function at 0x1012b060
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 edi, dword [ebp + 8]
xor eax, ebp
mov dword [ebp - 0x10], eax
mov ebx, dword [edi + 0x3c]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x1012b154
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov esi, dword [edi + 0x38]
test esi, esi
je 0x1012b10f
mov eax, dword [edi]
mov ebx, dword [ebp + 0x10]
mov ecx, dword [eax + 0x6a]
call dword [section..00cfg]
push ebx
push dword [ebp + 0xc]
push esi
call ecx
add esp, 0xc
mov esi, eax
test eax, eax
jne 0x1012b114
mov eax, dword [edi]
mov esi, dword [edi + 0x38]
mov ecx, dword [eax + 0x6e]
call dword [section..00cfg]
lea eax, [ebp - 0x18]
lea edx, [ebp - 0x14]
push eax
push 1
push edx
push esi
call ecx
add esp, 0x10
mov ecx, dword [edi]
mov ebx, dword [edi + 0x38]
mov esi, eax
mov ecx, dword [ecx + 0x72]
call dword [section..00cfg]
push ebx
call ecx
add esp, 4
push dword [edi + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
jne 0x1012b149
cmp dword [ebp - 0x18], 0
je 0x1012b149
mov esi, dword [ebp - 0x14]
jmp 0x1012b135
mov esi, 0xb3
push dword [edi + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
push esi
call fcn.10115520
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.10192ef0
mov eax, esi
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
test esi, esi
jne 0x1012b11f
mov eax, 0xffffd003
jmp 0x1012b128
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x1012b08f
Function at 0x101314e0
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]
test edi, edi
je 0x1013169e
lock dec dword [edi + 0x2c]
jne 0x1013169e
mov eax, dword [edi + 0x38]
mov dword [edi + 0x38], 0
cmp dword [edi + 0x14], 0
mov dword [ebp - 0x18], eax
je 0x10131582
mov esi, dword [edi + 4]
test esi, esi
je 0x10131582
cmp dword [edi + 0x28], 0
mov eax, dword [edi + 8]
je 0x10131527
cmp dword [eax + 0x30], 0
jne 0x10131553
mov ebx, dword [eax + 0x3c]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10131688
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov esi, dword [edi + 4]
mov eax, dword [edi + 8]
mov eax, dword [eax]
mov ebx, dword [edi + 0x24]
mov ecx, dword [eax + 0x5a]
call dword [section..00cfg]
push esi
push ebx
call ecx
add esp, 8
cmp dword [edi + 0x28], 0
mov eax, dword [edi + 8]
je 0x10131577
cmp dword [eax + 0x30], 0
jne 0x10131582
push dword [eax + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x101315a8
push dword [edi + 0x20]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x101315a8
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov esi, dword [edi + 0x40]
test esi, esi
je 0x101315c2
mov ecx, dword [edi + 0x44]
test ecx, ecx
je 0x101315c2
call dword [section..00cfg]
push esi
call ecx
add esp, 4
mov ebx, dword [edi + 8]
mov eax, dword [ebx + 0x4c]
mov dword [ebp - 0x14], eax
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x10131674
mov esi, dword [ebp - 0x14]
mov dword [ebp - 0x10], eax
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x10]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x58]
cmp eax, dword [ebx + 0x5c]
jge 0x1013160e
cmp dword [edi + 0x28], 0
je 0x10131633
mov eax, dword [ebx + 0x50]
mov dword [edi + 0x10], eax
mov dword [ebx + 0x50], edi
jmp 0x10131643
push dword [ebx + 0x4c]
call sym.nss3.dll_PR_Unlock
add esp, 4
push dword [edi + 0x28]
push dword [edi + 0x24]
push dword [edi + 8]
call fcn.10127df0
add esp, 0xc
push edi
call dword [sym.imp.mozglue.dll_free]
jmp 0x10131655
mov dword [edi + 0x24], 0
mov eax, dword [ebx + 0x54]
mov dword [edi + 0x10], eax
mov dword [ebx + 0x54], edi
inc dword [ebx + 0x58]
mov dword [edi + 8], 0
push dword [ebx + 0x4c]
call sym.nss3.dll_PR_Unlock
add esp, 4
lock dec dword [ebx + 0x48]
jne 0x10131667
push ebx
call fcn.10135de0
add esp, 4
mov edi, dword [ebp - 0x18]
test edi, edi
jne 0x101314ec
jmp 0x1013169e
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
jmp 0x101315df
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x10131540
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x101317e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
mov ebx, dword [ecx + 0x4c]
mov esi, ecx
mov dword [ebp - 0x10], edx
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
je 0x10131932
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], edi
mov edi, dword [ebp + 0xc]
test edi, edi
je 0x10131828
mov ebx, dword [esi + 0x50]
test ebx, ebx
je 0x10131828
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x50], eax
jmp 0x10131835
mov ebx, dword [esi + 0x54]
test ebx, ebx
je 0x10131889
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x54], eax
dec dword [esi + 0x58]
push dword [esi + 0x4c]
call sym.nss3.dll_PR_Unlock
add esp, 4
test edi, edi
mov dword [ebx + 0x10], 0
je 0x101318df
movzx eax, word [ebx + 0x3c]
cmp ax, word [esi + 0x80]
jne 0x10131865
cmp dword [ebx + 0x24], 0
jne 0x101318df
lea eax, [ebx + 0x28]
push eax
push esi
call fcn.10127d30
add esp, 8
test eax, eax
mov dword [ebx + 0x24], eax
jne 0x101318df
push ebx
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
xor edi, edi
jmp 0x10131928
push dword [esi + 0x4c]
call sym.nss3.dll_PR_Unlock
add esp, 4
push 0x48
call sym.nss3.dll_PORT_Alloc_Util
add esp, 4
xor edi, edi
test eax, eax
je 0x10131928
cmp dword [ebp + 0xc], 0
mov ebx, eax
mov dword [eax + 0x10], 0
je 0x101318d8
mov eax, ebx
add eax, 0x28
push eax
push esi
call fcn.10127d30
add esp, 8
test eax, eax
mov dword [ebx + 0x24], eax
jne 0x101318df
push ebx
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
jmp 0x10131928
mov dword [ebx + 0x24], 0
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [ebp + 0x10]
mov edi, ebx
mov dword [ebx], edx
xor edx, edx
mov dword [ebx + 0x18], edx
mov dword [ebx + 0x1c], edx
mov dword [ebx + 0x20], edx
mov dword [ebx + 0x14], ecx
mov dword [ebx + 4], edx
mov dword [ebx + 8], esi
movzx ecx, word [esi + 0x80]
mov word [ebx + 0x3c], cx
mov dword [ebx + 0xc], eax
mov dword [ebx + 0x30], edx
mov dword [ebx + 0x2c], 1
mov dword [ebx + 0x34], edx
mov dword [ebx + 0x38], edx
mov dword [ebx + 0x44], edx
mov dword [ebx + 0x40], edx
lock inc dword [esi + 0x48]
mov eax, edi
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 edi, eax
jmp 0x10131805
Function at 0x10131950
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov esi, dword [ebp + 8]
mov ebx, dword [esi + 0x3c]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
je 0x101319d0
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], edi
xor edi, edi
movzx eax, word [esi + 0x80]
cmp eax, dword [ebp + 0x14]
jne 0x101319be
mov eax, dword [ebp + 0xc]
mov ebx, dword [esi + eax*4 + 0x90]
test ebx, ebx
je 0x101319be
mov edx, dword [esi + 0x8c]
mov ecx, esi
push dword [ebp + 0x18]
push 1
push 0
call fcn.101317e0
add esp, 0xc
mov edi, eax
test eax, eax
je 0x101319be
mov dword [edi + 4], ebx
mov dword [edi + 0x34], 1
push dword [esi + 0x3c]
call sym.nss3.dll_PR_Unlock
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 0x1013196e

Function at 0x101319f0
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 + 0x3c]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10131a56
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
cmp dword [ebp + 0xc], 0
mov dword [ebx + 8], esi
jne 0x10131a46
cmp dword [edi + 0x90], 0
jne 0x10131a46
mov eax, dword [ebp + 0x10]
mov ecx, dword [eax + 4]
mov dword [edi + 0x90], ecx
xor ecx, ecx
mov dword [eax + 0x14], ecx
mov dword [eax + 0x28], ecx
mov eax, dword [eax]
mov dword [edi + 0x8c], eax
push dword [edi + 0x3c]
call sym.nss3.dll_PR_Unlock
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 0x10131a0e
Function at 0x10132a10
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x28
mov eax, dword [0x101d2014]
mov ecx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x14]
xor eax, ebp
test ebx, ebx
mov dword [ebp - 0x10], eax
mov eax, dword [ecx + 8]
mov dword [ebp - 0x24], 1
mov dword [ebp - 0x14], eax
je 0x10132a7a
mov esi, dword [ebp + 0xc]
lea eax, [ebp - 0x20]
mov dword [eax], esi
push 0x104
push 1
push eax
push ebx
call fcn.101323a0
add esp, 0x10
test eax, eax
cmovne ebx, eax
mov edi, dword [ebx + 8]
test edi, edi
je 0x10132a86
mov ecx, dword [ebp + 0x10]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 8]
mov dword [ebp - 0x20], esi
test ecx, ecx
je 0x10132a92
mov edx, dword [ecx + 4]
mov dword [ebp - 0x1c], edx
mov ecx, dword [ecx + 8]
jmp 0x10132a9b
push 0
push 0xffffe005
jmp 0x10132b6f
push 0
push 0xffffe040
jmp 0x10132b6f
mov dword [ebp - 0x1c], 0
xor ecx, ecx
mov dword [ebp - 0x18], ecx
push 0
push eax
push edi
call sym.nss3.dll_PK11_ImportPublicKey
add esp, 0xc
test eax, eax
je 0x10132b8e
lea esi, [ebp - 0x24]
mov dword [ebp - 0x30], eax
push esi
push edi
call fcn.10127d30
add esp, 8
cmp dword [esi], 0
mov dword [ebp - 0x34], eax
je 0x10132ad0
cmp dword [edi + 0x30], 0
jne 0x10132afa
mov esi, dword [edi + 0x3c]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
mov dword [ebp - 0x28], eax
je 0x10132bb0
lea eax, [esi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x28]
mov dword [esi + 8], eax
mov eax, dword [edi]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebx + 4]
mov ecx, dword [eax + 0xf2]
mov esi, dword [edx + 4]
call dword [section..00cfg]
lea eax, [ebp - 0x14]
push eax
push esi
push ebx
push dword [ebp - 0x30]
lea eax, [ebp - 0x20]
push eax
mov esi, dword [ebp - 0x34]
push esi
call ecx
add esp, 0x18
mov ebx, eax
mov eax, dword [ebp - 0x24]
test eax, eax
je 0x10132b36
cmp dword [edi + 0x30], 0
jne 0x10132b44
push dword [edi + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, dword [ebp - 0x24]
push eax
push esi
push edi
call fcn.10127df0
add esp, 0xc
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x10132b5f
push eax
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
test ebx, ebx
je 0x10132ba3
push ebx
call fcn.10115520
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
xor edi, edi
dec edi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, edi
add esp, 0x28
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, dword [ebp - 0x2c]
xor edi, edi
dec edi
test eax, eax
je 0x10132b7a
push eax
call sym.nss3.dll_PK11_FreeSymKey
add esp, 4
jmp 0x10132b7a
mov eax, dword [ebp - 0x14]
mov ecx, dword [ebp + 0x18]
xor edi, edi
mov dword [ecx + 8], eax
jmp 0x10132b7a
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov dword [ebp - 0x28], eax
jmp 0x10132aea
Function at 0x10133740
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov eax, dword [0x101d2014]
mov ecx, dword [ebp + 8]
xor eax, ebp
mov dword [ebp - 0x10], eax
xor eax, eax
mov edi, dword [ecx + 8]
mov dword [ebp - 0x1c], 0xce534378
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x14], eax
mov ebx, dword [edi + 0x3c]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x101337f7
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov edx, dword [ebp + 8]
mov eax, dword [edi]
mov esi, dword [edi + 0x38]
mov ebx, dword [edx + 0xc]
mov ecx, dword [eax + 0xfa]
call dword [section..00cfg]
lea eax, [ebp - 0x20]
lea edx, [ebp - 0x1c]
push eax
xor eax, eax
push eax
push eax
push ebx
push edx
push esi
call ecx
add esp, 0x18
mov esi, eax
push dword [edi + 0x3c]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
je 0x101337e0
push esi
call fcn.10115520
add esp, 4
push 0
push eax
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
jmp 0x101337e3
mov esi, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10192ef0
mov eax, esi
add esp, 0x14
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 0x10133780
Function at 0x10135740
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov eax, dword [ebp + 8]
test eax, eax
je 0x101357b4
cmp dword [ebp + 0xc], 0
je 0x101357b4
mov edi, dword [eax + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x101357cd
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov ebx, dword [ebp + 0xc]
mov dword [edi + 8], esi
mov edi, dword [ebx + 0xc]
lea eax, [edi - 1]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 8]
push dword [eax + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor esi, esi
cmp edi, 1
jne 0x101357c6
mov eax, dword [ebx + 8]
lock dec dword [eax + 0x48]
jne 0x101357a8
push eax
call fcn.10135de0
add esp, 4
push ebx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x101357c6
push 0
push 0xffffe005
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
dec esi
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 0x10135768

Function at 0x10135800
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0xc
mov esi, dword [ebp + 8]
test esi, esi
je 0x101358cc
mov ebx, dword [esi]
test ebx, ebx
je 0x101358a4
mov dword [ebp - 0x10], esi
mov eax, dword [ebx]
mov dword [ebp - 0x18], eax
mov eax, dword [esi + 8]
mov dword [ebp - 0x14], eax
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10135891
mov edi, dword [ebp - 0x14]
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [edi + 8], esi
mov edi, dword [ebp - 0x10]
mov esi, dword [ebx + 0xc]
lea eax, [esi - 1]
mov dword [ebx + 0xc], eax
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
cmp esi, 1
mov esi, edi
jne 0x10135888
mov eax, dword [ebx + 8]
lock dec dword [eax + 0x48]
jne 0x1013587e
push eax
call fcn.10135de0
add esp, 4
push ebx
call dword [sym.imp.mozglue.dll_free]
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
jne 0x10135821
jmp 0x101358a4
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov esi, eax
jmp 0x1013583e
mov esi, dword [esi + 8]
test esi, esi
je 0x101358bf
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
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
jmp dword [sym.imp.mozglue.dll_free]
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
Function at 0x101358e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push 0x10
call sym.nss3.dll_PORT_Alloc_Util
add esp, 4
test eax, eax
je 0x10135962
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 ebx, dword [ecx + 8]
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
je 0x101359aa
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], edi
mov edi, dword [ebp + 8]
cmp dword [ebp + 0x10], 0
mov eax, dword [edi]
je 0x10135967
test eax, eax
je 0x10135967
mov ecx, dword [esi + 8]
mov ecx, dword [ecx + 4]
mov ecx, dword [ecx + 0x64]
mov edx, dword [eax + 8]
mov edx, dword [edx + 4]
cmp dword [edx + 0x64], ecx
jle 0x1013596b
mov eax, dword [eax]
test eax, eax
jne 0x1013594f
jmp 0x10135978
xor eax, eax
dec eax
jmp 0x101359a5
test eax, eax
je 0x10135978
mov ecx, dword [eax + 4]
mov dword [esi + 4], ecx
mov dword [eax + 4], esi
mov dword [esi], eax
jmp 0x10135989
mov eax, dword [edi + 4]
mov dword [esi + 4], eax
mov dword [esi], 0
mov dword [edi + 4], esi
xor eax, eax
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x10135992
mov dword [ecx], esi
cmp dword [edi], eax
jne 0x10135998
mov dword [edi], esi
push dword [edi + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
xor eax, eax
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 0x1013592a
Function at 0x101359d0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov eax, dword [ecx + 8]
mov esi, edx
mov ebx, ecx
mov dword [ebp - 0x14], eax
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
mov dword [ebp - 0x10], eax
je 0x10135aaa
mov edi, dword [ebp - 0x14]
lea eax, [edi + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov eax, dword [ebp - 0x10]
mov dword [edi + 8], eax
mov ecx, dword [esi + 4]
mov eax, dword [esi]
test ecx, ecx
cmove ecx, ebx
mov dword [ecx], eax
lea ecx, [ebx + 4]
mov eax, dword [esi]
mov edx, dword [esi + 4]
test eax, eax
lea eax, [eax + 4]
cmove eax, ecx
mov dword [eax], edx
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], eax
push dword [ebx + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
mov eax, dword [ebx + 8]
mov dword [ebp - 0x10], eax
push dword [0x101d4d30]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
mov dword [ebp - 0x14], ebx
je 0x10135ac1
mov ebx, dword [ebp - 0x10]
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], edi
mov ebx, dword [esi + 0xc]
lea eax, [ebx - 1]
mov dword [esi + 0xc], eax
mov eax, dword [ebp - 0x14]
push dword [eax + 8]
call sym.nss3.dll_PR_Unlock
add esp, 4
cmp ebx, 1
jne 0x10135aa2
mov eax, dword [esi + 8]
lock dec dword [eax + 0x48]
jne 0x10135a96
push eax
call fcn.10135de0
add esp, 4
push esi
call dword [sym.imp.mozglue.dll_free]
add esp, 0xc
jmp 0x10135aa5
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 dword [ebp - 0x10], eax
jmp 0x101359fa
xor eax, eax
push eax
push eax
push 1
push eax
call fcn.100e2c70
add esp, 0x10
mov edi, eax
jmp 0x10135a58

Function at 0x10135ae0
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 0x10135b26
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], esi
mov esi, dword [edi]
test esi, esi
je 0x10135b14
inc dword [esi + 0xc]
push dword [edi + 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 0x10135afe