joyce8/EMBER2024-capa huggingface dataset:
Function at 0x10072be0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x98
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 8], eax
lea esi, [ebp - 0x98]
push 0x90
push 0
push esi
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
mov dword [esi - 4], 0x94
lea eax, [ebp - 0x9c]
push eax
call dword [sym.imp.kernel32.dll_GetVersionExA]
test eax, eax
je 0x10072c75
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp + 0xc]
mov edx, dword [ebp + 8]
mov esi, dword [ebp - 0x8c]
cmp esi, 2
jne 0x10072c89
xor esi, esi
cmp edx, 5
je 0x10072caf
cmp edx, 2
jne 0x10072c5f
push dword [ebp - 0x94]
push dword [ebp - 0x98]
push 0x101d1a62
push ecx
push eax
call sym.nss3.dll_PR_snprintf
add esp, 0x14
jmp 0x10072cc4
cmp edx, 1
jne 0x10072cc4
push str.Windows_NT
push ecx
push eax
call sym.nss3.dll_PR_snprintf
add esp, 0xc
jmp 0x10072cc4
call dword [sym.imp.kernel32.dll_GetLastError]
push eax
call fcn.10129ef0
add esp, 4
xor esi, esi
dec esi
jmp 0x10072cc4
cmp esi, 1
jne 0x10072cd9
xor esi, esi
cmp edx, 5
je 0x10072caf
cmp edx, 2
je 0x10072c42
cmp edx, 1
jne 0x10072cc4
cmp dword [ebp - 0x98], 4
jbe 0x10072d0f
push str.Windows_98
jmp 0x10072c69
push dword [ebp - 0x90]
push 0x101d1f2c
push ecx
push eax
call sym.nss3.dll_PR_snprintf
add esp, 0x10
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10157a00
mov eax, esi
add esp, 0x98
pop esi
pop ebp
ret
cmp edx, 2
je 0x10072cf6
cmp edx, 1
jne 0x10072cff
push str.Windows_Unknown
push ecx
push eax
call sym.nss3.dll_PR_snprintf
add esp, 0xc
xor esi, esi
jmp 0x10072cc4
xor esi, esi
push esi
push esi
jmp 0x10072c4e
xor esi, esi
cmp edx, 5
jne 0x10072cc4
test ecx, ecx
je 0x10072cc4
mov byte [eax], 0
jmp 0x10072cc4
jne 0x10072d1a
cmp dword [ebp - 0x94], 0
jne 0x10072ca8
push str.Windows_95
jmp 0x10072c69
Function at 0x10074fb0
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]
cmp dword [0x101f4f80], 0
je 0x10075118
test esi, esi
je 0x10075122
push esi
call sub.api_ms_win_crt_string_l1_1_0.dll_strlen
add esp, 4
inc eax
push eax
call dword [sym.imp.mozglue.dll_malloc]
add esp, 4
test eax, eax
je 0x10075140
push esi
mov dword [ebp - 0x14], eax
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_strcpy
add esp, 8
mov edi, dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, dword [sym.imp.mozglue.dll_calloc]
mov esi, dword [0x101f4558]
mov eax, dword [0x101f455c]
inc eax
cmp eax, esi
jge 0x10075071
mov dword [ebp - 0x18], esi
mov dword [ebp - 0x10], 0
mov esi, dword [0x101f4550]
push dword [0x101f45d4]
call edi
mov ebx, eax
test eax, eax
je 0x100750fb
lea eax, [esi + 0x1c]
push eax
mov eax, dword [sym.imp.kernel32.dll_EnterCriticalSection]
call eax
mov dword [esi + 8], ebx
mov edi, dword [0x101f455c]
lea ebx, [edi + 1]
mov eax, dword [0x101f4558]
xor esi, esi
cmp ebx, eax
jl 0x10075093
cmp dword [ebp - 0x10], 0
mov ecx, dword [ebp - 0x14]
je 0x10075175
cmp ebx, dword [ebp - 0x18]
jl 0x100750d4
jmp 0x10075175
lea eax, [esi*4 + 0x40]
push eax
push 1
call ebx
add esp, 8
test eax, eax
je 0x1007512e
mov dword [ebp - 0x10], eax
add esi, 0x10
mov dword [ebp - 0x18], esi
jmp 0x10075020
mov ecx, dword [ebp - 0x14]
test ecx, ecx
je 0x100750a3
mov eax, dword [0x101f4554]
mov dword [eax + edi*4 + 4], ecx
mov dword [0x101f455c], ebx
push dword [0x101f4550]
call sym.nss3.dll_PR_Unlock
add esp, 4
test esi, esi
jne 0x10075157
mov eax, dword [ebp - 0x10]
test eax, eax
jne 0x10075166
mov eax, ebx
add esp, 0xc
pop esi
pop edi
pop ebx
pop ebp
ret
mov esi, dword [0x101f4554]
test eax, eax
jne 0x100751aa
mov eax, dword [ebp - 0x10]
mov dword [0x101f4554], eax
mov eax, dword [ebp - 0x18]
mov dword [0x101f4558], eax
mov dword [ebp - 0x10], 0
jmp 0x10075096
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov ebx, eax
jmp 0x10075038
call fcn.1001b2e0
jmp 0x10074fc9
mov dword [ebp - 0x14], 0
jmp 0x10074ffa
cmp dword [ebp - 0x14], 0
je 0x10075140
push dword [ebp - 0x14]
call dword [sym.imp.mozglue.dll_free]
add esp, 4
push 0
push 0xffffe890
call sym.nss3.dll_PR_SetError
add esp, 8
xor ebx, ebx
dec ebx
jmp 0x100750ca
push esi
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x100750bf
push eax
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x100750ca
push dword [0x101f4550]
call sym.nss3.dll_PR_Unlock
add esp, 4
cmp dword [ebp - 0x10], 0
mov edi, dword [sym.imp.kernel32.dll_TlsGetValue]
mov ebx, dword [sym.imp.mozglue.dll_calloc]
je 0x10075006
push dword [ebp - 0x10]
call dword [sym.imp.mozglue.dll_free]
add esp, 4
jmp 0x10075006
shl eax, 2
push eax
push esi
push dword [ebp - 0x10]
call sub.VCRUNTIME140.dll_memcpy
mov ecx, dword [ebp - 0x14]
add esp, 0xc
jmp 0x100750e2
Function at 0x10075610
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 [0x101f4f80], 0
je 0x100756ae
mov dword [esp], edi
mov dword [esp + 4], 0x3d
call sub.VCRUNTIME140.dll_strchr
test eax, eax
je 0x100756b8
mov ebx, dword [0x101f45e0]
test ebx, ebx
je 0x10075670
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 0x1007569a
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], esi
mov dword [esp], edi
call dword [sym.imp.api_ms_win_crt_environment_l1_1_0.dll__putenv]
mov esi, eax
mov eax, dword [0x101f45e0]
test eax, eax
je 0x1007568c
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
xor eax, eax
neg esi
sbb 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 0x1007565e
call fcn.1001b2f0
jmp 0x10075629
xor eax, eax
dec eax
jmp 0x10075692
Function at 0x100756c0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x10
cmp dword [0x101f4f80], 0
je 0x100757d1
mov ebx, dword [ebp + 8]
mov edi, dword [0x101f4610]
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 0x100757a6
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], esi
mov esi, dword [ebx + 8]
mov eax, dword [0x101f4610]
mov edi, dword [ebx]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
test edi, edi
jne 0x10075817
xor eax, eax
inc eax
xchg dword [ebx + 4], eax
test eax, eax
jne 0x100757db
mov esi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
call dword [section..00cfg]
mov dword [esp], esi
call ecx
mov esi, eax
mov ebx, dword [0x101f4610]
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 0x100757bd
lea eax, [ebx + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 8], edi
mov eax, dword [ebp + 8]
mov dword [eax + 8], esi
mov dword [eax], 1
mov eax, dword [0x101f4614]
mov dword [esp], eax
call sym.nss3.dll_PR_NotifyAllCondVar
mov eax, dword [0x101f4610]
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 0x100756fa
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov edi, eax
jmp 0x10075764
call fcn.1001b2f0
jmp 0x100756d6
mov eax, dword [0x101f4610]
mov dword [esp], eax
call sym.nss3.dll_PR_Lock
mov eax, dword [ebp + 8]
cmp dword [eax], 0
jne 0x10075807
mov eax, dword [0x101f4614]
mov dword [esp], eax
mov dword [esp + 4], 0xffffffff
call sym.nss3.dll_PR_WaitCondVar
jmp 0x100757e8
mov esi, dword [eax + 8]
mov eax, dword [0x101f4610]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
test esi, esi
je 0x10075834
call sym.nss3.dll_PR_GetCurrentThread
mov dword [eax + 0x28], 0xffffe8db
xor ecx, ecx
mov dword [eax + 0x2c], ecx
mov dword [eax + 0x30], ecx
jmp 0x1007579c
xor esi, esi
jmp 0x1007579c
Function at 0x10075ab0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
mov edi, dword [ebp + 8]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10075b22
mov ecx, edi
mov edi, dword [edi]
cmp dword [edi + 8], esi
jne 0x10075b52
mov ebx, 0x1002
mov eax, dword [esi + 0xe0]
and eax, ebx
cmp eax, 2
je 0x10075b3c
mov eax, dword [ebp + 0xc]
mov edx, ecx
mov dword [esi + 0xd8], ecx
xor ecx, ecx
mov dword [edi + 8], ecx
lea ecx, [edi + 0x1c]
add edx, 0x74
push eax
push ecx
push edx
call sym.nss3.dll__PR_MD_WAIT_CV
xor eax, eax
add esp, 0xc
mov dword [esi + 0xd8], eax
mov dword [edi + 8], esi
and ebx, dword [esi + 0xe0]
cmp ebx, 2
je 0x10075b3c
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 0x10075acb
push 0
push 0xffffe897
call sym.nss3.dll_PR_SetError
add esp, 8
and byte [esi + 0xe0], 0xfd
xor eax, eax
dec eax
jmp 0x10075b1d
Function at 0x10075b60
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, dword [ebp + 8]
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10075cd2
mov ebx, dword [esi + 0xe8]
test ebx, ebx
je 0x10075d2a
lea eax, [ebx + 4]
cmp dword [ebx + 4], eax
jne 0x10075d3e
mov edi, dword [0x101f4f88]
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 0x10075ce7
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [edi + 8], esi
mov edi, dword [ebp + 8]
cmp dword [edi], 5
jne 0x10075c3d
mov esi, dword [0x101f4f88]
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10075cfe
cmp dword [esi + 8], eax
jne 0x10075c10
mov dword [esi + 8], 0
add esi, 0x1c
mov dword [esp], esi
call sym.nss3.dll__PR_MD_UNLOCK
xor eax, eax
inc eax
mov dword [edi], eax
mov ecx, dword [edi + 0x100]
mov dword [esp + 4], eax
mov dword [esp], ecx
mov dword [esp + 8], 0
call dword [sym.imp.kernel32.dll_ReleaseSemaphore]
sub esp, 0xc
xor eax, eax
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
lea eax, [ebx + 0x74]
mov dword [ebp - 0x10], 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 0x10075d13
mov edi, dword [ebx]
cmp dword [edi + 8], esi
jne 0x10075cc1
mov eax, dword [esi + 0xe0]
mov ecx, 0x1002
and eax, ecx
cmp eax, 2
je 0x10075d46
mov dword [esi + 0xd8], ebx
xor eax, eax
mov dword [edi + 8], eax
lea eax, [edi + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
mov dword [esp + 8], 0xffffffff
call sym.nss3.dll__PR_MD_WAIT_CV
xor eax, eax
mov dword [esi + 0xd8], eax
mov dword [edi + 8], esi
mov eax, dword [esi + 0xe0]
mov ecx, 0x1002
and eax, ecx
cmp eax, 2
je 0x10075d46
mov edi, dword [ebp + 8]
cmp dword [edi], 5
je 0x10075bda
jmp 0x10075c43
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x10075b85
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x10075bc0
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x10075bf9
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x10075c5e
mov dword [esp + 4], 0
mov dword [esp], 0xffffe89d
call sym.nss3.dll_PR_SetError
xor eax, eax
dec eax
jmp 0x10075c35
mov dword [esp + 4], 0
mov dword [esp], 0xffffe897
call sym.nss3.dll_PR_SetError
and byte [esi + 0xe0], 0xfd
jmp 0x10075cc1
Function at 0x10076060
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 0x14
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 0x100760ef
mov ebx, dword [ebp + 8]
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 0x10076106
lea eax, [ebx + 0x20]
mov dword [ebp - 0x10], eax
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
sub esp, 4
mov dword [ebx + 0xc], edi
xor edi, edi
cmp dword [ebx + 0x88], esi
je 0x1007612c
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x1007611a
cmp dword [ebx + 0xc], eax
jne 0x100760e5
mov dword [ebx + 0xc], 0
mov eax, dword [ebp - 0x10]
mov dword [esp], eax
call sym.nss3.dll__PR_MD_UNLOCK
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x10076080
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov edi, eax
jmp 0x1007609a
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x100760ce
mov edi, dword [ebx + 0x194]
jmp 0x100760b9

Function at 0x10077bc0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x10
mov edi, 0xffffe8d2
mov esi, dword [ebp + 8]
cmp esi, 0x2733
jne 0x10077c1c
cmp dword [0x101f4f80], 0
je 0x10077c2b
mov eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
test eax, eax
je 0x10077c0a
mov dword [eax + 0x28], edi
mov dword [eax + 0x2c], esi
mov dword [eax + 0x30], 0
add esp, 0x10
pop esi
pop edi
pop ebp
ret
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
jmp 0x10077bf6
cmp esi, 0x274c
jne 0x10077c32
mov edi, 0xffffe89a
jmp 0x10077bd8
call fcn.1001b2e0
jmp 0x10077be1
cmp esi, 0x2726
jne 0x10077c41
mov edi, 0xffffe8d3
jmp 0x10077bd8
add esp, 0x10
pop esi
pop edi
pop ebp
jmp fcn.10129ef0

Function at 0x100790e0
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
push esi
sub esp, 0x28
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [ebp - 8], eax
lea esi, [ebp - 0x2c]
push esi
call dword [sym.imp.kernel32.dll_GetSystemInfo]
mov esi, dword [esi + 0x14]
mov ecx, dword [ebp - 8]
xor ecx, ebp
call fcn.10157a00
mov eax, esi
add esp, 0x28
pop esi
pop ebp
ret

Function at 0x10079110
Capabilities:
Get memory capacity

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x48
mov eax, dword [0x101f1014]
xor eax, ebp
mov dword [esp + 0x44], eax
mov eax, esp
mov dword [eax], 0x40
push eax
call dword [sym.imp.kernel32.dll_GlobalMemoryStatusEx]
mov esi, eax
mov edi, eax
test eax, eax
je 0x10079145
mov esi, dword [esp + 0xc]
mov edi, dword [esp + 8]
mov ecx, dword [esp + 0x44]
xor ecx, ebp
call fcn.10157a00
mov eax, edi
mov edx, esi
lea esp, [ebp - 8]
pop esi
pop edi
pop ebp
ret
Function at 0x10079160
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 eax, dword [0x101f45d4]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_TlsGetValue]
sub esp, 4
mov ecx, eax
test eax, eax
je 0x100791d2
mov eax, dword [esi]
cmp dword [eax + 8], ecx
jne 0x100791e6
add esi, 0x74
mov ecx, dword [eax + 0x34]
add eax, 0x34
xor edi, edi
test ecx, ecx
jg 0x100791b5
lea edx, [edi + edi*2]
mov dword [eax + edx*4 + 8], 1
mov dword [eax + edx*4 + 4], esi
inc ecx
mov dword [eax], ecx
xor eax, eax
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, eax
add eax, 8
mov edx, ecx
cmp dword [eax - 4], esi
je 0x100791eb
add eax, 0xc
dec edx
jne 0x100791bc
cmp ecx, 6
jge 0x100791f4
mov eax, ebx
mov edi, ecx
jmp 0x10079199
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov ecx, eax
jmp 0x10079183
xor eax, eax
dec eax
jmp 0x100791ad
mov ecx, dword [eax]
cmp ecx, 0xffffffff
jne 0x100791a8
jmp 0x100791ab
mov eax, dword [ebx + 0x4c]
test eax, eax
jne 0x10079213
mov dword [esp + 4], 0x50
mov dword [esp], 1
call dword [sym.imp.mozglue.dll_calloc]
mov dword [ebx + 0x4c], eax
mov ecx, dword [eax]
jmp 0x10079195

