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

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push dword [0x100db8a4]
mov esi, dword [ebx + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002aede
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0xc
push edi
lea edi, [ebx + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x1002af08
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0xc
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002af46
mov eax, dword [ebx + 8]
mov ecx, dword [eax + ecx*4 + 0xc]
test ecx, ecx
je 0x1002af46
push dword [ebp + 0x10]
call fcn.10011b40
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop edi
pop esi
sete al
pop ebx
pop ebp
ret 0xc
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0xc

Function at 0x1002af60
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002af8e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002afb8
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002aff6
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0xc]
test ecx, ecx
je 0x1002aff6
mov eax, dword [ecx]
push dword [ebp + 0x10]
call dword [eax + 4]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop ebx
pop edi
sete al
pop esi
pop ebp
ret 0xc
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
Function at 0x1002b010
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b03e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b066
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002b09d
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0xc]
test ecx, ecx
je 0x1002b09d
mov eax, dword [ecx]
call dword [eax + 8]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, 1
pop esi
pop ebp
ret 8
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8

Function at 0x1002b0c0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b0ee
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b116
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002b15f
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0xc]
test ecx, ecx
je 0x1002b15f
mov eax, dword [ecx + 0x60]
mov edx, dword [ebp + 0x10]
cmp eax, edx
je 0x1002b142
mov eax, dword [ecx]
push edx
call dword [eax + 0x18]
mov edi, eax
jmp 0x1002b144
xor edi, edi
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test edi, edi
pop edi
sete al
pop esi
pop ebp
ret 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
Function at 0x1002b180
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b1ae
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b1d6
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002b214
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0xc]
test eax, eax
je 0x1002b214
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x1002b214
mov eax, dword [eax + 0x60]
push esi
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, 1
pop esi
pop ebp
ret 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc

Function at 0x1002b230
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push dword [0x100db8a4]
mov esi, dword [ebx + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b25e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
xor eax, eax
pop ebx
pop ebp
ret 8
push edi
lea edi, [ebx + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x1002b288
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 8
mov eax, dword [ecx]
call dword [eax + 0x38]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x1002b2ac
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 8
mov ecx, dword [ebx + 8]
push eax
call fcn.1001f580
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop edi
pop esi
sete al
pop ebx
pop ebp
ret 8
Function at 0x1002b2e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
mov ebx, dword [ebp + 8]
push esi
push dword [0x100db8a4]
mov esi, dword [ebx + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b30e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0xc
push edi
lea edi, [ebx + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x1002b338
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0xc
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002b37e
mov eax, dword [ebx + 8]
mov ecx, dword [eax + ecx*4 + 0xa0]
test ecx, ecx
je 0x1002b37e
mov eax, dword [ebp + 0x10]
test eax, eax
je 0x1002b37e
push eax
call fcn.10012a90
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop edi
pop esi
sete al
pop ebx
pop ebp
ret 0xc
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 0xc

Function at 0x1002b3a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b3ce
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b3f6
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002b438
mov eax, dword [edi + 8]
mov edi, dword [eax + ecx*4 + 0xc]
test edi, edi
je 0x1002b438
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0x10]
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, 1
pop esi
pop ebp
ret 8
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
Function at 0x1002b450
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
push dword [0x100db8a4]
mov edi, ecx
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b477
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
ret
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b49e
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
ret
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
call dword [eax + 0x40]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop ebx
pop edi
sete al
pop esi
ret

Function at 0x1002b4d0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push dword [0x100db8a4]
mov edi, ecx
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b4fd
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b527
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [edi + 8]
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x44]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop ebx
pop edi
sete al
pop esi
pop ebp
ret 8

Function at 0x1002b560
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push dword [0x100db8a4]
mov edi, ecx
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b58d
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b5b7
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [edi + 8]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x58]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop ebx
pop edi
sete al
pop esi
pop ebp
ret 4
Function at 0x1002b5f0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
push dword [0x100db8a4]
mov ebx, ecx
mov esi, dword [ebx + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b61d
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop esi
xor eax, eax
pop ebx
pop ebp
ret 4
push edi
lea edi, [ebx + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x1002b647
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 4
mov eax, dword [ecx]
call dword [eax + 0x38]
mov edx, dword [ebp + 8]
test edx, edx
jne 0x1002b66b
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
xor eax, eax
pop ebx
pop ebp
ret 4
mov ecx, dword [ebx + 8]
push edx
mov eax, dword [ecx]
call dword [eax + 0x5c]
push edi
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop edi
pop esi
sete al
pop ebx
pop ebp
ret 4

Function at 0x1002b6a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push dword [0x100db8a4]
mov edi, ecx
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b6cd
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b6f7
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [edi + 8]
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x48]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop ebx
pop edi
sete al
pop esi
pop ebp
ret 8
Function at 0x1002b730
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push dword [0x100db8a4]
mov edi, ecx
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b75d
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b787
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [edi + 8]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x4c]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop ebx
pop edi
sete al
pop esi
pop ebp
ret 4

Function at 0x1002b7c0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push dword [0x100db8a4]
mov edi, ecx
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b7ed
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b817
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [edi + 8]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x50]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop ebx
pop edi
sete al
pop esi
pop ebp
ret 4

Function at 0x1002b850
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
push dword [0x100db8a4]
mov edi, ecx
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b87d
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b8a7
push ebx
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [edi + 8]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 0x54]
push ebx
mov esi, eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push esi
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
test esi, esi
pop ebx
pop edi
sete al
pop esi
pop ebp
ret 4
Function at 0x1002b8e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b90e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002b936
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
mov eax, dword [ecx]
push ebx
call dword [eax + 0x38]
mov ebx, dword [ebp + 0xc]
test ebx, ebx
jne 0x1002b95b
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
xor eax, eax
pop esi
pop ebp
ret 8
mov ecx, dword [edi + 8]
mov eax, dword [ecx]
mov eax, dword [eax + 0x60]
call eax
movzx eax, al
push esi
mov dword [ebx], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop ebx
pop edi
mov eax, 1
pop esi
pop ebp
ret 8

Function at 0x1002b9b0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002b9de
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002ba06
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002ba4b
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002ba4b
cmp dword [ebp + 0x10], 0
setne al
movzx eax, al
push eax
call fcn.10016a70
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, 1
pop esi
pop ebp
ret 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
Function at 0x1002ba70
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002ba9e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002bac6
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002bb0b
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0x134]
test eax, eax
je 0x1002bb0b
mov ecx, dword [ebp + 0x10]
push esi
test ecx, ecx
je 0x1002bb0c
movzx eax, byte [eax + 0x1650]
mov dword [ecx], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, 1
pop esi
pop ebp
ret 0xc
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0xc

Function at 0x1002bb30
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push esi
push edi
mov edi, dword [ebp + 8]
push dword [0x100db8a4]
mov esi, dword [edi + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002bb5e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x10
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002bb86
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x10
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002bbc9
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002bbc9
fld qword [ebp + 0x10]
sub esp, 8
fstp qword [esp]
call fcn.10016ac0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
mov eax, 1
pop esi
pop ebp
ret 0x10
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0x57
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x10