joyce8/EMBER2024-capa huggingface dataset:
Function at 0x1002bbe0
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 0x1002bc0e
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 0x1002bc36
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 0x1002bc7a
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002bc7a
mov eax, dword [ebp + 0x10]
push esi
test eax, eax
je 0x1002bc7b
fld qword [ecx + 0x1658]
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 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 0x1002bca0
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 0x1002bcce
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 0x1002bcf6
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 0x1002bd46
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0x134]
test eax, eax
je 0x1002bd46
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x1002bd46
mov eax, dword [eax + 0x1654]
mov dword [ebp + 8], eax
fld dword [ebp + 8]
fmul dword [0x100b9268]
push esi
fstp qword [ecx]
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 0x1002bd60
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 0x1002bd8e
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 0x1002bdb8
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 0x1002bdf9
mov eax, dword [ebx + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002bdf9
push dword [ebp + 0x10]
call fcn.10017470
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 0x1002be20
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 0x1002be4e
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 0x1002be76
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 0x1002beb0
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002beb0
call fcn.10017510
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 0x1002bed0
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 0x1002befe
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 0x1002bf28
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 0x1002bf95
mov eax, dword [ebx + 8]
mov ebx, dword [eax + ecx*4 + 0x134]
test ebx, ebx
je 0x1002bf95
cmp dword [ebp + 0x10], 0
setne al
mov byte [ebp + 0xb], al
cmp byte [ebx + 0x4a30], al
je 0x1002bf7a
lea esi, [ebx + 0x88]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov al, byte [ebp + 0xb]
fld1
push esi
fstp dword [ebx + 0x4a60]
mov byte [ebx + 0x4a30], al
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
pop esi
mov eax, 1
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 0x1002bfb0
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 0x1002bfde
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 0x1002c006
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 0x1002c04b
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0x134]
test eax, eax
je 0x1002c04b
mov ecx, dword [ebp + 0x10]
push esi
test ecx, ecx
je 0x1002c04c
movzx eax, byte [eax + 0x4a30]
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 0x1002c070
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x34
push ebx
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 0x1002c0a8
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
lea ebx, [edi + 0xc]
push ebx
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002c0d3
push ebx
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
mov esp, ebp
pop ebp
ret 0x20
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002c12a
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c12a
fld qword [ebp + 0x20]
sub esp, 0x18
fstp qword [esp + 0x10]
fld qword [ebp + 0x18]
fstp qword [esp + 8]
fld qword [ebp + 0x10]
fstp qword [esp]
call fcn.10017a30
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
sete al
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x20
push ebx
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
mov esp, ebp
pop ebp
ret 0x20

Function at 0x1002c150
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 0x1002c17e
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
pop edi
xor eax, eax
pop esi
pop ebp
ret 0x14
lea esi, [edi + 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [edi + 8]
test ecx, ecx
jne 0x1002c1a6
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 0x14
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002c208
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0x134]
test eax, eax
je 0x1002c208
mov ecx, dword [ebp + 0x10]
test ecx, ecx
je 0x1002c1d0
fld qword [eax + 0x4a38]
fstp qword [ecx]
mov ecx, dword [ebp + 0x14]
test ecx, ecx
je 0x1002c1df
fld qword [eax + 0x4a40]
fstp qword [ecx]
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x1002c1ee
fld qword [eax + 0x4a48]
fstp qword [ecx]
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 0x14
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 0x14
Function at 0x1002c220
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x38
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 0x1002c256
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
mov esp, ebp
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 0x1002c280
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002c2c5
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c2c5
fld qword [ebp + 0x10]
sub esp, 8
fstp qword [esp]
call fcn.10017ae0
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 1
pop edi
pop esi
mov esp, ebp
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
mov esp, ebp
pop ebp
ret 0x10

Function at 0x1002c2e0
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 0x1002c30e
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 0x1002c336
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 0x1002c37a
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c37a
mov eax, dword [ebp + 0x10]
push esi
test eax, eax
je 0x1002c37b
fld qword [ecx + 0x4a50]
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 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 0x1002c3a0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x38
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 0x1002c3d6
push 0x65b
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
mov esp, ebp
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 0x1002c400
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 6
call dword [sym.imp.KERNEL32.dll_SetLastError]
xor eax, eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ecx]
call dword [eax + 0x38]
mov ecx, dword [ebp + 0xc]
cmp ecx, 0x25
jae 0x1002c445
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c445
fld qword [ebp + 0x10]
sub esp, 8
fstp qword [esp]
call fcn.10017b50
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
push 0
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 1
pop edi
pop esi
mov esp, ebp
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
mov esp, ebp
pop ebp
ret 0x10

Function at 0x1002c460
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 0x1002c48e
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 0x1002c4b6
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 0x1002c4fa
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c4fa
mov eax, dword [ebp + 0x10]
push esi
test eax, eax
je 0x1002c4fb
fld qword [ecx + 0x4a78]
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 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 0x1002c520
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 0x1002c54e
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 0x1002c576
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 0x1002c5b9
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c5b9
mov edi, dword [ebp + 0x10]
test edi, edi
je 0x1002c5b9
call fcn.10017bc0
push esi
fstp qword [edi]
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 0x1002c5d0
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 0x1002c5fe
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 0x1002c626
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 0x1002c663
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c663
push dword [ebp + 0x10]
call fcn.10017c10
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 0x1002c680
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 0x1002c6ae
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 0x1002c6d6
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 0x1002c71a
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0x134]
test eax, eax
je 0x1002c71a
mov ecx, dword [ebp + 0x10]
push esi
test ecx, ecx
je 0x1002c71b
mov eax, dword [eax + 0x1498]
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 0x1002c740
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 0x1002c76e
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 0x1002c796
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 0x1002c7d3
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c7d3
push dword [ebp + 0x10]
call fcn.10017cb0
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 0x1002c7f0
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 0x1002c81e
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 0x1002c846
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 0x1002c88a
mov eax, dword [edi + 8]
mov eax, dword [eax + ecx*4 + 0x134]
test eax, eax
je 0x1002c88a
mov ecx, dword [ebp + 0x10]
push esi
test ecx, ecx
je 0x1002c88b
mov eax, dword [eax + 0x14a4]
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 0x1002c8b0
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 0x1002c8de
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 0x1002c906
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 0x1002c943
mov eax, dword [edi + 8]
mov ecx, dword [eax + ecx*4 + 0x134]
test ecx, ecx
je 0x1002c943
push dword [ebp + 0x10]
call fcn.10017cf0
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