Function at 0x100792e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
cmp dword [0x101f4f80], 0
je 0x100793b3
mov ebx, dword [ebp + 8]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov esi, eax
test eax, eax
je 0x10079396
cmp ebx, 0x80
jae 0x100793bd
mov edi, dword [esi + 0x24]
test edi, edi
je 0x10079353
cmp dword [esi + 0x20], ebx
jbe 0x10079353
mov ecx, dword [edi + ebx*4]
test ecx, ecx
je 0x10079392
mov eax, dword [0x101f4ff8]
cmp dword [eax + ebx*4], 0
je 0x10079392
mov dword [edi + ebx*4], 0
mov edi, ecx
mov ecx, dword [eax + ebx*4]
call dword [section..00cfg]
push edi
call ecx
add esp, 4
mov eax, dword [esi + 0x24]
jmp 0x10079385
movzx ebx, byte [0x101f4ffc]
mov eax, ebx
shl eax, 9
push eax
push 1
call dword [sym.imp.mozglue.dll_calloc]
add esp, 8
test eax, eax
je 0x100793d1
test edi, edi
jne 0x100793da
movzx ecx, bl
and ecx, 1
shl ecx, 7
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], eax
mov ebx, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov dword [eax + ebx*4], ecx
xor eax, eax
pop esi
pop edi
pop ebx
pop ebp
ret
mov eax, edi
jmp 0x10079385
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
mov esi, eax
jmp 0x1007930c
call fcn.1001b2f0
jmp 0x100792f3
push 0
push 0xffffe8ac
call sym.nss3.dll_PR_SetError
add esp, 8
xor eax, eax
dec eax
jmp 0x1007938d
push 0
push 0xffffe890
jmp 0x100793c4
mov ecx, dword [esi + 0x20]
shl ecx, 2
push ecx
push edi
push eax
mov edi, eax
call sub.VCRUNTIME140.dll_memcpy
add esp, 0xc
push dword [esi + 0x24]
call dword [sym.imp.mozglue.dll_free]
mov eax, edi
add esp, 4
mov bl, byte [0x101f4ffc]
jmp 0x10079373
Function at 0x1007c120
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
sub esp, 8
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 8]
cmp dword [ebp + 0x10], ebx
sbb eax, dword [ebp + 0xc]
jge 0x1007c14d
push 0
push 0xffffe005
call sym.nss3.dll_PR_SetError
add esp, 8
xor esi, esi
jmp 0x1007c24e
push 0x800
call sym.nss3.dll_PORT_NewArena_Util
add esp, 4
xor esi, esi
test eax, eax
je 0x1007c24e
mov edi, eax
push 0x1c
push eax
call sym.nss3.dll_PORT_ArenaAlloc_Util
add esp, 8
test eax, eax
je 0x1007c24e
mov esi, eax
mov dword [ebp - 0x14], eax
lea ecx, [eax + 4]
xor eax, eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], eax
xorps xmm0, xmm0
movups xmmword [esi + 4], xmm0
mov dword [esi], edi
push dword [ebp + 0xc]
push ebx
mov dword [ebp - 0x10], ecx
push ecx
push edi
call fcn.100d2a60
add esp, 0x10
test eax, eax
je 0x1007c1e5
cmp dword [0x101f4f80], 0
je 0x1007c28b
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x1007c258
cmp dword [eax + 0x28], 0xffffe005
jne 0x1007c23b
push dword [ebp + 0xc]
push ebx
push dword [ebp - 0x10]
push edi
call fcn.100d30b0
add esp, 0x10
test eax, eax
jne 0x1007c23b
mov eax, dword [ebp - 0x14]
add eax, 0x10
push dword [ebp + 0x14]
push dword [ebp + 0x10]
mov ebx, eax
push eax
push edi
call fcn.100d2a60
add esp, 0x10
test eax, eax
je 0x1007c24e
cmp dword [0x101f4f80], 0
je 0x1007c295
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
test eax, eax
je 0x1007c273
cmp dword [eax + 0x28], 0xffffe005
jne 0x1007c23b
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
push edi
call fcn.100d30b0
add esp, 0x10
test eax, eax
je 0x1007c24e
mov eax, dword [esi]
xor esi, esi
test eax, eax
je 0x1007c24e
push 0
push eax
call sym.nss3.dll_PORT_FreeArena_Util
add esp, 8
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
jmp 0x1007c1c8
sub esp, 0x10
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
add esp, 0x10
jmp 0x1007c21e
call fcn.1001b2e0
jmp 0x1007c1b4
call fcn.1001b2e0
jmp 0x1007c20e
Function at 0x1007d670
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
push eax
xor edi, edi
dec edi
cmp dword [0x101f5030], 0
je 0x1007d73f
mov eax, dword [ebp + 0xc]
add eax, 0x3c
push eax
call sym.nss3.dll_SECITEM_DupItem_Util
add esp, 4
test eax, eax
je 0x1007d730
mov esi, eax
push dword [ebp + 8]
call sym.nss3.dll_SECITEM_DupItem_Util
add esp, 4
test eax, eax
je 0x1007d725
mov dword [ebp - 0x10], eax
mov ebx, dword [0x101f5030]
push dword [0x101f45d4]
call dword [sym.imp.kernel32.dll_TlsGetValue]
mov edi, eax
test eax, eax
je 0x1007d749
lea eax, [ebx + 0x1c]
push eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
mov dword [ebx + 8], edi
mov edi, dword [ebp + 8]
push edi
push dword [0x101f502c]
call sym.nss3.dll_PL_HashTableLookup
add esp, 8
test eax, eax
je 0x1007d6fc
push edi
push dword [0x101f502c]
call sym.nss3.dll_PL_HashTableRemove
add esp, 8
push esi
push dword [ebp - 0x10]
push dword [0x101f502c]
call sym.nss3.dll_PL_HashTableAdd
add esp, 0xc
xor edi, edi
cmp eax, 1
sbb edi, edi
push dword [0x101f5030]
call sym.nss3.dll_PR_Unlock
add esp, 4
jmp 0x1007d73f
push 1
push esi
call sym.nss3.dll_SECITEM_FreeItem_Util
add esp, 8
push 0
push 0xffffe013
call sym.nss3.dll_PR_SetError
add esp, 8
mov eax, edi
add esp, 4
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 0x1007d6ca
Function at 0x1007e0d0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
sub esp, 0x10
cmp dword [0x101f502c], 0
je 0x1007e15a
mov edi, dword [0x101f5030]
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 0x1007e1e1
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 [0x101f502c]
mov dword [esp], eax
call sym.nss3.dll_PL_HashTableDestroy
xor esi, esi
mov dword [0x101f502c], esi
mov eax, dword [0x101f5030]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov edi, dword [0x101f5030]
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DeleteCriticalSection]
sub esp, 4
mov dword [esp], edi
call dword [sym.imp.mozglue.dll_free]
mov dword [0x101f5030], esi
cmp dword [0x101f5024], 0
je 0x1007e1d8
mov edi, dword [0x101f5028]
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 0x1007e1f8
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 [0x101f5024]
mov dword [esp], eax
call sym.nss3.dll_PL_HashTableDestroy
xor esi, esi
mov dword [0x101f5024], esi
mov eax, dword [0x101f5028]
mov dword [esp], eax
call sym.nss3.dll_PR_Unlock
mov edi, dword [0x101f5028]
lea eax, [edi + 0x1c]
mov dword [esp], eax
call dword [sym.imp.kernel32.dll_DeleteCriticalSection]
sub esp, 4
mov dword [esp], edi
call dword [sym.imp.mozglue.dll_free]
mov dword [0x101f5028], esi
xor eax, eax
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 0x1007e102
movaps xmm0, xmmword [0x101b11e0]
movups xmmword [esp], xmm0
call fcn.1006e720
mov esi, eax
jmp 0x1007e180