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

Disassembly:
push ecx
push ebx
push ebp
mov ebp, dword [esp + 0x10]
mov ebx, ecx
push esi
push edi
push ebp
mov dword [esp + 0x14], ebx
call fcn.005951a0
mov dword [ebx], vtable.hkbBlenderGenerator.0
lea esi, [ebx + 0x40]
mov eax, dword [ebp + 0x28]
mov dword [ebx + 0x28], eax
mov eax, dword [ebp + 0x2c]
mov dword [ebx + 0x2c], eax
mov eax, dword [ebp + 0x30]
mov dword [ebx + 0x30], eax
mov eax, dword [ebp + 0x34]
mov dword [ebx + 0x34], eax
movzx eax, word [ebp + 0x38]
mov word [ebx + 0x38], ax
movzx eax, word [ebp + 0x3a]
mov word [ebx + 0x3a], ax
mov al, byte [ebp + 0x3c]
mov byte [ebx + 0x3c], al
xor eax, eax
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], connect
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x50], 0
mov dword [ebx + 0x54], connect
mov dword [ebx + 0x58], 0
mov dword [ebx + 0x5c], 0
mov dword [ebx + 0x60], connect
mov dword [ebx + 0x6c], eax
mov dword [ebx + 0x64], 0
mov dword [ebx + 0x68], 0
mov word [ebx + 0x70], ax
mov eax, dword [esi + 8]
mov ebp, dword [ebp + 0x44]
and eax, 0x3fffffff
cmp eax, ebp
jge 0x59cc41
push 4
push ebp
push esi
push 0x7d8954
call fcn.00467b80
add esp, 0x10
xor edi, edi
test ebp, ebp
jle 0x59ccbe
mov ebx, dword [esp + 0x18]
nop dword [eax + eax]
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x30
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x30
mov word [eax + 4], cx
mov ecx, dword [ebx + 0x40]
push dword [ecx + edi*4]
mov ecx, eax
call fcn.0059c920
mov ecx, dword [esi + 8]
and ecx, 0x3fffffff
mov dword [esp + 0x18], eax
cmp dword [esi + 4], ecx
jne 0x59cc9e
push 4
push esi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov ecx, dword [esi + 4]
inc edi
mov eax, dword [esi]
mov edx, dword [esp + 0x18]
mov dword [eax + ecx*4], edx
inc dword [esi + 4]
cmp edi, ebp
jl 0x59cc50
mov eax, dword [esp + 0x10]
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 4
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
pop ecx
ret 4
Function at 0x59e660
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov esi, ecx
push edi
call fcn.005951a0
push 0
lea eax, [edi + 0x28]
mov dword [esi], vtable.hkbClipGenerator.0
push eax
lea ecx, [esi + 0x28]
call fcn.0045d950
mov dword [esi + 0x2c], 0
xorps xmm0, xmm0
mov dword [esi + 0x4c], 0
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], connect
mov dword [esi + 0x58], 0
mov dword [esi + 0x5c], 0
mov eax, dword [edi + 0x60]
mov dword [esi + 0x60], eax
lea eax, [edi + 0x30]
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
movaps xmmword [esi + 0x70], xmm0
movaps xmm0, xmmword [0x7195b0]
movaps xmmword [esi + 0x80], xmm0
movaps xmm0, xmmword [0x719da0]
movaps xmmword [esi + 0x90], xmm0
mov dword [esi + 0xa0], 0
mov dword [esi + 0xa4], 0
mov dword [esi + 0xa8], connect
push 0x1c
push eax
mov dword [esi + 0xac], 0
lea eax, [esi + 0x30]
mov dword [esi + 0xb0], 0
mov dword [esi + 0xb4], 0
mov dword [esi + 0xb8], 0
mov dword [esi + 0xbc], 0
mov word [esi + 0xc0], 0
mov byte [esi + 0xc2], 0
push eax
mov dword [esi + 0x1c], 0
call fcn.0045d810
add esp, 0xc
cmp dword [edi + 0x58], 0
je 0x59e7d8
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0xa0
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov edx, eax
mov eax, 0xa0
mov word [edx + 4], ax
cmp dword [edi + 0x1c], 0
jne 0x59e796
mov ecx, dword [edi + 0x58]
mov ecx, dword [ecx + 0x28]
jmp 0x59e798
xor ecx, ecx
push 2
push ecx
mov eax, esp
push ecx
mov ecx, edx
mov byte [eax], 1
call fcn.006fec60
mov ecx, dword [esi + 0x58]
mov dword [esp + 0xc], eax
test ecx, ecx
je 0x59e7c0
cmp ecx, eax
je 0x59e7c0
call fcn.0045c160
mov eax, dword [esp + 0xc]
mov dword [esi + 0x58], eax
mov eax, dword [edi + 0x58]
mov eax, dword [eax + 0x28]
mov dword [esi + 0x64], eax
mov eax, dword [esi + 0x58]
mov eax, dword [eax + 8]
mov dword [esi + 0xac], eax
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x59e7e4
call fcn.0045c0c0
mov ecx, dword [esi + 0x2c]
test ecx, ecx
je 0x59e7f0
call fcn.0045c160
mov eax, dword [edi + 0x2c]
mov dword [esi + 0x2c], eax
mov eax, esi
pop edi
pop esi
ret 4
Function at 0x59ff30
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x2c], 0
jne 0x59ff89
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x14
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, eax
mov dword [esi + 4], 0x1ffff
mov dword [esi], vtable.hkbClipTriggerArray.0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], connect
mov ecx, dword [edi + 0x2c]
test ecx, ecx
je 0x59ff86
cmp ecx, esi
je 0x59ff86
call fcn.0045c160
mov dword [edi + 0x2c], esi
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 4]
mov ebp, dword [eax]
test ebx, ebx
je 0x59ff9d
mov ecx, ebx
call fcn.0045c0c0
mov edi, dword [edi + 0x2c]
add edi, 8
mov eax, dword [edi + 8]
and eax, 0x3fffffff
cmp dword [edi + 4], eax
jne 0x59ffc0
push 0x10
push edi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov esi, dword [edi + 4]
shl esi, 4
add esi, dword [edi]
je 0x5a000d
movss xmm0, dword [esp + 0x14]
movss dword [esi], xmm0
mov dword [esi + 4], ebp
mov dword [esi + 8], 0
test ebx, ebx
je 0x59ffe9
mov ecx, ebx
call fcn.0045c0c0
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x59fff5
call fcn.0045c160
mov al, byte [esp + 0x1c]
mov dword [esi + 8], ebx
mov byte [esi + 0xc], al
mov al, byte [esp + 0x20]
mov byte [esi + 0xd], al
mov al, byte [esp + 0x24]
mov byte [esi + 0xe], al
inc dword [edi + 4]
test ebx, ebx
je 0x5a001b
mov ecx, ebx
call fcn.0045c160
pop edi
pop esi
pop ebp
pop ebx
ret 0x14
Function at 0x5a19c0
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.0059e800
mov eax, dword [esp + 8]
test al, 1
je 0x5a1a15
test al, 4
jne 0x5a1a07
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xd0
cmp ax, cx
je 0x5a19ea
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 0xd0
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x5a1a20
Capabilities:
Get thread local storage value

