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

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
xor edi, edi
mov dword [esi], vtable.hkbStateMachine.0
cmp dword [esi + 0x74], edi
jle 0x5b6238
xor ebx, ebx
mov ecx, dword [esi + 0x70]
mov ecx, dword [ebx + ecx]
call fcn.0045c160
inc edi
lea ebx, [ebx + 0x20]
cmp edi, dword [esi + 0x74]
jl 0x5b6224
cmp dword [esi + 0x60], 0
je 0x5b624c
mov eax, dword [esi + 0x5c]
mov ecx, dword [eax]
test ecx, ecx
je 0x5b624c
call fcn.0045c160
mov edi, 1
cmp dword [esi + 0x60], edi
jle 0x5b6271
nop word [eax + eax]
mov ecx, dword [esi + 0x5c]
mov ecx, dword [ecx + edi*4]
call fcn.0045c160
inc edi
cmp edi, dword [esi + 0x60]
jl 0x5b6260
mov ecx, dword [esi + 0x68]
test ecx, ecx
je 0x5b627d
call fcn.0045c160
mov edi, dword [esi + 0x6c]
test edi, edi
je 0x5b62ae
push 0x7d8954
mov ecx, edi
call fcn.0046b3e0
mov ecx, edi
call fcn.0046b110
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0xc
push edi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, dword [esi + 0x9c]
mov dword [esi + 0x98], 0
test eax, eax
js 0x5b62e1
and eax, 0x3fffffff
mov ecx, 0x7d8954
lea eax, [eax + eax*2]
shl eax, 3
push eax
mov eax, dword [0x7d8954]
push dword [esi + 0x94]
call dword [eax + 0x10]
mov dword [esi + 0x94], 0
mov dword [esi + 0x9c], connect
mov eax, dword [esi + 0x90]
mov dword [esi + 0x8c], 0
test eax, eax
js 0x5b6322
and eax, 0x3fffffff
mov ecx, 0x7d8954
push eax
mov eax, dword [0x7d8954]
push dword [esi + 0x88]
call dword [eax + 0x10]
mov dword [esi + 0x88], 0
mov dword [esi + 0x90], connect
mov eax, dword [esi + 0x84]
mov dword [esi + 0x80], 0
test eax, eax
js 0x5b6360
and eax, 0x3fffffff
mov ecx, 0x7d8954
push eax
mov eax, dword [0x7d8954]
push dword [esi + 0x7c]
call dword [eax + 0x10]
mov dword [esi + 0x7c], 0
mov dword [esi + 0x84], connect
mov ebx, dword [esi + 0x74]
sub ebx, 1
js 0x5b6390
mov edi, ebx
shl edi, 5
add edi, dword [esi + 0x70]
mov ecx, edi
call fcn.005b76f0
sub edi, 0x20
sub ebx, 1
jns 0x5b6381
mov eax, dword [esi + 0x78]
mov dword [esi + 0x74], 0
test eax, eax
js 0x5b63b7
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 5
push eax
mov eax, dword [0x7d8954]
push dword [esi + 0x70]
call dword [eax + 0x10]
mov dword [esi + 0x70], 0
mov dword [esi + 0x78], connect
mov eax, dword [esi + 0x64]
mov dword [esi + 0x60], 0
test eax, eax
js 0x5b63ec
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esi + 0x5c]
call dword [eax + 0x10]
mov dword [esi + 0x5c], 0
mov dword [esi + 0x64], connect
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x5b6406
call fcn.0045c160
lea ecx, [esi + 0x20]
mov dword [esi + 0x34], 0
call fcn.0045d990
mov eax, dword [esi + 0x14]
mov dword [esi + 0x10], 0
test eax, eax
js 0x5b643f
and eax, 0x3fffffff
mov ecx, 0x7d8954
lea eax, [eax + eax*2]
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esi + 0xc]
call dword [eax + 0x10]
mov dword [esi + 0xc], 0
mov dword [esi + 0x14], connect
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x5b6459
call fcn.0045c160
mov dword [esi + 8], 0
pop edi
mov dword [esi], vtable.hkBaseObject.0
pop esi
pop ebx
ret
Function at 0x5bbb50
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x20
push ebx
push ebp
push esi
push edi
push dword [0x884adc]
xorps xmm0, xmm0
mov dword [esp + 0x1c], ecx
movss dword [esp + 0x20], xmm0
movss dword [esp + 0x18], xmm0
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebp, dword [esp + 0x38]
mov edi, dword [eax + 0xc]
lea ebx, [ebp*4 + 0x7f]
and ebx, 0xffffff80
mov dword [esp + 0x2c], ebx
lea ecx, [edi + ebx]
cmp ebx, dword [eax + 8]
jg 0x5bbb9d
cmp ecx, dword [eax + 0x10]
ja 0x5bbb9d
mov dword [eax + 0xc], ecx
jmp 0x5bbba7
push ebx
mov ecx, eax
call fcn.0046a3c0
mov edi, eax
mov esi, dword [esp + 0x34]
xor edx, edx
movss xmm1, dword [esp + 0x14]
mov dword [esp + 0x10], edx
cmp ebp, 4
jl 0x5bbc5d
mov eax, dword [esp + 0x18]
lea ecx, [ebp - 4]
shr ecx, 2
mov eax, dword [eax + 0x5c]
mov dword [esp + 0x28], eax
lea eax, [esi + 0xc]
mov ebx, dword [esp + 0x28]
sub esi, edi
inc ecx
mov dword [esp + 0x24], esi
lea esi, [edi + 4]
mov ebp, eax
lea edx, [ecx*4]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x24]
mov eax, dword [ebp - 0xc]
mov eax, dword [ebx + eax*4]
movss xmm0, dword [eax + 0x40]
movss dword [esi - 4], xmm0
addss xmm0, xmm1
mov eax, dword [edx + esi]
mov eax, dword [ebx + eax*4]
movss xmm1, dword [eax + 0x40]
movss dword [esi], xmm1
addss xmm1, xmm0
mov eax, dword [ebp - 4]
mov eax, dword [ebx + eax*4]
movss xmm0, dword [eax + 0x40]
movss dword [esi + 4], xmm0
addss xmm0, xmm1
mov eax, dword [ebp]
add ebp, 0x10
mov eax, dword [ebx + eax*4]
movss xmm1, dword [eax + 0x40]
movss dword [esi + 8], xmm1
add esi, 0x10
addss xmm1, xmm0
sub ecx, 1
jne 0x5bbbf3
mov esi, dword [esp + 0x34]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
cmp edx, ebp
jge 0x5bbca0
mov eax, dword [esp + 0x18]
lea ecx, [edi + edx*4]
mov edx, ebp
sub esi, edi
sub edx, dword [esp + 0x10]
mov eax, dword [eax + 0x5c]
mov ebp, eax
nop word [eax + eax]
mov eax, dword [esi + ecx]
mov eax, dword [ebp + eax*4]
movss xmm0, dword [eax + 0x40]
movss dword [ecx], xmm0
addss xmm1, xmm0
add ecx, 4
sub edx, 1
jne 0x5bbc80
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x3c]
xor esi, esi
mov ecx, dword [eax + 0x48]
imul eax, dword [ecx + 4], 0x19660d
add eax, 0x3c6ef35f
mov dword [ecx + 4], eax
movd xmm0, eax
cvtdq2pd xmm0, xmm0
shr eax, 0x1f
addsd xmm0, qword [eax*8 + 0x718860]
lea eax, [ebp - 1]
cvtpd2ps xmm3, xmm0
mulss xmm3, dword [0x7a4a7c]
test eax, eax
jle 0x5bbd0f
movss xmm2, dword [0x718824]
divss xmm2, xmm1
nop dword [eax + eax]
movss xmm0, dword [edi + esi*4]
mulss xmm0, xmm2
addss xmm0, dword [esp + 0x1c]
comiss xmm0, xmm3
movss dword [esp + 0x1c], xmm0
jae 0x5bbd11
inc esi
cmp esi, eax
jl 0x5bbcf0
mov esi, eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
lea edx, [ebx + 0xf]
and edx, 0xfffffff0
cmp ebx, dword [eax + 8]
jg 0x5bbd44
lea ecx, [edx + edi]
cmp ecx, dword [eax + 0xc]
jne 0x5bbd44
cmp dword [eax + 0x14], edi
je 0x5bbd44
mov dword [eax + 0xc], edi
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
push edx
push edi
mov ecx, eax
call fcn.0046a590
pop edi
mov eax, esi
pop esi
pop ebp
pop ebx
add esp, 0x20
ret 0xc
Function at 0x5bc030
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.005b6210
mov eax, dword [esp + 8]
test al, 1
je 0x5bc085
test al, 4
jne 0x5bc077
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xb4
cmp ax, cx
je 0x5bc05a
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 0xb4
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x5bda20
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x10
push esi
push edi
push dword [esp + 0x1c]
mov esi, ecx
mov dword [esp + 0xc], esi
call fcn.005951a0
mov eax, dword [esp + 0x1c]
lea edi, [esi + 0x28]
mov dword [esi], vtable.hkbPositionRelativeSelectorGenerator.0
lea ecx, [esi + 0x34]
mov dword [edi], 0
xorps xmm0, xmm0
mov dword [edi + 4], 0
add eax, 0x34
mov dword [edi + 8], connect
mov dword [esi + 0x88], 0xffffffff
mov dword [esi + 0x8c], 0
movaps xmmword [esi + 0xa0], xmm0
movaps xmm0, xmmword [0x78ce80]
push 0x62
movaps xmmword [esi + 0xb0], xmm0
push eax
mov byte [esi + 0x104], 0
push ecx
mov byte [esi + 0x106], 0
call fcn.0045d810
mov eax, dword [esp + 0x28]
add esp, 0xc
mov ecx, dword [eax + 0x2c]
mov eax, dword [edi + 8]
and eax, 0x3fffffff
mov dword [esp + 0xc], ecx
cmp eax, ecx
jge 0x5bdacd
push 4
push ecx
push edi
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x1c]
add esp, 0x10
mov dword [esp + 0x14], 0
test ecx, ecx
jle 0x5bdbc0
nop dword [eax]
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x40
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov esi, eax
mov eax, 0x40
mov word [esi + 4], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4]
mov dword [esi + 4], 0x1ffff
mov dword [esi], vtable.hkbBindable.0
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 8]
test eax, eax
je 0x5bdb34
mov ecx, eax
call fcn.0045c0c0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], connect
mov byte [esi + 0x18], 0
mov dword [esi], vtable.hkbRegisteredGenerator.0
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x5bdb6b
mov ecx, eax
call fcn.0045c0c0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x1c], eax
movaps xmm0, xmmword [ecx + 0x20]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [ecx + 0x30]
movaps xmmword [esi + 0x30], xmm0
mov eax, dword [edi + 8]
and eax, 0x3fffffff
cmp dword [edi + 4], eax
jne 0x5bdb9e
push 4
push edi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov dword [eax + ecx*4], esi
mov eax, dword [esp + 0x14]
inc dword [edi + 4]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0xc]
jl 0x5bdae0
mov esi, dword [esp + 8]
mov ecx, dword [esi + 0x34]
test ecx, ecx
je 0x5bdbcc
call fcn.0045c0c0
pop edi
mov eax, esi
pop esi
add esp, 0x10
ret 4
Function at 0x5beee0
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 0x10
push esi
push edi
push dword [esp + 0x1c]
mov esi, ecx
mov dword [esp + 0xc], esi
call fcn.005951a0
movaps xmm0, xmmword [0x786710]
lea edi, [esi + 0x28]
mov eax, dword [esp + 0x1c]
xorps xmm1, xmm1
mov dword [esi], vtable.hkbSplinePathGenerator.0
mov dword [edi], 0
mov dword [edi + 4], 0
mov dword [edi + 8], connect
mov dword [esi + 0x70], 0xffffffff
mov dword [esi + 0x74], 0
movaps xmmword [esi + 0xa0], xmm1
movaps xmmword [esi + 0xb0], xmm0
movaps xmm0, xmmword [0x78ce80]
movaps xmmword [esi + 0xc0], xmm1
movaps xmmword [esi + 0xd0], xmm0
mov dword [esi + 0xe0], 0
mov dword [esi + 0xe4], 0
mov dword [esi + 0xe8], 0
mov word [esi + 0xf0], 0
mov byte [esi + 0xf2], 0
mov ecx, dword [eax + 0x2c]
mov eax, dword [edi + 8]
and eax, 0x3fffffff
mov dword [esp + 0xc], ecx
cmp eax, ecx
jge 0x5befa6
push 4
push ecx
push edi
push 0x7d8954
call fcn.00467b80
mov ecx, dword [esp + 0x1c]
add esp, 0x10
mov dword [esp + 0x14], 0
test ecx, ecx
jle 0x5bf0a0
nop word [eax + eax]
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x40
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov esi, eax
mov eax, 0x40
mov word [esi + 4], ax
mov eax, dword [esp + 0x1c]
mov ecx, dword [eax + 0x28]
mov eax, dword [esp + 0x14]
mov ecx, dword [ecx + eax*4]
mov dword [esi + 4], 0x1ffff
mov dword [esi], vtable.hkbBindable.0
mov dword [esp + 0x10], ecx
mov eax, dword [ecx + 8]
test eax, eax
je 0x5bf014
mov ecx, eax
call fcn.0045c0c0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 8]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], connect
mov byte [esi + 0x18], 0
mov dword [esi], vtable.hkbRegisteredGenerator.0
mov eax, dword [ecx + 0x1c]
test eax, eax
je 0x5bf04b
mov ecx, eax
call fcn.0045c0c0
mov ecx, dword [esp + 0x10]
mov eax, dword [ecx + 0x1c]
mov dword [esi + 0x1c], eax
movaps xmm0, xmmword [ecx + 0x20]
movaps xmmword [esi + 0x20], xmm0
movaps xmm0, xmmword [ecx + 0x30]
movaps xmmword [esi + 0x30], xmm0
mov eax, dword [edi + 8]
and eax, 0x3fffffff
cmp dword [edi + 4], eax
jne 0x5bf07e
push 4
push edi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov ecx, dword [edi + 4]
mov eax, dword [edi]
mov dword [eax + ecx*4], esi
mov eax, dword [esp + 0x14]
inc dword [edi + 4]
inc eax
mov dword [esp + 0x14], eax
cmp eax, dword [esp + 0xc]
jl 0x5befc0
mov esi, dword [esp + 8]
mov eax, dword [esp + 0x1c]
add eax, 0x40
push 0x51
push eax
lea eax, [esi + 0x40]
push eax
call fcn.0045d810
add esp, 0xc
mov eax, esi
pop edi
pop esi
add esp, 0x10
ret 4
Function at 0x5bfa70
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
push edi
mov edi, dword [esp + 0xc]
mov dword [esi + 4], 0x1ffff
mov dword [esi], vtable.hkbBindable.0
mov ecx, dword [edi + 8]
test ecx, ecx
je 0x5bfa91
call fcn.0045c0c0
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
lea eax, [edi + 0x20]
push 0x17
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [esi + 0x14], connect
push eax
mov byte [esi + 0x18], 0
lea eax, [esi + 0x20]
mov dword [esi], vtable.hkbJigglerGroup.0
push eax
mov dword [esi + 0x1c], 0
call fcn.0045d810
mov eax, dword [edi + 0x1c]
add esp, 0xc
test eax, eax
je 0x5bfb46
mov eax, dword [eax + 8]
test eax, eax
je 0x5bfb28
cmp dword [eax + 0xc], 0
jle 0x5bfb28
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x28
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x28
mov word [eax + 4], cx
mov ecx, eax
push dword [edi + 0x1c]
call fcn.005b1ea0
mov ecx, dword [esi + 0x1c]
mov edi, eax
test ecx, ecx
je 0x5bfb1e
cmp ecx, edi
je 0x5bfb1e
call fcn.0045c160
mov dword [esi + 0x1c], edi
mov eax, esi
pop edi
pop esi
ret 4
mov ecx, dword [edi + 0x1c]
test ecx, ecx
je 0x5bfb34
call fcn.0045c0c0
mov ecx, dword [esi + 0x1c]
test ecx, ecx
je 0x5bfb40
call fcn.0045c160
mov eax, dword [edi + 0x1c]
mov dword [esi + 0x1c], eax
pop edi
mov eax, esi
pop esi
ret 4
Function at 0x5bfc30
Capabilities:
Get thread local storage value

