joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1002c960
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 0x1002c98e
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 0x1002c9b6
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 0x1002c9fa
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0x134]
test eax, eax
je 0x1002c9fa
mov ecx, dword [ebp + 0x10]
push esi
test ecx, ecx
je 0x1002c9fb
mov eax, dword [eax + 0x14a0]
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 0x1002ca20
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 0x1002ca4e
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 0x1002ca76
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 0x1002caba
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0x134]
test eax, eax
je 0x1002caba
mov ecx, dword [ebp + 0x10]
push esi
test ecx, ecx
je 0x1002cabb
mov eax, dword [eax + 0xa4]
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 0x1002cae0
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 0x1002cb0e
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 0x1002cb36
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 0x1002cb76
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002cb76
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.10029f00
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

Function at 0x1002cb90
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 0x1002cbbe
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 0x1002cbe8
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 0x1002cc29
mov eax, dword [ebx + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002cc29
push dword [ebp + 0x10]
call fcn.10017e90
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 0x1002cc50
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 0x1002cc7e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x14
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002cca8
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 0x14
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002ccef
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002ccef
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.10017f50
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 0x14
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 0x14

Function at 0x1002cd10
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 0x1002cd3e
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 0x1002cd68
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.1001f730
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 0x1002cda0
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 0x1002cdce
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 4
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002cdf6
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 4
mov eax, dword [ecx]
call dword [eax + 0x38]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [edi + 8]
pop edi
pop esi
movzx eax, byte [eax + 0x340]
pop ebp
ret 4

Function at 0x1002ce20
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 0x1002ce4e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x14
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002ce78
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 0x14
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002cebf
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002cebf
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.10018230
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 0x14
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 0x14
Function at 0x1002cee0
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 0x1002cf0e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x14
push ebx
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002cf38
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 0x14
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002cf7f
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002cf7f
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.10018460
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 0x14
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 0x14

Function at 0x1002cfa0
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 0x1002cfce
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 0x1002cff8
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]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002d044
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002d044
cmp dword [ebp + 0x14], 0
setne al
movzx eax, al
push eax
push dword [ebp + 0x10]
call fcn.10018530
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
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 0x10
Function at 0x1002d060
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 0x1002d08e
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 0x1002d0b6
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 edx, dword [ebp + 0xc]
cmp edx, 0x25
jae 0x1002d104
mov eax, dword [edi + 8]
mov edx, dword [eax + edx*4 + 0x134]
test edx, edx
je 0x1002d104
mov ecx, dword [ebp + 0x14]
push esi
test ecx, ecx
je 0x1002d105
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
add eax, eax
movzx eax, byte [edx + eax*8 + 0x1530]
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 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

Function at 0x1002d120
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 0x1002d14e
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 0x1002d178
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]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002d1bc
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002d1bc
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.100185c0
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
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 0x10
Function at 0x1002d1e0
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 0x1002d20e
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 0x1002d236
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 edx, dword [ebp + 0xc]
cmp edx, 0x25
jae 0x1002d283
mov eax, dword [edi + 8]
mov edx, dword [eax + edx*4 + 0x134]
test edx, edx
je 0x1002d283
mov ecx, dword [ebp + 0x14]
push esi
test ecx, ecx
je 0x1002d284
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
add eax, eax
mov eax, dword [edx + eax*8 + 0x1534]
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 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

Function at 0x1002d2a0
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 0x1002d2ce
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 0x1002d2f8
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]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002d33c
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002d33c
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.10018630
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
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 0x10
Function at 0x1002d360
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 0x1002d38e
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 0x1002d3b6
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 edx, dword [ebp + 0xc]
cmp edx, 0x25
jae 0x1002d403
mov eax, dword [edi + 8]
mov edx, dword [eax + edx*4 + 0x134]
test edx, edx
je 0x1002d403
mov ecx, dword [ebp + 0x14]
push esi
test ecx, ecx
je 0x1002d404
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
add eax, eax
mov eax, dword [edx + eax*8 + 0x1538]
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 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

Function at 0x1002d420
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 0x1002d44e
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 0x1002d478
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]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002d4bc
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002d4bc
push dword [ebp + 0x14]
push dword [ebp + 0x10]
call fcn.100186c0
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
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 0x10
Function at 0x1002d4e0
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 0x1002d50e
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 0x1002d536
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 edx, dword [ebp + 0xc]
cmp edx, 0x25
jae 0x1002d583
mov eax, dword [edi + 8]
mov edx, dword [eax + edx*4 + 0x134]
test edx, edx
je 0x1002d583
mov ecx, dword [ebp + 0x14]
push esi
test ecx, ecx
je 0x1002d584
mov eax, dword [ebp + 0x10]
lea eax, [eax + eax*8]
add eax, eax
mov eax, dword [edx + eax*8 + 0x1578]
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 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

Function at 0x1002d5a0
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 0x1002d5ce
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 0x1002d5f8
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 0x1002d639
mov eax, dword [ebx + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002d639
push dword [ebp + 0x10]
call fcn.10018940
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