Disassembly:
push ecx
push ebx
mov ebx, dword [esp + 0xc]
push edi
mov edi, ecx
mov eax, dword [edi + 4]
cmp eax, ebx
jge 0x5a1b09
push ebp
add eax, eax
push esi
push dword [0x884adc]
cmp eax, ebx
cmovge ebx, eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [ebx + ebx*2]
shl eax, 2
push eax
mov edx, dword [ecx]
call dword [edx + 4]
mov esi, dword [edi]
mov ebp, eax
mov dword [esp + 0x10], ebp
test esi, esi
je 0x5a1ad3
mov edx, dword [edi + 0x10]
test edx, edx
je 0x5a1ac6
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
mov dword [esp + 0x18], eax
cmp eax, ecx
jg 0x5a1aaf
mov eax, dword [edi + 4]
sub eax, ecx
lea esi, [eax + eax*2]
lea eax, [ecx + ecx*2]
shl esi, 2
mov ecx, dword [edi]
push esi
lea eax, [ecx + eax*4]
push eax
push ebp
call fcn.0045d810
mov eax, dword [esp + 0x24]
lea eax, [eax + eax*2]
shl eax, 2
push eax
push dword [edi]
lea eax, [esi + ebp]
push eax
call fcn.0045d810
add esp, 0x18
jmp 0x5a1ac6
lea eax, [edx + edx*2]
shl eax, 2
push eax
lea eax, [ecx + ecx*2]
lea eax, [esi + eax*4]
push eax
push ebp
call fcn.0045d810
add esp, 0xc
mov eax, dword [edi + 0x10]
mov dword [edi + 8], 0
mov dword [edi + 0xc], eax
mov ebp, dword [edi + 4]
test ebp, ebp
je 0x5a1afe
push dword [0x884adc]
mov esi, dword [edi]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x2c]
lea eax, [ebp*2]
add eax, ebp
shl eax, 2
push eax
mov edx, dword [ecx]
push esi
call dword [edx + 8]
mov eax, dword [esp + 0x10]
pop esi
mov dword [edi], eax
mov dword [edi + 4], ebx
pop ebp
pop edi
pop ebx
pop ecx
ret 4
Function at 0x5a1d43
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ecx
push ebx
push ebp
push esi
mov esi, ecx
push edi
movsx ebx, byte [esi + 0x35]
call fcn.005a2080
mov byte [esi + 0x35], al
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ebp, eax
mov edi, dword [ebp + 4]
cmp edi, dword [ebp + 0xc]
jae 0x5a1d82
mov dword [edi], 0x7a3984
rdtsc
mov dword [esp + 0x10], eax
mov ecx, dword [esp + 0x10]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov dword [ebp + 4], eax
movsx edx, byte [esi + 0x35]
cmp ebx, edx
je 0x5a1db0
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx + ebx*4]
cmp eax, dword [ecx + edx*4]
je 0x5a1db0
mov eax, dword [esp + 0x18]
mov eax, dword [eax]
mov ecx, dword [eax + 0x30]
cmp byte [ecx + 0xae], 0
setne al
or al, 1
mov byte [ecx + 0xae], al
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5a1ddf
mov dword [esi], 0x77f5ec
rdtsc
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x18]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
pop ebp
pop ebx
pop ecx
ret 8