Disassembly:
push ecx
push ebx
push ebp
push esi
push edi
mov edi, dword [esp + 0x18]
mov ebp, ecx
push edi
mov dword [esp + 0x14], ebp
call fcn.005951a0
mov dword [ebp], vtable.hkbModifier.0
lea esi, [ebp + 0x2c]
movzx eax, byte [edi + 0x28]
xor ebx, ebx
mov byte [ebp + 0x28], al
mov dword [ebp], vtable.hkbJigglerModifier.0
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], connect
movzx eax, byte [edi + 0x38]
mov byte [ebp + 0x38], al
mov dword [ebp + 0x3c], 0
mov dword [ebp + 0x40], 0
mov dword [ebp + 0x44], connect
mov dword [ebp + 0x48], 0
mov dword [ebp + 0x4c], 0
mov dword [ebp + 0x50], connect
mov dword [ebp + 0x54], 0
mov byte [ebp + 0x58], 0
cmp dword [edi + 0x30], ebx
jle 0x5bfd63
mov ebp, edi
nop word [eax + eax]
mov eax, dword [ebp + 0x2c]
mov edi, dword [eax + ebx*4]
mov eax, dword [edi + 8]
test eax, eax
je 0x5bfcd3
cmp dword [eax + 0xc], 0
jg 0x5bfce7
mov eax, dword [edi + 0x1c]
test eax, eax
je 0x5bfd1e
mov eax, dword [eax + 8]
test eax, eax
je 0x5bfd1e
cmp dword [eax + 0xc], 0
jle 0x5bfd1e
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x3c
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x3c
push edi
mov word [eax + 4], cx
mov ecx, eax
call fcn.005bfa70
mov ecx, dword [esi + 8]
mov edi, eax
and ecx, 0x3fffffff
cmp dword [esi + 4], ecx
jmp 0x5bfd30
mov ecx, edi
call fcn.0045c0c0
mov eax, dword [esi + 8]
and eax, 0x3fffffff
cmp dword [esi + 4], eax
jne 0x5bfd42
push 4
push esi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov ecx, dword [esi + 4]
inc ebx
mov eax, dword [esi]
mov dword [eax + ecx*4], edi
inc dword [esi + 4]
cmp ebx, dword [ebp + 0x30]
jl 0x5bfcc0
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 4
pop edi
pop esi
mov eax, ebp
pop ebp
pop ebx
pop ecx
ret 4
Function at 0x5c38e0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
sub esp, 8
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 0x5c3914
mov dword [esi], str.TtcollectActiveNodesLeafFirst
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
push ebp
mov ebp, dword [esp + 0x38]
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x5c3926
mov eax, dword [ebp]
mov eax, dword [eax + 0x44]
mov ecx, dword [eax + 0x14]
cmp byte [eax + 0x18], 0
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x2c]
setne byte [esp + 0xf]
push ebx
mov ebx, dword [esp + 0x28]
push 0
push dword [esp + 0x30]
mov dword [ebp + 8], eax
push ebx
push eax
push dword [esp + 0x44]
mov eax, dword [ebp]
push esi
mov dword [esp + 0x2c], ecx
push dword [eax + 0x30]
push ebp
push dword [esp + 0x3c]
call fcn.005c4cb0
mov edi, dword [ebx + 4]
add esp, 0x24
mov ecx, dword [ebx]
mov eax, edi
shl eax, 7
prefetchnta byte [eax + ecx - 0x80]
cmp edi, 1
jle 0x5c3984
lea eax, [edi - 2]
shl eax, 7
prefetchnta byte [eax + ecx]
mov eax, edi
shl eax, 7
mov byte [eax + ecx - 5], 0
test esi, esi
je 0x5c3a02
add edi, 0xfffffffe
js 0x5c3a02
mov ebp, edi
shl ebp, 7
mov dword [esp + 0x38], ebp
mov eax, dword [ebx]
test edi, edi
jle 0x5c39ab
prefetchnta byte [eax + ebp - 0x80]
cmp byte [eax + ebp + 0x78], 0
je 0x5c39f2
mov esi, dword [eax + ebp + 0x64]
mov ecx, dword [eax + ebp + 0x68]
test esi, esi
jle 0x5c39f2
mov ebp, dword [esp + 0x30]
lea eax, [ecx*4]
nop dword [eax]
mov ecx, dword [ebp]
mov edx, dword [eax + ecx]
mov ecx, dword [ebx]
shl edx, 7
cmp dword [edx + ecx + 0x70], edi
jne 0x5c39e6
mov byte [edx + ecx + 0x78], 1
add eax, 4
sub esi, 1
jne 0x5c39d0
mov ebp, dword [esp + 0x38]
add ebp, 0xffffff80
sub edi, 1
mov dword [esp + 0x38], ebp
jns 0x5c39a0
mov ebp, dword [esp + 0x3c]
mov eax, dword [ebp + 0xc]
pop ebx
test eax, eax
jne 0x5c3a10
mov eax, dword [ebp]
mov eax, dword [eax + 0x44]
mov ecx, dword [esp + 0x10]
mov dword [eax + 0x14], ecx
mov cl, byte [esp + 0xf]
mov byte [eax + 0x18], cl
mov dword [ebp + 8], 0
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
pop ebp
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5c3a55
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x28], eax
mov ecx, dword [esp + 0x28]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
add esp, 8
ret
Function at 0x5c6440
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.005c6320
mov eax, dword [esp + 8]
test al, 1
je 0x5c6492
test al, 4
jne 0x5c6487
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x18
cmp ax, cx
je 0x5c646a
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 0x18
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x5ca8c0
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.005c6500
mov eax, dword [esp + 8]
test al, 1
je 0x5ca912
test al, 4
jne 0x5ca907
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x50
cmp ax, cx
je 0x5ca8ea
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 0x50
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x5cc690
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.005cc610
mov eax, dword [esp + 8]
test al, 1
je 0x5cc6e2
test al, 4
jne 0x5cc6d7
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x18
cmp ax, cx
je 0x5cc6ba
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 0x18
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x5cc800
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov edi, ecx
push 0
mov dword [edi], vtable.hkbRagdollDriver.0
call fcn.005cc920
mov ebx, dword [edi + 0x88]
test ebx, ebx
je 0x5cc83e
push dword [0x884adc]
mov esi, dword [edi + 0x8c]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [esi + esi*2]
shl eax, 4
push eax
push ebx
mov edx, dword [ecx]
call dword [edx + 8]
mov esi, dword [edi + 0x84]
test esi, esi
je 0x5cc860
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
push dword [eax + 0x2c]
call fcn.00460680
add esp, 8
push 0x7d8954
lea ecx, [edi + 0x68]
call fcn.0046b3e0
lea ecx, [edi + 0x68]
call fcn.0046b110
mov eax, dword [edi + 0x60]
mov dword [edi + 0x5c], 0
test eax, eax
js 0x5cc89c
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [edi + 0x58]
call dword [eax + 0x10]
mov dword [edi + 0x58], 0
mov dword [edi + 0x60], connect
mov dword [edi], vtable.hkBaseObject.0
pop edi
pop esi
pop ebx
ret

