joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1002f110
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 0x1002f13d
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x10
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002f167
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 0x10
mov eax, dword [ecx]
call dword [eax + 0x38]
push dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [edi + 8]
movzx eax, ax
push eax
push dword [ebp + 8]
call fcn.1001fc20
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 0x10

Function at 0x1002f1b0
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 0x1002f1dd
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x10
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002f207
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 0x10
mov eax, dword [ecx]
call dword [eax + 0x38]
push dword [ebp + 0x14]
mov eax, dword [ebp + 0xc]
push dword [ebp + 0x10]
mov ecx, dword [edi + 8]
movzx eax, ax
push eax
push dword [ebp + 8]
call fcn.1001fc80
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 0x10
Function at 0x1002f250
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 0x1002f27e
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 0x1002f2a8
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]
mov edi, dword [ebp + 0xc]
mov dword [ebp + 8], ecx
cmp dword [ecx + 0x350], edi
je 0x1002f2e4
cmp edi, 2
ja 0x1002f2dd
mov eax, dword [ecx]
push edi
call dword [eax + 0xac]
mov esi, eax
test esi, esi
jne 0x1002f2e6
mov eax, dword [ebp + 8]
mov dword [eax + 0x350], edi
jmp 0x1002f2e6
mov esi, 0x57
jmp 0x1002f2e6
xor esi, esi
push ebx
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 0x1002f310
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 0x1002f33e
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 0x1002f366
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]
push esi
test ecx, ecx
jne 0x1002f389
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
mov eax, dword [edi + 8]
mov eax, dword [eax + 0x350]
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 8
Function at 0x1002f3b0
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 0x1002f3de
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 0x1002f408
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 edx, dword [ebp + 0xc]
test edx, edx
jne 0x1002f42c
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 edx
mov eax, dword [ecx]
call dword [eax + 0x2c]
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 0x1002f460
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 0x1002f48e
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 0x1002f4b8
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]
cmp dword [ebp + 0xc], 0
mov edi, dword [edi + 8]
setne al
mov byte [ebp + 0xb], al
cmp byte [edi + 0x38d], al
jne 0x1002f4d6
xor esi, esi
jmp 0x1002f4f9
mov byte [edi + 0x38d], al
mov ecx, edi
mov eax, dword [edi]
call dword [eax + 0xa8]
mov esi, eax
test esi, esi
je 0x1002f4f9
cmp byte [ebp + 0xb], 0
sete cl
mov byte [edi + 0x38d], cl
push ebx
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 0x1002f520
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 0x1002f54e
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 0x1002f576
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]
push esi
test ecx, ecx
jne 0x1002f599
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
mov eax, dword [edi + 8]
movzx eax, byte [eax + 0x38d]
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 8

Function at 0x1002f5c0
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 0x1002f5ee
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 0x1002f618
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]
push dword [ebp + 0xc]
mov ecx, dword [edi + 8]
call fcn.1001fd70
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 0x1002f650
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 0x1002f67e
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 0x1002f6a6
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]
push esi
test ecx, ecx
jne 0x1002f6c9
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
mov eax, dword [edi + 8]
mov ax, word [eax + 0x38e]
mov word [ecx], ax
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

Function at 0x1002f770
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 0x1002f79d
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 0x1002f7c7
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 + 0x24]
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 0x1002f800
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 0x1002f827
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 0x1002f84e
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 + 0x28]
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 0x1002f880
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 0x1002f8ae
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 0x1002f8d8
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 edx, dword [ebp + 0xc]
test edx, edx
jne 0x1002f8fc
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 edx
mov eax, dword [ecx]
call dword [eax + 0x18]
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 0x1002f930
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 0x1002f95e
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 0x1002f988
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 edx, dword [ebp + 0xc]
test edx, edx
jne 0x1002f9ac
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 edx
mov eax, dword [ecx]
call dword [eax + 0x1c]
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 0x1002f9e0
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 0x1002fa0d
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 0x1002fa37
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 eax, dword [ebp + 8]
mov ecx, dword [edi + 8]
push dword [eax + 6]
mov edx, dword [ecx]
push dword [eax + 2]
movzx eax, word [eax]
push eax
call dword [edx + 0x14]
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 0x1002fa70
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 0x1002fa9d
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 0x1002fac7
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 + 0x10]
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 0x1002fc40
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 0x1002fc6d
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 0x1002fc97
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]
mov ecx, dword [edx]
cmp ecx, 0x25
jae 0x1002fcdd
mov eax, dword [ebx + 8]
mov ecx, dword [eax + ecx*4 + 0xa0]
test ecx, ecx
je 0x1002fcdd
push dword [edx + 8]
push dword [edx + 4]
call fcn.10013650
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
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

Function at 0x1002fd00
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 0x1002fd2d
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 0x1002fd57
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 + 0xc]
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 0x1002fd90
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
push ebx
push esi
mov ebx, ecx
push edi
push dword [0x100db8a4]
mov esi, dword [ebx + 0x24]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp eax, esi
jne 0x1002fdbf
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
lea edi, [ebx + 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [ebx + 8]
test ecx, ecx
jne 0x1002fde8
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebx
pop ebp
ret 0xc
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 8]
cmp ecx, 0x25
jae 0x1002fe2f
mov eax, dword [ebx + 8]
mov ecx, dword [eax + ecx*4 + 0xa0]
test ecx, ecx
je 0x1002fe2f
fld qword [ebp + 0xc]
sub esp, 8
fstp qword [esp]
call fcn.10013810
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
sete al
pop edi
pop esi
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 0x1002fe50
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 0x1002fe7d
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 0x1002fea5
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 + 8]
cmp ecx, 0x25
jae 0x1002fee6
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0xa0]
test ecx, ecx
je 0x1002fee6
mov eax, dword [ebp + 0xc]
push esi
test eax, eax
je 0x1002fee7
fld qword [ecx + 0x48]
fstp qword [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 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