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

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

Function at 0x4f74f0
Capabilities:
Get thread local storage value

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

Function at 0x4f7554
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 0x4f75a6
test al, 4
jne 0x4f7598
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xb0
cmp ax, cx
je 0x4f757b
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 0xb0
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f75b4
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 0x4f7603
test al, 4
jne 0x4f75f8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x24
cmp ax, cx
je 0x4f75db
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 0x24
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f7610
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.00517350
mov eax, dword [esp + 8]
test al, 1
je 0x4f7665
test al, 4
jne 0x4f7657
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xd0
cmp ax, cx
je 0x4f763a
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 0x4f7674
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 0x4f76c6
test al, 4
jne 0x4f76b8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x80
cmp ax, cx
je 0x4f769b
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 0x80
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f76d4
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 0x4f7726
test al, 4
jne 0x4f7718
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xb0
cmp ax, cx
je 0x4f76fb
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 0xb0
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f7730
Capabilities:
Get thread local storage value

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

Function at 0x4f7794
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 0x4f77e6
test al, 4
jne 0x4f77d8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xc0
cmp ax, cx
je 0x4f77bb
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 0xc0
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f77f4
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 0x4f7846
test al, 4
jne 0x4f7838
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x90
cmp ax, cx
je 0x4f781b
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 0x90
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x4f7850
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.0051e830
mov eax, dword [esp + 8]
test al, 1
je 0x4f78a5
test al, 4
jne 0x4f7897
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x160
cmp ax, cx
je 0x4f787a
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 0x160
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f78b0
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.00520ba0
mov eax, dword [esp + 8]
test al, 1
je 0x4f7905
test al, 4
jne 0x4f78f7
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x170
cmp ax, cx
je 0x4f78da
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 0x170
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f7910
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.004fb4b0
mov eax, dword [esp + 8]
test al, 1
je 0x4f7962
test al, 4
jne 0x4f7957
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x2c
cmp ax, cx
je 0x4f793a
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 0x2c
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f7974
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 0x4f79c6
test al, 4
jne 0x4f79b8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x120
cmp ax, cx
je 0x4f799b
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 0x120
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f79d4
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 0x4f7a23
test al, 4
jne 0x4f7a18
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x1c
cmp ax, cx
je 0x4f79fb
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 0x1c
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x4f7a34
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 0x4f7a83
test al, 4
jne 0x4f7a78
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x50
cmp ax, cx
je 0x4f7a5b
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 0x4f7a94
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 0x4f7ae6
test al, 4
jne 0x4f7ad8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x120
cmp ax, cx
je 0x4f7abb
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 0x120
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f7af4
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 0x4f7b43
test al, 4
jne 0x4f7b38
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x20
cmp ax, cx
je 0x4f7b1b
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 0x4f7b54
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 0x4f7ba6
test al, 4
jne 0x4f7b98
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x160
cmp ax, cx
je 0x4f7b7b
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 0x160
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4f7bb0
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.004f68c0
mov eax, dword [esp + 8]
test al, 1
je 0x4f7c05
test al, 4
jne 0x4f7bf7
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x8c
cmp ax, cx
je 0x4f7bda
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 0x8c
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4
Function at 0x4f82f0
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
push edi
lea edi, [esi + 0x14]
mov dword [esi + 4], 0x1ffff
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [edi], vtable.hkpEntityListener.0
mov dword [esi + 0x18], vtable.hkpPhantomListener.0
mov dword [esi + 0x1c], vtable.hkpIslandActivationListener.0
mov dword [esi + 0x20], vtable.hkpWorldPostSimulationListener.0
mov dword [esi], vtable.hkpAabbTreeWorldManager.0
mov dword [edi], vtable.hkpAabbTreeWorldManager.1.0
mov dword [esi + 0x18], vtable.hkpAabbTreeWorldManager.2.0
mov dword [esi + 0x1c], vtable.hkpAabbTreeWorldManager.3.0
mov dword [esi + 0x20], vtable.hkpAabbTreeWorldManager.4.0
mov dword [esi + 0x28], eax
mov dword [esi + 0x44], 0
mov dword [esi + 0x48], 0
mov dword [esi + 0x4c], connect
mov dword [esi + 0x50], 0
mov dword [esi + 0x54], 0
mov dword [esi + 0x58], 0xffffffff
mov dword [esi + 0x30], 0
mov dword [esi + 0x34], 0
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x10
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
mov dword [esi + 0x3c], eax
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 4
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test eax, eax
je 0x4f83ce
push 0x3e8
push 0
mov ecx, eax
call fcn.00650110
jmp 0x4f83d0
xor eax, eax
movss xmm0, dword [esp + 0x14]
mov dword [esi + 0x6c], eax
mov eax, dword [esp + 0x10]
mov dword [esi + 8], 1
movss dword [esi + 0x40], xmm0
mov dword [esi + 0x10], 0
mov dword [esi + 0xc], 0
test eax, eax
jne 0x4f8401
mov byte [esi + 0x24], 1
jmp 0x4f840a
cmp eax, 1
jne 0x4f840a
mov byte [esi + 0x24], 0
mov ecx, dword [esi + 0x28]
push edi
call fcn.0050da50
mov ecx, dword [esi + 0x28]
lea eax, [esi + 0x18]
push eax
call fcn.0050daf0
mov ecx, dword [esi + 0x28]
lea eax, [esi + 0x1c]
push eax
call fcn.0050db90
mov ecx, dword [esi + 0x28]
lea eax, [esi + 0x20]
push eax
call fcn.0050dcd0
cmp byte [esi + 0x24], 0
je 0x4f847c
mov eax, dword [esi + 0x28]
push dword [0x884adc]
mov edi, dword [eax + 0x78]
add edi, 0x20
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x80
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test eax, eax
je 0x4f8477
lea ecx, [edi + 0x20]
push ecx
lea ecx, [edi + 0x10]
push ecx
push edi
mov ecx, eax
call fcn.00664b00
jmp 0x4f8479
xor eax, eax
mov dword [esi + 0xc], eax
mov ecx, esi
mov byte [esi + 0x5c], 0
mov byte [esi + 0x68], 0
mov dword [esi + 0x60], 0
mov dword [esi + 0x64], 0x1e
call fcn.004f8620
pop edi
mov eax, esi
pop esi
ret 0xc
Function at 0x4f84a0
Capabilities:
Get thread local storage value

