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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x24
push ebx
push esi
push edi
mov esi, ecx
mov ecx, dword [esi + 0xc]
push 1
push 0
call fcn.004448c0
cmp dword [esi + 0x28], 3
jne 0x44d74b
fld dword [esi + 0x14]
fstp dword [esp + 0x18]
fld dword [esi + 0x18]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fst dword [esp + 0x20]
fld dword [esp + 0x1c]
fst dword [esp + 0x24]
fsubrp st(1)
fstp dword [esp + 0x28]
fldz
fld dword [esp + 0x28]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x44d789
fstp st(0)
fldz
jmp 0x44d78d
fld dword [esi + 0x18]
fstp dword [esp + 0x1c]
fld dword [esi + 0x1c]
fadd dword [esi + 0x18]
fstp dword [esp + 0x18]
fld dword [esp + 0x1c]
fst dword [esp + 0x20]
fld dword [esp + 0x18]
fst dword [esp + 0x24]
fsubrp st(1)
fstp dword [esp + 0x28]
fldz
fld dword [esp + 0x28]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x44d789
fstp st(0)
fldz
jmp 0x44d78d
fld1
fdivrp st(1)
mov eax, dword [esi]
fstp dword [esp + 0x2c]
mov edx, dword [eax + 0x34]
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call edx
mov eax, dword [0x4c606c]
cmp dword [eax + 4], 1
jne 0x44d7e4
mov ecx, dword [0x4c6074]
push ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 0xc]
jae 0x44d7da
mov dword [ecx], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [edi + 4], ecx
mov eax, dword [esi + 0x28]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x28], 2
jne 0x44d876
fld dword [esi + 0x1c]
mov eax, dword [esi + 0xc]
fadd dword [esi + 0x18]
fstp dword [esi + 0x18]
cmp dword [eax + 0x154], 0
je 0x44d872
mov ecx, dword [0x4c6074]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push ecx
call ebx
mov edi, eax
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 0xc]
jae 0x44d835
mov dword [ecx], str.TtPostCollideCB
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [edi + 4], ecx
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0x20]
push eax
push ecx
call fcn.0044d000
mov edx, dword [0x4c6074]
add esp, 8
push edx
call ebx
mov ecx, eax
mov edi, dword [ecx + 4]
cmp edi, dword [ecx + 0xc]
jae 0x44d872
mov dword [edi], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [edi + 4], eax
add edi, 0xc
mov dword [ecx + 4], edi
mov byte [esi + 0x10], 1
pop edi
mov dword [esi + 0x28], 0
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x44d911
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ecx
push esi
mov esi, ecx
call fcn.0044d890
fstp dword [esp + 4]
fld dword [esp + 4]
fst dword [esi + 0x14]
fld dword [esi + 0x20]
fcompp
fnstsw ax
test ah, 0x41
jp 0x44d9ba
mov eax, dword [esi + 0xc]
cmp dword [eax + 0x13c], 0
je 0x44d9ba
mov ecx, dword [0x4c6074]
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
push ecx
call ebx
mov edi, eax
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 0xc]
jae 0x44d974
mov dword [ecx], str.TtPostSimCb
rdtsc
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xc]
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [edi + 4], ecx
mov eax, dword [esi + 0xc]
push eax
call fcn.0044ce90
mov ecx, dword [0x4c6074]
add esp, 4
push ecx
call ebx
mov edi, eax
mov ecx, dword [edi + 4]
cmp ecx, dword [edi + 0xc]
jae 0x44d9ac
mov dword [ecx], 0x4b2454
rdtsc
mov dword [esp + 0xc], eax
mov edx, dword [esp + 0xc]
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [edi + 4], ecx
pop edi
pop ebx
mov dword [esi + 0x28], 0
xor eax, eax
pop esi
pop ecx
ret
mov dword [esi + 0x28], 0
xor eax, eax
pop esi
pop ecx
ret
Function at 0x44db10
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, dword [0x4c6074]
sub esp, 0x24
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
mov esi, ecx
call edi
mov ecx, eax
mov ebx, dword [ecx + 4]
cmp ebx, dword [ecx + 0xc]
jae 0x44db4f
mov dword [ebx], str.TtSimulate
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [ebx + 4], edx
add ebx, 0xc
mov dword [ecx + 4], ebx
cmp dword [esi + 0x28], 0
je 0x44db92
mov ecx, esi
call fcn.0044d6f0
mov ebx, eax
mov eax, dword [0x4c6074]
push eax
call edi
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x44db89
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [esi + 0x18]
fstp dword [esp + 0x18]
fld dword [esi + 0x18]
fadd dword [esi + 0x1c]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fst dword [esp + 0x20]
fld dword [esp + 0x1c]
fst dword [esp + 0x24]
fsubrp st(1)
fstp dword [esp + 0x28]
fldz
fld dword [esp + 0x28]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x44dbd0
fstp st(0)
fldz
jmp 0x44dbd4
fld1
fdivrp st(1)
mov eax, dword [esi]
fstp dword [esp + 0x2c]
mov edx, dword [eax + 0x34]
lea ecx, [esp + 0x20]
push ecx
mov ecx, esi
call edx
mov eax, dword [0x4c606c]
cmp dword [eax + 4], 1
jne 0x44dc30
mov dword [esi + 0x28], 2
mov ecx, dword [0x4c6074]
push ecx
call edi
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x44dc24
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
mov eax, 2
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld dword [esi + 0x18]
mov eax, dword [esi + 0xc]
fadd dword [esi + 0x1c]
fstp dword [esi + 0x18]
cmp dword [eax + 0x154], 0
je 0x44dcae
mov ecx, dword [0x4c6074]
push ecx
call edi
mov ebx, eax
mov ecx, dword [ebx + 4]
cmp ecx, dword [ebx + 0xc]
jae 0x44dc71
mov dword [ecx], str.TtPostCollideCB
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [ecx + 4], edx
add ecx, 0xc
mov dword [ebx + 4], ecx
mov ecx, dword [esi + 0xc]
lea eax, [esp + 0x20]
push eax
push ecx
call fcn.0044d000
mov edx, dword [0x4c6074]
add esp, 8
push edx
call edi
mov ebx, eax
mov ecx, dword [ebx + 4]
cmp ecx, dword [ebx + 0xc]
jae 0x44dcae
mov dword [ecx], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [ecx + 4], eax
add ecx, 0xc
mov dword [ebx + 4], ecx
mov byte [esi + 0x10], 1
mov dword [esi + 0x28], 0
mov ecx, dword [0x4c6074]
push ecx
call edi
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x44dce5
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x44e210
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
mov eax, dword [0x4c6074]
sub esp, 0x24
push ebx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push eax
mov esi, ecx
call edi
mov ecx, eax
mov ebx, dword [ecx + 4]
cmp ebx, dword [ecx + 0xc]
jae 0x44e24f
mov dword [ebx], str.TtSimulate
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [ebx + 4], edx
add ebx, 0xc
mov dword [ecx + 4], ebx
fld dword [ebp + 8]
mov ecx, dword [esi + 0xc]
fstp dword [esi + 0x1c]
call fcn.004401e0
mov ebx, eax
mov eax, dword [0x4c6060]
push eax
call edi
mov ecx, dword [eax + 0x2c]
sub ecx, dword [eax + 0x20]
add eax, 0x20
sub ecx, 0x10
cmp ebx, ecx
jle 0x44e2d6
mov ecx, dword [0x4c606c]
mov edx, dword [ecx]
mov edx, dword [edx + 0x60]
push ebx
lea eax, [esp + 0x1b]
push eax
call edx
cmp byte [eax], 0
jne 0x44e2d6
mov eax, dword [0x4c606c]
mov ebx, 1
mov dword [eax + 4], ebx
mov dword [esi + 0x28], ebx
mov ecx, dword [0x4c6074]
push ecx
call edi
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x44e2cb
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov edx, dword [esp + 0x18]
mov dword [esi + 4], edx
add esi, 0xc
mov dword [ecx + 4], esi
mov eax, ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
fld dword [esi + 0x18]
fstp dword [esp + 0x18]
fld dword [esi + 0x1c]
fadd dword [esi + 0x18]
fstp dword [esp + 0x1c]
fld dword [esp + 0x18]
fst dword [esp + 0x20]
fld dword [esp + 0x1c]
fst dword [esp + 0x24]
fsubrp st(1)
fstp dword [esp + 0x28]
fldz
fld dword [esp + 0x28]
fucom st(1)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x44e314
fstp st(0)
fldz
jmp 0x44e318
fld1
fdivrp st(1)
mov eax, dword [esi + 0xc]
fstp dword [esp + 0x2c]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x190], ecx
mov edx, dword [esp + 0x24]
mov dword [eax + 0x194], edx
mov ecx, dword [esp + 0x28]
add eax, 0x190
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0xc]
mov eax, dword [eax + 0x6c]
mov ecx, dword [esp + 0x20]
mov dword [eax + 0x50], ecx
mov edx, dword [esp + 0x24]
add eax, 0x50
mov dword [eax + 4], edx
mov ecx, dword [esp + 0x28]
mov dword [eax + 8], ecx
mov edx, dword [esp + 0x2c]
mov dword [eax + 0xc], edx
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + 0x4c]
mov edx, dword [ecx]
lea ebx, [esp + 0x20]
push ebx
push eax
mov eax, dword [edx + 0x10]
call eax
mov ecx, ebx
push ecx
mov ecx, esi
call fcn.0044dcf0
xor eax, eax
mov byte [esi + 0x10], al
mov dword [esi + 0x28], eax
mov edx, dword [0x4c6074]
push edx
call edi
mov ecx, eax
mov esi, dword [ecx + 4]
cmp esi, dword [ecx + 0xc]
jae 0x44e3bc
mov dword [esi], 0x4b2454
rdtsc
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x18]
mov dword [esi + 4], eax
add esi, 0xc
mov dword [ecx + 4], esi
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x44fdf0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x84
push ebx
push esi
push edi
mov esi, ecx
mov ecx, dword [ebp + 8]
push 0
lea eax, [esp + 0x14]
push eax
lea ebx, [esi + 0x140]
push ecx
mov ecx, ebx
call fcn.0046b870
test eax, eax
jne 0x44fff0
mov edx, dword [0x4c6060]
push edx
xor edi, edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x88]
test ecx, ecx
je 0x44fe4d
add dword [eax + 0x8c], 0xffffffff
mov edx, dword [ecx]
mov dword [eax + 0x88], edx
mov eax, ecx
jmp 0x44fe56
push 0xa
mov ecx, eax
call fcn.00402220
test eax, eax
je 0x44fe6e
mov ecx, dword [ebp + 8]
mov edx, dword [esi + 0xc]
push ecx
push esi
push edx
mov ecx, eax
call fcn.00462260
mov esi, eax
jmp 0x44fe70
xor esi, esi
movzx eax, word [esp + 0x10]
cmp eax, 0xf
ja case.0x44fe7e.2
jmp dword [eax*4 + 0x44fffc]
lea eax, [esp + 0x10]
push eax
push ebx
push esi
call fcn.00461a10
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea ecx, [esp + 0x10]
push ecx
push ebx
push esi
call fcn.00460a20
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea edx, [esp + 0x10]
push edx
push ebx
push esi
call fcn.004608b0
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea eax, [esp + 0x10]
push eax
push ebx
push esi
call fcn.00460720
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea ecx, [esp + 0x10]
push ecx
push ebx
push esi
call fcn.004604a0
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea edx, [esp + 0x10]
push edx
push ebx
push esi
call fcn.00460170
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea eax, [esp + 0x10]
push eax
push ebx
push esi
call fcn.00460220
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea ecx, [esp + 0x10]
push ecx
push ebx
push esi
call fcn.00460330
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea edx, [esp + 0x10]
push edx
push ebx
push esi
call fcn.004603f0
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea eax, [esp + 0x10]
push eax
push ebx
push esi
call fcn.00460090
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea ecx, [esp + 0x10]
push ecx
push ebx
push esi
call fcn.0045fff0
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea edx, [esp + 0x10]
push edx
push ebx
push esi
call fcn.0045fb40
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea eax, [esp + 0x10]
push eax
push ebx
push esi
call fcn.0045f2e0
add esp, 0xc
mov edi, eax
jmp case.0x44fe7e.2
lea ecx, [esp + 0x10]
push ecx
push ebx
push esi
call fcn.0045f0d0
add esp, 0xc
test eax, eax
jne 0x44ffac
test edi, edi
je 0x44fe70
test esi, esi
je 0x44fff0
mov edx, dword [0x4c6060]
push edx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [eax + 0x8c]
cmp ecx, dword [eax + 0x34]
jl 0x44ffdb
push esi
push 0xa
mov ecx, eax
call fcn.004022b0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [eax + 0x88]
add dword [eax + 0x8c], 1
mov dword [esi], edx
mov dword [eax + 0x88], esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
Function at 0x451c20
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
push edi
mov esi, ecx
lea edi, [esi + 0x20]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
cmp dword [edi + 0x24], 0
je 0x451c6d
mov ecx, 0x4c6080
call fcn.00404790
mov eax, dword [edi + 0x24]
mov ecx, dword [edi + 0x28]
mov dword [eax + 0x28], ecx
mov eax, dword [edi + 0x28]
test eax, eax
je 0x451c55
mov edx, dword [edi + 0x24]
mov dword [eax + 0x24], edx
or eax, 0xffffffff
push 0x4c6080
mov dword [0x4c6098], eax
mov dword [0x4c609c], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, dword [esi + 0x18]
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
js 0x451c9e
and eax, 0x3fffffff
mov edi, eax
mov eax, dword [0x4c6060]
push eax
call ebx
mov edx, dword [esi + 0x10]
lea ecx, [edi + edi*4]
add ecx, ecx
push 0x17
add ecx, ecx
push ecx
push edx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 8]
test eax, eax
js 0x451cc8
and eax, 0x3fffffff
mov edi, eax
mov eax, dword [0x4c6060]
push eax
call ebx
mov edx, dword [esi]
lea ecx, [edi + edi*4]
add ecx, ecx
push 0x17
add ecx, ecx
push ecx
push edx
mov ecx, eax
call fcn.004023e0
pop edi
pop esi
pop ebx
ret
Function at 0x453e60
Capabilities:
Get thread local storage value