Function at 0x5a27a0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, ecx
mov esi, dword [edi + 0xc8]
mov dword [edi], vtable.hkbPoseMatchingGenerator.0
test esi, esi
je 0x5a27fe
mov eax, dword [esi + 8]
mov dword [esi + 4], 0
test eax, eax
js 0x5a27da
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 5
push eax
mov eax, dword [0x7d8954]
push dword [esi]
call dword [eax + 0x10]
mov dword [esi], 0
mov dword [esi + 8], connect
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x30
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov ecx, edi
pop edi
pop esi
jmp fcn.0059ccd0
Function at 0x5a3790
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov esi, ecx
push edi
call fcn.005951a0
mov dword [esi], vtable.hkbModifier.0
lea ecx, [esi + 0x2c]
mov al, byte [edi + 0x28]
mov byte [esi + 0x28], al
lea eax, [edi + 0x2c]
mov dword [esi], vtable.hkbAttachmentModifier.0
mov dword [ecx], 0xffffffff
mov dword [ecx + 4], 0
mov dword [esi + 0x34], 0xffffffff
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], 0xffffffff
mov dword [esi + 0x40], 0
mov dword [esi + 0x44], 0xffffffff
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], 0
push 0x30
push eax
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x5c], 0
mov byte [esi + 0x60], 0
push ecx
mov dword [esi + 0x64], 0
mov dword [esi + 0x68], 0
call fcn.0045d810
add esp, 0xc
cmp dword [edi + 0x4c], 0
je 0x5a386b
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 + 0x4c]
call fcn.005dd140
mov ecx, dword [esi + 0x4c]
mov edi, eax
test ecx, ecx
je 0x5a3868
cmp ecx, edi
je 0x5a3868
call fcn.0045c160
mov dword [esi + 0x4c], edi
pop edi
mov eax, esi
pop esi
ret 4
Function at 0x5a5b80
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov esi, ecx
push edi
call fcn.005951a0
mov dword [esi], vtable.hkbModifier.0
mov al, byte [edi + 0x28]
mov byte [esi + 0x28], al
mov dword [esi], vtable.hkbEvaluateExpressionModifier.0
mov dword [esi + 0x2c], 0
mov ecx, dword [edi + 0x30]
test ecx, ecx
je 0x5a5bb3
call fcn.0045c0c0
mov eax, dword [edi + 0x30]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], 0
mov dword [esi + 0x38], 0
mov dword [esi + 0x3c], connect
or dword [esi + 0x1c], 2
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x14
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x14
mov word [eax + 4], cx
mov ecx, eax
push dword [edi + 0x2c]
call fcn.005a5920
mov ecx, dword [esi + 0x2c]
mov edi, eax
test ecx, ecx
je 0x5a5c0d
cmp ecx, edi
je 0x5a5c0d
call fcn.0045c160
mov dword [esi + 0x2c], edi
mov eax, esi
pop edi
pop esi
ret 4
Function at 0x5ad640
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
cmp dword [esi + 0x30], 4
jle 0x5ad65d
mov ecx, dword [esp + 8]
push str.Too_many_hands.
call fcn.0045d9a0
xor al, al
pop esi
ret 4
push ebx
push edi
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 8], 0x80
mov edi, dword [eax + 0xc]
lea ecx, [edi + 0x80]
jl 0x5ad687
cmp ecx, dword [eax + 0x10]
ja 0x5ad687
mov dword [eax + 0xc], ecx
jmp 0x5ad695
push 0x80
mov ecx, eax
call fcn.0046a3c0
mov edi, eax
push 4
push 0
push edi
call fcn.0045d830
xor edx, edx
add esp, 0xc
cmp dword [esi + 0x30], edx
jle 0x5ad6d4
xor ecx, ecx
nop dword [eax + eax]
mov eax, dword [esi + 0x2c]
mov eax, dword [ecx + eax + 0x50]
cmp byte [eax + edi], 0
jne 0x5ad718
mov byte [eax + edi], 1
mov eax, dword [esi + 0x2c]
cmp dword [ecx + eax + 0x50], 4
jge 0x5ad706
inc edx
add ecx, 0x60
cmp edx, dword [esi + 0x30]
jl 0x5ad6b0
mov bl, 1
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
cmp dword [eax + 8], 0x80
jl 0x5ad72a
lea ecx, [edi + 0x80]
cmp ecx, dword [eax + 0xc]
jne 0x5ad72a
cmp dword [eax + 0x14], edi
je 0x5ad72a
mov dword [eax + 0xc], edi
mov al, bl
pop edi
pop ebx
pop esi
ret 4
mov ecx, dword [esp + 0x10]
push str.Invalid_hand_index.
call fcn.0045d9a0
xor bl, bl
jmp 0x5ad6d6
mov ecx, dword [esp + 0x10]
push str.Each_hand_must_have_a_unique_index.
call fcn.0045d9a0
xor bl, bl
jmp 0x5ad6d6
push 0x80
push edi
mov ecx, eax
call fcn.0046a590
pop edi
mov al, bl
pop ebx
pop esi
ret 4
Function at 0x5b01f0
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
mov eax, dword [esi + 8]
test eax, eax
je 0x5b022b
cmp dword [eax + 0xc], 0
jle 0x5b022b
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x30
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x30
push esi
mov word [eax + 4], cx
mov ecx, eax
call fcn.005b01c0
pop esi
ret 4
mov byte [esi + 0x26], 3
call fcn.0045c0c0
mov eax, esi
pop esi
ret 4
Function at 0x5b16c0
Capabilities:
Get thread local storage value