Disassembly:
push ebx
push ebp
push esi
push edi
mov edi, ecx
lea ebp, [edi + 0x14]
mov dword [edi + 0x18], vtable.hkpAabbTreeWorldManager.2.0
lea ebx, [edi + 0x18]
mov dword [ebp], vtable.hkpAabbTreeWorldManager.1.0
lea esi, [edi + 0x1c]
mov dword [esi], vtable.hkpAabbTreeWorldManager.3.0
mov ecx, dword [edi + 0x28]
push ebp
mov dword [edi], vtable.hkpAabbTreeWorldManager.0
mov dword [edi + 0x20], vtable.hkpAabbTreeWorldManager.4.0
call fcn.0050da90
mov ecx, dword [edi + 0x28]
push ebx
call fcn.0050db30
mov ecx, dword [edi + 0x28]
push esi
call fcn.0050dbd0
mov ecx, dword [edi + 0x28]
lea eax, [edi + 0x20]
push eax
call fcn.0050dd10
mov ecx, dword [edi + 0xc]
test ecx, ecx
je 0x4f8504
mov eax, dword [ecx]
push 1
call dword [eax]
mov esi, dword [edi + 0x10]
mov ebx, dword [sym.imp.KERNEL32.dll_TlsGetValue]
test esi, esi
je 0x4f852b
mov ecx, esi
call fcn.00663850
push dword [0x884adc]
call ebx
push 0x50
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
push dword [0x884adc]
mov esi, dword [edi + 0x3c]
call ebx
push 0x10
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov esi, dword [edi + 0x6c]
test esi, esi
je 0x4f8562
mov ecx, esi
call fcn.00650130
push dword [0x884adc]
call ebx
push 4
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
push 0x7d8954
lea ecx, [edi + 0x50]
call fcn.0046b3e0
lea ecx, [edi + 0x50]
call fcn.0046b110
mov eax, dword [edi + 0x4c]
mov dword [edi + 0x48], 0
test eax, eax
js 0x4f859e
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [edi + 0x44]
call dword [eax + 0x10]
mov dword [edi + 0x44], 0
mov dword [edi + 0x4c], connect
mov dword [edi + 0x20], vtable.hkpWorldPostSimulationListener.0
mov dword [edi + 0x1c], vtable.hkpIslandActivationListener.0
mov dword [edi + 0x18], vtable.hkpPhantomListener.0
mov dword [edi], vtable.hkBaseObject.0
pop edi
pop esi
mov dword [ebp], vtable.hkpEntityListener.0
pop ebp
pop ebx
ret
Function at 0x4fa4f0
Capabilities:
Get thread local storage value