Disassembly:
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push esi
mov esi, ecx
push edi
mov edi, dword [esi + 0x28]
test edi, edi
mov dword [esi], vtable.hkpSimpleContactConstraintData.0
je 0x453e8f
mov eax, dword [0x4c6060]
push eax
call ebx
movzx ecx, word [edi + 2]
push 4
push ecx
push edi
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 0x14]
test eax, eax
js 0x453eb4
mov edx, dword [0x4c6060]
and eax, 0x3fffffff
push edx
mov edi, eax
call ebx
mov ecx, dword [esi + 0xc]
push 0x17
push edi
push ecx
mov ecx, eax
call fcn.004023e0
pop edi
mov dword [esi], vtable.hkBaseObject.0
pop esi
pop ebx
ret

Function at 0x454700
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
push edi
mov dword [esi], vtable.hkpPhantom.0
call fcn.00454440
mov eax, dword [esi + 0x94]
test eax, eax
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
js 0x454747
and eax, 0x3fffffff
mov edi, eax
mov eax, dword [0x4c6060]
push eax
call ebx
mov edx, dword [esi + 0x8c]
push 0x17
lea ecx, [edi*4]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 0x88]
test eax, eax
js 0x454778
and eax, 0x3fffffff
mov edi, eax
mov eax, dword [0x4c6060]
push eax
call ebx
mov edx, dword [esi + 0x80]
push 0x17
lea ecx, [edi*4]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
pop edi
mov ecx, esi
pop esi
pop ebx
jmp fcn.00446a20
Function at 0x454d70
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
mov ebx, dword [esi + 0xc]
push edi
xor edi, edi
test ebx, ebx
mov dword [esi], vtable.hkpPhysicsSystem.0
jle 0x454d9e
mov eax, dword [esi + 8]
cmp dword [eax + edi*4], 0
lea eax, [eax + edi*4]
je 0x454d97
mov ecx, dword [eax]
call fcn.00453f80
add edi, 1
cmp edi, ebx
jl 0x454d84
mov ebx, dword [esi + 0x30]
xor edi, edi
test ebx, ebx
jle 0x454dca
jmp 0x454db0
mov ecx, dword [esi + 0x2c]
cmp dword [ecx + edi*4], 0
lea eax, [ecx + edi*4]
je 0x454dc3
mov ecx, dword [eax]
call fcn.00453f80
add edi, 1
cmp edi, ebx
jl 0x454db0
mov ebx, dword [esi + 0x18]
push ebp
xor edi, edi
or ebp, 0xffffffff
test ebx, ebx
jle 0x454e11
jmp 0x454de0
mov edx, dword [esi + 0x14]
cmp dword [edx + edi*4], 0
lea eax, [edx + edi*4]
je 0x454e0a
mov ecx, dword [eax]
cmp word [ecx + 4], 0
je 0x454e0a
add word [ecx + 6], bp
movzx eax, word [ecx + 6]
test ax, ax
jne 0x454e0a
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
add edi, 1
cmp edi, ebx
jl 0x454de0
mov ebx, dword [esi + 0x24]
xor edi, edi
test ebx, ebx
jle 0x454e51
lea ebx, [ebx]
mov eax, dword [esi + 0x20]
cmp dword [eax + edi*4], 0
lea eax, [eax + edi*4]
je 0x454e4a
mov ecx, dword [eax]
cmp word [ecx + 4], 0
je 0x454e4a
add word [ecx + 6], bp
movzx eax, word [ecx + 6]
test ax, ax
jne 0x454e4a
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
add edi, 1
cmp edi, ebx
jl 0x454e20
mov eax, dword [esi + 0x34]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
pop ebp
js 0x454e84
mov ecx, dword [0x4c6060]
and eax, 0x3fffffff
push ecx
mov ebx, eax
call edi
mov ecx, dword [esi + 0x2c]
push 0x17
lea edx, [ebx*4]
push edx
push ecx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 0x28]
test eax, eax
js 0x454eb0
mov edx, dword [0x4c6060]
and eax, 0x3fffffff
push edx
mov ebx, eax
call edi
mov edx, dword [esi + 0x20]
push 0x17
lea ecx, [ebx*4]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x454edb
and eax, 0x3fffffff
mov ebx, eax
mov eax, dword [0x4c6060]
push eax
call edi
mov edx, dword [esi + 0x14]
push 0x17
lea ecx, [ebx*4]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 0x10]
test eax, eax
js 0x454f06
and eax, 0x3fffffff
mov ebx, eax
mov eax, dword [0x4c6060]
push eax
call edi
mov edx, dword [esi + 8]
push 0x17
lea ecx, [ebx*4]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
pop edi
mov dword [esi], vtable.hkBaseObject.0
pop esi
pop ebx
ret
Function at 0x454d71
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push esi
mov esi, ecx
mov ebx, dword [esi + 0xc]
push edi
xor edi, edi
test ebx, ebx
mov dword [esi], vtable.hkpPhysicsSystem.0
jle 0x454d9e
mov eax, dword [esi + 8]
cmp dword [eax + edi*4], 0
lea eax, [eax + edi*4]
je 0x454d97
mov ecx, dword [eax]
call fcn.00453f80
add edi, 1
cmp edi, ebx
jl 0x454d84
mov ebx, dword [esi + 0x30]
xor edi, edi
test ebx, ebx
jle 0x454dca
jmp 0x454db0
mov ecx, dword [esi + 0x2c]
cmp dword [ecx + edi*4], 0
lea eax, [ecx + edi*4]
je 0x454dc3
mov ecx, dword [eax]
call fcn.00453f80
add edi, 1
cmp edi, ebx
jl 0x454db0
mov ebx, dword [esi + 0x18]
push ebp
xor edi, edi
or ebp, 0xffffffff
test ebx, ebx
jle 0x454e11
jmp 0x454de0
mov edx, dword [esi + 0x14]
cmp dword [edx + edi*4], 0
lea eax, [edx + edi*4]
je 0x454e0a
mov ecx, dword [eax]
cmp word [ecx + 4], 0
je 0x454e0a
add word [ecx + 6], bp
movzx eax, word [ecx + 6]
test ax, ax
jne 0x454e0a
mov eax, dword [ecx]
mov edx, dword [eax]
push 1
call edx
add edi, 1
cmp edi, ebx
jl 0x454de0
mov ebx, dword [esi + 0x24]
xor edi, edi
test ebx, ebx
jle 0x454e51
lea ebx, [ebx]
mov eax, dword [esi + 0x20]
cmp dword [eax + edi*4], 0
lea eax, [eax + edi*4]
je 0x454e4a
mov ecx, dword [eax]
cmp word [ecx + 4], 0
je 0x454e4a
add word [ecx + 6], bp
movzx eax, word [ecx + 6]
test ax, ax
jne 0x454e4a
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
add edi, 1
cmp edi, ebx
jl 0x454e20
mov eax, dword [esi + 0x34]
test eax, eax
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
pop ebp
js 0x454e84
mov ecx, dword [0x4c6060]
and eax, 0x3fffffff
push ecx
mov ebx, eax
call edi
mov ecx, dword [esi + 0x2c]
push 0x17
lea edx, [ebx*4]
push edx
push ecx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 0x28]
test eax, eax
js 0x454eb0
mov edx, dword [0x4c6060]
and eax, 0x3fffffff
push edx
mov ebx, eax
call edi
mov edx, dword [esi + 0x20]
push 0x17
lea ecx, [ebx*4]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 0x1c]
test eax, eax
js 0x454edb
and eax, 0x3fffffff
mov ebx, eax
mov eax, dword [0x4c6060]
push eax
call edi
mov edx, dword [esi + 0x14]
push 0x17
lea ecx, [ebx*4]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
mov eax, dword [esi + 0x10]
test eax, eax
js 0x454f06
and eax, 0x3fffffff
mov ebx, eax
mov eax, dword [0x4c6060]
push eax
call edi
mov edx, dword [esi + 8]
push 0x17
lea ecx, [ebx*4]
push ecx
push edx
mov ecx, eax
call fcn.004023e0
pop edi
mov dword [esi], vtable.hkBaseObject.0
pop esi
pop ebx
ret
Function at 0x456cb0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, ecx
mov ecx, dword [ebp + 0x14]
test ecx, ecx
mov dword [ebp], vtable.hkpConstraintInstance.0
je 0x456cc6
call fcn.00453f80
mov ecx, dword [ebp + 0x18]
test ecx, ecx
je 0x456cd2
call fcn.00453f80
push esi
mov esi, dword [ebp + 0x10]
test esi, esi
je 0x456d14
cmp word [esi], 0x17
jb 0x456d14
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
push edi
jmp 0x456cf0
mov eax, dword [0x4c6060]
mov edi, esi
mov esi, dword [esi + 0x14]
push eax
call ebx
movzx ecx, word [edi + 0x10]
push 0x2c
push ecx
push edi
mov ecx, eax
call fcn.004023e0
cmp word [esi], 0x17
jae 0x456cf0
pop edi
pop ebx
mov ecx, dword [ebp + 0xc]
test ecx, ecx
pop esi
je 0x456d39
cmp word [ecx + 4], 0
je 0x456d39
add word [ecx + 6], 0xffff
movzx eax, word [ecx + 6]
test ax, ax
jne 0x456d39
mov edx, dword [ecx]
mov eax, dword [edx]
push 1
call eax
mov dword [ebp], vtable.hkBaseObject.0
pop ebp
ret