Disassembly:
sub esp, 8
push ebx
push ebp
mov ebp, dword [esp + 0x14]
push esi
push edi
push ebp
mov edi, ecx
call fcn.005951a0
mov dword [edi], vtable.hkbModifier.0
lea edx, [edi + 0x2c]
mov al, byte [ebp + 0x28]
mov byte [edi + 0x28], al
mov dword [edi], vtable.hkbKeyframeBonesModifier.0
mov dword [edx], 0
mov dword [edx + 4], 0
mov dword [edx + 8], connect
mov dword [edi + 0x38], 0
or dword [edi + 0x1c], 1
mov ebx, dword [ebp + 0x30]
mov esi, ebx
cmp ebx, dword [edx + 4]
mov ecx, dword [edx + 8]
cmovg esi, dword [edx + 4]
and ecx, 0x3fffffff
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], esi
cmp ecx, ebx
jge 0x5b1745
add ecx, ecx
mov eax, ebx
cmp ebx, ecx
push 0x30
cmovl eax, ecx
push eax
push edx
push 0x7d8954
call fcn.00467b80
add esp, 0x10
lea edx, [edi + 0x2c]
mov ebx, dword [ebp + 0x2c]
mov eax, dword [edx]
test esi, esi
jle 0x5b1791
lea edx, [ebx + 0x22]
sub ebx, eax
lea ecx, [eax + 0x10]
nop word [eax + eax]
movaps xmm0, xmmword [edx - 0x22]
lea edx, [edx + 0x30]
movaps xmmword [ecx - 0x10], xmm0
lea ecx, [ecx + 0x30]
movaps xmm0, xmmword [ebx + ecx - 0x30]
movaps xmmword [ecx - 0x30], xmm0
mov ax, word [edx - 0x32]
mov word [ecx - 0x20], ax
mov al, byte [edx - 0x30]
mov byte [ecx - 0x1e], al
sub esi, 1
jne 0x5b1760
mov esi, dword [esp + 0x1c]
lea edx, [edi + 0x2c]
mov ebx, dword [ebp + 0x2c]
lea eax, [esi + esi*2]
mov ecx, dword [edx]
shl eax, 4
add ecx, eax
add ebx, eax
mov eax, dword [esp + 0x10]
mov esi, eax
sub esi, dword [esp + 0x1c]
mov dword [esp + 0x14], ecx
test esi, esi
jle 0x5b17f5
lea edx, [ebx + 0x22]
add ecx, 0x10
sub ebx, dword [esp + 0x14]
nop dword [eax]
lea eax, [ecx - 0x10]
test eax, eax
je 0x5b17e3
movaps xmm0, xmmword [edx - 0x22]
movaps xmmword [ecx - 0x10], xmm0
movaps xmm0, xmmword [ebx + ecx]
movaps xmmword [ecx], xmm0
mov ax, word [edx - 2]
mov word [ecx + 0x10], ax
mov al, byte [edx]
mov byte [ecx + 0x12], al
add edx, 0x30
add ecx, 0x30
sub esi, 1
jne 0x5b17c0
mov eax, dword [esp + 0x10]
lea edx, [edi + 0x2c]
mov dword [edx + 4], eax
mov eax, dword [ebp + 0x38]
test eax, eax
je 0x5b186c
cmp dword [eax + 8], 0
jne 0x5b182e
mov ecx, eax
test ecx, ecx
je 0x5b1810
call fcn.0045c0c0
mov ecx, dword [edi + 0x38]
test ecx, ecx
je 0x5b181c
call fcn.0045c160
mov eax, dword [ebp + 0x38]
mov dword [edi + 0x38], eax
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
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 [ebp + 0x38]
call fcn.005b1ea0
mov ecx, dword [edi + 0x38]
mov esi, eax
test ecx, ecx
je 0x5b1869
cmp ecx, esi
je 0x5b1869
call fcn.0045c160
mov dword [edi + 0x38], esi
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 8
ret 4
Function at 0x5b2420
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
mov edi, dword [esp + 0xc]
mov esi, ecx
push edi
call fcn.005951a0
mov dword [esi], vtable.hkbModifier.0
mov al, byte [edi + 0x28]
mov byte [esi + 0x28], al
mov dword [esi], vtable.hkbRigidBodyRagdollControlsModifier.0
movups xmm0, xmmword [edi + 0x30]
movups xmmword [esi + 0x30], xmm0
movups xmm0, xmmword [edi + 0x40]
movups xmmword [esi + 0x40], xmm0
movups xmm0, xmmword [edi + 0x50]
movups xmmword [esi + 0x50], xmm0
movups xmm0, xmmword [edi + 0x60]
movups xmmword [esi + 0x60], xmm0
mov dword [esi + 0x70], 0
or dword [esi + 0x1c], 1
mov eax, dword [edi + 0x70]
test eax, eax
je 0x5b24da
cmp dword [eax + 8], 0
jne 0x5b249c
mov ecx, eax
test ecx, ecx
je 0x5b2483
call fcn.0045c0c0
mov ecx, dword [esi + 0x70]
test ecx, ecx
je 0x5b248f
call fcn.0045c160
mov eax, dword [edi + 0x70]
mov dword [esi + 0x70], eax
mov eax, esi
pop edi
pop esi
ret 4
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 + 0x70]
call fcn.005b1ea0
mov ecx, dword [esi + 0x70]
mov edi, eax
test ecx, ecx
je 0x5b24d7
cmp ecx, edi
je 0x5b24d7
call fcn.0045c160
mov dword [esi + 0x70], edi
pop edi
mov eax, esi
pop esi
ret 4
Function at 0x5b6210
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