Disassembly:
sub ecx, 0x14
jmp method.hkpAabbTreeWorldManager.virtual_0
push esi
mov esi, ecx
call fcn.004f84a0
mov eax, dword [esp + 8]
test al, 1
je 0x4fa542
test al, 4
jne 0x4fa537
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x70
cmp ax, cx
je 0x4fa51a
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 0x70
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4fa5b4
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkKdTreeCastCollector.0
test al, 1
je 0x4fa5ed
test al, 4
jne 0x4fa5e2
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x18
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
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 0x4fa604
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkKdTreeCastCollector.0
test al, 1
je 0x4fa643
test al, 4
jne 0x4fa635
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x90
push esi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
mov eax, esi
pop esi
ret 4
push 0x90
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x4fa860
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push ebx
push esi
mov esi, ecx
push edi
lea edi, [esi + 0x14]
lea ebx, [esi + 0x18]
mov dword [esi + 4], 0x1ffff
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
mov dword [edi], vtable.hkpEntityListener.0
mov dword [ebx], vtable.hkpPhantomListener.0
mov dword [esi + 0x1c], eax
mov al, byte [esp + 0x14]
mov dword [esi], vtable.hkpKdTreeWorldManager.0
mov dword [edi], vtable.hkpKdTreeWorldManager.1.0
mov dword [ebx], vtable.hkpKdTreeWorldManager.2.0
mov byte [esi + 0x20], 1
mov byte [esi + 0x21], al
mov dword [esi + 8], 0
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 4
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
test eax, eax
je 0x4fa8e1
push 0x3e8
push 0
mov ecx, eax
call fcn.00650110
jmp 0x4fa8e3
xor eax, eax
mov ecx, dword [esi + 0x1c]
push edi
mov dword [esi + 0x24], eax
call fcn.0050da50
mov ecx, dword [esi + 0x1c]
push ebx
call fcn.0050daf0
pop edi
mov eax, esi
pop esi
pop ebx
ret 8
Function at 0x4fae50
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x58
mov eax, ecx
lea ecx, [esp + 0x1c]
push esi
push edi
mov dword [esp + 0x14], eax
push dword [eax + 0x1c]
push dword [ebp + 0xc]
call fcn.006aba10
mov edi, dword [ebp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, dword [edi]
test edi, edi
je 0x4fae99
mov ecx, edi
call fcn.00663850
push dword [0x884adc]
call esi
push 0x50
push edi
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 8]
lea ecx, [esp + 0x24]
call fcn.006abab0
mov edi, eax
lea ecx, [esp + 0x30]
mov dword [esp + 0x18], edi
call fcn.00663790
mov edx, dword [esp + 0x14]
lea eax, [esp + 0x50]
push eax
lea eax, [esp + 0x44]
push eax
mov ecx, dword [edx + 0x1c]
mov ecx, dword [ecx + 0x58]
mov edx, dword [ecx]
call dword [edx + 0x44]
push dword [0x884adc]
mov dword [esp + 0x34], edi
mov byte [esp + 0x39], 0
call esi
push 0x50
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
mov eax, dword [eax + 4]
call eax
test eax, eax
je 0x4faefb
lea ecx, [esp + 0x30]
push ecx
mov ecx, eax
call fcn.00663810
mov ecx, eax
jmp 0x4faefd
xor ecx, ecx
mov eax, dword [ebp + 8]
mov dword [eax], ecx
push dword [0x884c50]
call esi
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x4faf2d
mov dword [esi], str.TtbuildTreeSingleThreaded
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 [esp + 0x18]
lea eax, [esp + 0x1c]
push esi
push eax
call fcn.00673060
mov eax, dword [ebp + 8]
push dword [eax]
lea eax, [esp + 0x28]
push eax
call fcn.006731d0
lea eax, [esp + 0x2c]
push esi
push eax
call fcn.006730c0
add esp, 0x18
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x4faf88
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
mov esp, ebp
pop ebp
ret 8
Function at 0x4fb3d0
Capabilities:
Get thread local storage value

Disassembly:
sub ecx, 0x14
jmp method.hkpKdTreeWorldManager.virtual_0
push esi
mov esi, ecx
call fcn.004fa900
mov eax, dword [esp + 8]
test al, 1
je 0x4fb422
test al, 4
jne 0x4fb417
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x28
cmp ax, cx
je 0x4fb3fa
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 0x4fb560
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x18
push esi
push edi
push dword [0x884c50]
mov edi, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0xc], eax
mov esi, dword [eax + 4]
cmp esi, dword [eax + 0xc]
jae 0x4fb5a2
mov dword [esi], str.TtPhysics
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 4], eax
movss xmm1, dword [edi + 0x18]
movss xmm0, dword [ebp + 8]
movaps xmm2, xmm1
addss xmm2, xmm0
movss dword [edi + 0x1c], xmm0
xorps xmm0, xmm0
movss dword [esp + 0x10], xmm1
movss dword [esp + 0x14], xmm2
subss xmm2, xmm1
ucomiss xmm2, xmm0
movss dword [esp + 0x18], xmm2
lahf
test ah, 0x44
jnp 0x4fb5e6
movss xmm0, dword [0x718824]
divss xmm0, xmm2
mov eax, dword [edi + 0xc]
lea esi, [esp + 0x10]
movss dword [esp + 0x1c], xmm0
movups xmm0, xmmword [esp + 0x10]
push esi
movups xmmword [eax + 0x1e0], xmm0
mov eax, dword [edi + 0xc]
movups xmm0, xmmword [esp + 0x14]
mov eax, dword [eax + 0x78]
movups xmmword [eax + 0x50], xmm0
mov eax, dword [edi + 0xc]
push eax
mov ecx, dword [eax + 0x4c]
mov edx, dword [ecx]
call dword [edx + 0x10]
mov eax, esi
mov ecx, edi
push eax
call fcn.004fc600
mov dword [esp + 8], eax
mov dword [edi + 0x28], eax
test eax, eax
jne 0x4fb633
mov byte [edi + 0x10], 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 0x4fb662
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
mov eax, dword [esp + 8]
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4