Function at 0x456d70
Capabilities:
Get thread local storage value

Disassembly:
cmp dword [esp + 0xc], 0
push edi
mov edi, ecx
jne 0x456db5
mov eax, dword [0x4c6060]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x2c
push 0x2c
mov ecx, eax
call fcn.00402380
mov edx, dword [esp + 8]
mov word [eax + 4], 0x2c
movzx ecx, byte [edi + 0x1c]
mov edi, dword [edi + 0xc]
push ecx
mov ecx, dword [esp + 0x10]
push edi
push ecx
push edx
mov ecx, eax
call fcn.00456bd0
pop edi
ret 0xc
mov eax, dword [edi + 0xc]
push esi
push eax
call fcn.004646d0
mov esi, eax
add esp, 4
test esi, esi
jne 0x456dd6
mov esi, dword [edi + 0xc]
cmp word [esi + 4], ax
je 0x456dd6
add word [esi + 6], 1
mov eax, dword [0x4c6060]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x2c
push 0x2c
mov ecx, eax
call fcn.00402380
mov edx, dword [esp + 0xc]
mov word [eax + 4], 0x2c
movzx ecx, byte [edi + 0x1c]
push ecx
mov ecx, dword [esp + 0x14]
push esi
push ecx
push edx
mov ecx, eax
call fcn.00456bd0
cmp word [esi + 4], 0
mov edi, eax
je 0x456e2b
add word [esi + 6], 0xffff
movzx eax, word [esi + 6]
test ax, ax
jne 0x456e2b
mov eax, dword [esi]
mov edx, dword [eax]
push 1
mov ecx, esi
call edx
pop esi
mov eax, edi
pop edi
ret 0xc
Function at 0x45e7e0
Capabilities:
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x88
mov edx, dword [ebp + 8]
push esi
push edi
mov eax, 1
lea ecx, [esp + 0x10]
push ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
xor eax, eax
push eax
push eax
push edx
mov dword [esp + 0x34], eax
mov dword [esp + 0x38], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], htons
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], eax
mov dword [esp + 0x98], eax
mov word [esp + 0x9c], ax
call fcn.0045df10
mov esi, dword [esp + 0x84]
add esp, 0x10
test esi, esi
mov edi, eax
js 0x45e88d
mov eax, dword [0x4c6060]
push eax
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, dword [esp + 0x6c]
and esi, 0x3fffffff
add esi, esi
push 0x17
add esi, esi
push esi
push ecx
mov ecx, eax
call fcn.004023e0
mov eax, edi
pop edi
pop esi
mov esp, ebp
pop ebp
ret