Function at 0x5cc920
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov esi, ecx
test edi, edi
je 0x5cc933
mov ecx, edi
call fcn.0045c0c0
mov ecx, dword [esi + 0x78]
cmp edi, ecx
setne al
mov byte [esp + 0xc], al
test ecx, ecx
je 0x5cc9ab
mov eax, dword [ecx + 8]
mov eax, dword [eax]
test eax, eax
je 0x5cc95d
cmp dword [eax + 8], 0
je 0x5cc95d
cmp byte [esi + 0x14], 0
je 0x5cc95d
call fcn.0058ab40
push ebx
mov ecx, esi
call fcn.005cf9f0
mov ebx, dword [esi + 0x80]
test ebx, ebx
je 0x5cc98d
mov ecx, ebx
call fcn.00703f70
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x48
push ebx
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, dword [esi + 0x78]
mov dword [esi + 0x80], 0
call fcn.0045c160
mov al, byte [esp + 0x10]
mov dword [esi + 0x78], 0
pop ebx
test edi, edi
je 0x5cc9ec
mov dword [esi + 0x78], edi
mov byte [esi + 0xa0], 1
test al, al
je 0x5cc9ec
mov eax, dword [edi + 0x2c]
lea ecx, [esi + 0x58]
push 0
push dword [eax + 0x1c]
call fcn.0064d3e0
xor eax, eax
cmp dword [esi + 0x5c], eax
jle 0x5cc9e4
mov ecx, dword [esi + 0x58]
mov dword [ecx + eax*4], 0
inc eax
cmp eax, dword [esi + 0x5c]
jl 0x5cc9d4
lea ecx, [esi + 0x68]
call fcn.0046b370
pop edi
pop esi
ret 4