joyce8/EMBER2024-capa huggingface dataset:
Function at 0x6c8ff0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x48
push esi
push edi
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6c902a
mov dword [esi], str.TtSphereCapsule
rdtsc
mov dword [esp + 0x14], eax
mov ecx, dword [esp + 0x14]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov esi, dword [ebp + 8]
lea ecx, [esp + 0x40]
mov edi, dword [ebp + 0xc]
mov eax, dword [esi]
mov edx, dword [edi]
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 8]
add eax, 0x30
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], eax
add edx, 0x30
mov eax, dword [edi + 8]
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 1
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm4
mulps xmm0, xmm3
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6c9064
lea eax, [esp + 0x20]
push eax
lea eax, [esp + 0x44]
push eax
lea eax, [esp + 0x38]
push eax
push dword [esp + 0x20]
call fcn.0064d740
mov eax, dword [esp + 0x24]
add esp, 0x10
movaps xmm2, xmmword [esp + 0x20]
subps xmm2, xmmword [eax]
mov eax, dword [esp + 0x18]
movss xmm1, dword [eax + 0x10]
mov eax, dword [esp + 0x1c]
mulps xmm2, xmm2
addss xmm1, dword [eax + 0x10]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
mulss xmm1, xmm1
addss xmm2, xmm0
comiss xmm1, xmm2
jbe 0x6c90fb
mov ecx, dword [ebp + 0x14]
push edi
push esi
mov eax, dword [ecx]
call dword [eax + 4]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6c912a
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x1c], eax
mov ecx, dword [esp + 0x1c]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x6c9424
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x6c9473
test al, 4
jne 0x6c9468
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x10
cmp ax, cx
je 0x6c944b
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x10
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x6c9484
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x6c94d3
test al, 4
jne 0x6c94c8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x10
cmp ax, cx
je 0x6c94ab
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x10
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x6c9be0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x68
push esi
push edi
push dword [0x884c50]
mov dword [esp + 0x10], ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6c9c1e
mov dword [esi], str.TtSphereTri
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [ebp + 8]
mov ecx, dword [eax]
mov esi, dword [eax + 8]
mov dword [esp + 8], ecx
add esi, 0x30
mov ecx, dword [ebp + 0xc]
mov eax, dword [ecx + 8]
mov edi, dword [ecx]
lea ecx, [esp + 0x50]
movups xmm3, xmmword [eax]
lea edx, [edi + 0x40]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 2
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm4
mulps xmm0, xmm3
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6c9c50
push 0
lea eax, [esp + 0x14]
push eax
mov eax, dword [esp + 0x14]
add eax, 0x10
push eax
lea eax, [esp + 0x3c]
push eax
push esi
call fcn.006bae60
mov eax, dword [esp + 0x1c]
add esp, 0x14
movss xmm1, dword [edi + 0x10]
movss xmm2, dword [esp + 0x20]
movss xmm3, dword [eax + 0x10]
mov eax, dword [ebp + 0x10]
addss xmm3, xmm1
movss xmm0, dword [eax + 0xc]
addss xmm0, xmm3
comiss xmm0, xmm2
jbe 0x6c9d1c
movaps xmm0, xmmword [esp + 0x10]
subss xmm1, xmm2
mov ecx, dword [ebp + 0x14]
subss xmm2, xmm3
mov eax, dword [ebp + 8]
lea edx, [esp + 0x30]
push edx
shufps xmm1, xmm1, 0
mulps xmm1, xmm0
addps xmm1, xmmword [esi]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 0xc]
movaps xmmword [esp + 0x24], xmm0
mov dword [esp + 0x68], eax
mov eax, dword [ecx]
movss dword [esp + 0x30], xmm2
movaps xmm0, xmmword [esp + 0x24]
movaps xmmword [esp + 0x34], xmm1
movaps xmmword [esp + 0x44], xmm0
movaps xmmword [esp + 0x54], xmm0
call dword [eax + 4]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6c9d4b
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
Function at 0x6c9fb0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x38
push esi
push edi
push dword [0x884c50]
mov dword [esp + 0x10], ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6c9fee
mov dword [esi], str.TtSphereTri
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push 0
mov esi, dword [ecx]
mov ecx, dword [ecx + 8]
mov edi, dword [eax]
mov eax, dword [eax + 8]
movaps xmm5, xmmword [ecx]
movaps xmm4, xmmword [ecx + 0x20]
movaps xmm1, xmm5
movaps xmm6, xmmword [eax + 0x30]
lea eax, [esp + 0x24]
subps xmm6, xmmword [ecx + 0x30]
unpcklps xmm1, xmmword [ecx + 0x10]
unpckhps xmm5, xmmword [ecx + 0x10]
movaps xmm2, xmm1
movlhps xmm2, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xe4
movhlps xmm3, xmm1
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
shufps xmm3, xmm4, 0xd4
mulps xmm3, xmm0
movaps xmm0, xmm6
push eax
mov eax, dword [esp + 0x14]
shufps xmm0, xmm6, 0
add eax, 0x10
mulps xmm0, xmm2
push eax
shufps xmm6, xmm6, 0xaa
lea eax, [esi + 0x20]
mulps xmm6, xmm5
push eax
addps xmm3, xmm0
lea eax, [esp + 0x20]
push eax
addps xmm3, xmm6
movaps xmmword [esp + 0x24], xmm3
call fcn.006bae60
movss xmm0, dword [esi + 0x10]
add esp, 0x14
addss xmm0, dword [edi + 0x10]
comiss xmm0, dword [esp + 0x30]
jbe 0x6ca091
mov ecx, dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 8]
mov eax, dword [ecx]
call dword [eax + 4]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6ca0c0
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
Function at 0x6ca0d0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x48
push esi
push edi
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6ca10a
mov dword [esi], str.TtSphereTri
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov edx, dword [ebp + 8]
mov eax, dword [edx]
mov edx, dword [ebp + 0xc]
mov dword [esp + 0xc], eax
lea eax, [esp + 0x10]
push eax
mov edi, dword [edx]
lea esi, [edi + 0x20]
push esi
call fcn.006bacb0
mov eax, dword [ebp + 0xc]
push 0
mov ecx, dword [eax + 8]
mov eax, dword [ebp + 8]
movaps xmm5, xmmword [ecx]
mov eax, dword [eax + 8]
movaps xmm1, xmm5
unpcklps xmm1, xmmword [ecx + 0x10]
movaps xmm4, xmmword [ecx + 0x20]
movaps xmm2, xmm1
unpckhps xmm5, xmmword [ecx + 0x10]
movaps xmm6, xmmword [eax + 0x30]
lea eax, [esp + 0x3c]
subps xmm6, xmmword [ecx + 0x30]
movlhps xmm2, xmm4
movaps xmm3, xmm2
shufps xmm5, xmm4, 0xe4
movhlps xmm3, xmm1
shufps xmm3, xmm4, 0xd4
movaps xmm0, xmm6
shufps xmm0, xmm6, 0x55
mulps xmm3, xmm0
movaps xmm0, xmm6
push eax
shufps xmm0, xmm6, 0
lea eax, [esp + 0x20]
mulps xmm0, xmm2
push eax
shufps xmm6, xmm6, 0xaa
lea eax, [esp + 0x34]
mulps xmm6, xmm5
push esi
addps xmm3, xmm0
push eax
addps xmm3, xmm6
movaps xmmword [esp + 0x3c], xmm3
call fcn.006bae60
mov eax, dword [esp + 0x28]
add esp, 0x1c
movss xmm0, dword [edi + 0x10]
addss xmm0, dword [eax + 0x10]
comiss xmm0, dword [esp + 0x40]
jbe 0x6ca1c5
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0xc]
push edx
mov edx, dword [ebp + 8]
mov eax, dword [ecx]
push edx
call dword [eax + 4]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6ca1f4
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret

Function at 0x6ca3e4
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x6ca433
test al, 4
jne 0x6ca428
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x20
cmp ax, cx
je 0x6ca40b
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x20
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x6ca444
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x6ca493
test al, 4
jne 0x6ca488
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x20
cmp ax, cx
je 0x6ca46b
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x20
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x6caa20
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
push esi
push edi
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6caa5d
mov dword [esi], str.TtCapsCaps
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x20]
mov esi, dword [ebp + 0xc]
mov eax, dword [edi + 8]
mov edx, dword [edi]
add edx, 0x30
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 1
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm4
mulps xmm0, xmm3
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6caa83
mov eax, dword [esi + 8]
lea ecx, [esp + 0x80]
mov edx, dword [esi]
add edx, 0x30
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 1
nop dword [eax + eax]
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm4
mulps xmm0, xmm3
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6caae0
mov eax, dword [ebp + 0x10]
movss xmm0, dword [eax + 0xc]
mov eax, dword [esi]
movss xmm1, dword [eax + 0x10]
mov eax, dword [edi]
movss xmm2, dword [eax + 0x10]
lea eax, [esp + 0x50]
push eax
sub esp, 8
lea eax, [esp + 0x7c]
movss dword [esp + 4], xmm0
movss dword [esp], xmm1
push eax
push ecx
lea eax, [esp + 0x24]
movss dword [esp], xmm2
push eax
call fcn.006d75a0
add esp, 0x18
test eax, eax
jne 0x6cab88
mov ecx, dword [ebp + 0x14]
lea edx, [esp + 0x10]
movaps xmm0, xmmword [esp + 0x50]
movaps xmmword [esp + 0x10], xmm0
movaps xmm0, xmmword [esp + 0x60]
mov eax, dword [ecx]
push edx
movaps xmmword [esp + 0x24], xmm0
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], esi
movaps xmmword [esp + 0x34], xmm0
call dword [eax + 4]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6cabb7
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
Function at 0x6cad80
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x98
push esi
push edi
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6cadbd
mov dword [esi], str.TtCapsCaps
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov esi, dword [ebp + 0xc]
lea ecx, [esp + 0x60]
mov edi, dword [ebp + 8]
mov eax, dword [esi]
mov edx, dword [edi]
mov dword [esp + 8], eax
mov eax, dword [edi + 8]
mov dword [esp + 0xc], edx
add edx, 0x30
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 1
nop dword [eax]
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm4
mulps xmm0, xmm3
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6cadf0
mov eax, dword [esi + 8]
lea ecx, [esp + 0x40]
mov edx, dword [esp + 8]
add edx, 0x30
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 1
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0x55
shufps xmm0, xmm2, 0
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm4
mulps xmm0, xmm3
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6cae47
movaps xmm0, xmmword [esp + 0x60]
lea eax, [esp + 0x70]
subps xmm0, xmmword [esp + 0x50]
push eax
lea eax, [esp + 0x14]
push eax
lea eax, [esp + 0x38]
movaps xmmword [esp + 0x28], xmm0
movaps xmm0, xmmword [esp + 0x48]
subps xmm0, xmmword [esp + 0x38]
push eax
lea eax, [esp + 0x2c]
push eax
lea eax, [esp + 0x60]
push eax
movaps xmmword [esp + 0x24], xmm0
call fcn.0064d550
mov eax, dword [esp + 0x1c]
add esp, 0x14
movss xmm0, dword [eax + 0x10]
mov eax, dword [esp + 0xc]
addss xmm0, dword [eax + 0x10]
mulss xmm0, xmm0
comiss xmm0, dword [esp + 0x90]
jbe 0x6caee5
mov ecx, dword [ebp + 0x14]
push esi
push edi
mov eax, dword [ecx]
call dword [eax + 4]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6caf14
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x6cafb4
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x6cb003
test al, 4
jne 0x6caff8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x14
cmp ax, cx
je 0x6cafdb
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x14
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x6cb8f0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb8
push esi
push edi
push dword [0x884c50]
mov dword [esp + 0xc], ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6cb931
mov dword [esi], str.TtCapsTriangle
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x20]
mov esi, dword [ebp + 0xc]
mov eax, dword [edi + 8]
mov edx, dword [edi]
add edx, 0x30
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 1
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0
shufps xmm0, xmm2, 0x55
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm3
mulps xmm0, xmm4
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6cb957
mov eax, dword [esi + 8]
lea ecx, [esp + 0x50]
mov edx, dword [esi]
add edx, 0x40
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 2
nop dword [eax]
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0
shufps xmm0, xmm2, 0x55
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm3
mulps xmm0, xmm4
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6cb9b0
push 0
lea eax, [esp + 0x64]
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
movss xmm0, dword [eax + 0xc]
mov eax, dword [esp + 0x18]
movss dword [esp], xmm0
add eax, 0x14
push eax
mov eax, dword [esi]
push ecx
movss xmm0, dword [eax + 0x10]
lea eax, [esp + 0x48]
movss dword [esp], xmm0
push eax
mov eax, dword [edi]
push ecx
movss xmm0, dword [eax + 0x10]
lea eax, [esp + 0x30]
movss dword [esp], xmm0
push eax
call fcn.006d77e0
xorps xmm0, xmm0
add esp, 0x24
comiss xmm0, dword [esp + 0x7c]
ja 0x6cba44
comiss xmm0, dword [esp + 0x9c]
jbe 0x6cba4e
mov ecx, dword [ebp + 0x14]
push esi
push edi
mov eax, dword [ecx]
call dword [eax + 4]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6cba7d
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret 0x10
Function at 0x6cba90
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
push esi
push edi
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6cbacd
mov dword [esi], str.TtCapsTriangle
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov esi, dword [ebp + 0xc]
lea eax, [esp + 0xc]
push eax
mov eax, dword [esi]
add eax, 0x20
push eax
call fcn.006bb270
mov edi, dword [ebp + 8]
lea ecx, [esp + 0x38]
add esp, 8
mov eax, dword [edi + 8]
mov edx, dword [edi]
add edx, 0x30
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 1
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0
shufps xmm0, xmm2, 0x55
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm3
mulps xmm0, xmm4
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6cbb06
mov eax, dword [esi + 8]
lea ecx, [esp + 0x60]
mov edx, dword [esi]
add edx, 0x40
movups xmm3, xmmword [eax]
movups xmm4, xmmword [eax + 0x10]
movups xmm5, xmmword [eax + 0x20]
movups xmm6, xmmword [eax + 0x30]
mov eax, 2
nop dword [eax + eax]
movaps xmm2, xmmword [edx]
sub edx, 0x10
movaps xmm1, xmm2
movaps xmm0, xmm2
shufps xmm1, xmm2, 0
shufps xmm0, xmm2, 0x55
shufps xmm2, xmm2, 0xaa
mulps xmm1, xmm3
mulps xmm0, xmm4
mulps xmm2, xmm5
addps xmm1, xmm0
addps xmm2, xmm6
addps xmm1, xmm2
movaps xmmword [ecx], xmm1
sub ecx, 0x10
sub eax, 1
jns 0x6cbb60
push 0
lea eax, [esp + 0x74]
push eax
mov eax, dword [ebp + 0x10]
push 0
push ecx
movss xmm0, dword [eax + 0xc]
lea eax, [esp + 0x1c]
movss dword [esp], xmm0
push eax
mov eax, dword [esi]
push ecx
movss xmm0, dword [eax + 0x10]
lea eax, [esp + 0x58]
movss dword [esp], xmm0
push eax
mov eax, dword [edi]
push ecx
movss xmm0, dword [eax + 0x10]
lea eax, [esp + 0x40]
movss dword [esp], xmm0
push eax
call fcn.006d77e0
xorps xmm0, xmm0
add esp, 0x24
comiss xmm0, dword [esp + 0x8c]
ja 0x6cbbf4
comiss xmm0, dword [esp + 0xac]
jbe 0x6cbbfe
mov ecx, dword [ebp + 0x14]
push esi
push edi
mov eax, dword [ecx]
call dword [eax + 4]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x6cbc2d
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
ret
Function at 0x6cc094
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x6cc0e3
test al, 4
jne 0x6cc0d8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x28
cmp ax, cx
je 0x6cc0bb
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x28
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x6cc0f4
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x6cc143
test al, 4
jne 0x6cc138
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x28
cmp ax, cx
je 0x6cc11b
mov edi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
pop edi
mov eax, esi
pop esi
ret 4
push 0x28
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4