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

Disassembly:
sub esp, 0x14
push esi
mov esi, ecx
cmp dword [esi + 0x94], 0
je 0x50bf30
push dword [0x884adc]
mov byte [esp + 8], 0x21
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x20
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
push 0x20
push dword [esp + 0x20]
mov dword [esp + 0x10], eax
push eax
call fcn.0045d810
add esp, 0xc
lea eax, [esp + 4]
mov ecx, esi
push eax
call fcn.00510450
pop esi
add esp, 0x14
ret 4
mov ecx, dword [esi + 0x58]
lea edx, [esp + 0xc]
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], connect
mov eax, dword [ecx]
push edx
push dword [esp + 0x20]
call dword [eax + 0x48]
mov edx, dword [esp + 0x10]
xor esi, esi
test edx, edx
jle 0x50bf8d
mov eax, dword [esp + 0xc]
mov ecx, dword [eax + esi*8 + 4]
movsx eax, byte [ecx + 5]
add eax, ecx
cmp byte [eax + 0x18], 1
jne 0x50bf88
movsx ecx, byte [eax + 0x10]
add ecx, eax
je 0x50bf88
call fcn.005078e0
mov edx, dword [esp + 0x10]
inc esi
cmp esi, edx
jl 0x50bf63
mov eax, dword [esp + 0x14]
mov dword [esp + 0x10], 0
test eax, eax
js 0x50bfb7
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 3
push eax
mov eax, dword [0x7d8954]
push dword [esp + 0x10]
call dword [eax + 0x10]
pop esi
add esp, 0x14
ret 4
Function at 0x50d800
Capabilities:
Set thread local storage value

Disassembly:
dec dword [ecx + 0xc0]
jmp fcn.0045c490

Function at 0x50e2e0
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]
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0xc], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x50e322
mov dword [edi], str.TtworldCastRay
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 0x5c]
test ecx, ecx
je 0x50e347
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x50e347
mov ecx, dword [esi + 0x5c]
push dword [ebp + 0xc]
push dword [esi + 0x7c]
mov eax, dword [ecx]
push dword [ebp + 8]
call dword [eax + 0x1c]
jmp 0x50e376
push dword [ebp + 0xc]
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], vtable.hkpSimpleWorldRayCaster.0
push 0
push dword [esi + 0x7c]
mov dword [esp + 0x4c], 0
push dword [ebp + 8]
mov dword [esp + 0x54], 0
push dword [esi + 0x58]
call fcn.006af7e0
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x50e3a5
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 8

Function at 0x50e3b0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x58
push esi
push edi
push dword [0x884c50]
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 0xc], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x50e3f2
mov dword [edi], str.TtworldCastRayCollector
rdtsc
mov dword [esp + 8], eax
mov ecx, dword [esp + 8]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0xc]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 0x5c]
test ecx, ecx
je 0x50e417
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x50e417
mov ecx, dword [esi + 0x5c]
push dword [ebp + 0xc]
push dword [esi + 0x7c]
mov eax, dword [ecx]
push dword [ebp + 8]
call dword [eax + 0x18]
jmp 0x50e446
push dword [ebp + 0xc]
lea ecx, [esp + 0x14]
mov dword [esp + 0x14], vtable.hkpWorldRayCaster.0
push 0
push dword [esi + 0x7c]
mov dword [esp + 0x5c], 0
push dword [ebp + 8]
mov dword [esp + 0x64], 0
push dword [esi + 0x58]
call fcn.006afb30
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x50e475
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 8
Function at 0x50e660
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]
mov esi, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [esp + 8], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x50e6a5
mov dword [edi], str.TtworldLinCast
rdtsc
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0xc]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 8]
mov dword [ecx + 4], eax
mov ecx, dword [esi + 0x5c]
test ecx, ecx
je 0x50e6e3
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test al, al
je 0x50e6e3
mov eax, dword [esi + 0x7c]
test eax, eax
je 0x50e6c3
lea edi, [eax + 8]
jmp 0x50e6c5
xor edi, edi
push dword [ebp + 0x14]
mov eax, dword [esi + 0x78]
push dword [ebp + 0x10]
mov ecx, dword [esi + 0x5c]
push dword [eax + 0x70]
mov edx, dword [ecx]
push eax
push edi
push dword [ebp + 0xc]
push dword [ebp + 8]
call dword [edx + 0x20]
jmp 0x50e72e
mov eax, dword [esi + 0x7c]
mov dword [esp + 0x10], vtable.hkpWorldLinearCaster.0
mov dword [esp + 0x38], 0
mov dword [esp + 0x90], 0x34000000
test eax, eax
je 0x50e70a
lea ecx, [eax + 8]
jmp 0x50e70c
xor ecx, ecx
push dword [ebp + 0x14]
mov eax, dword [esi + 0x78]
push dword [ebp + 0x10]
push 0
push dword [eax + 0x70]
push eax
push ecx
push dword [ebp + 0xc]
lea ecx, [esp + 0x2c]
push dword [ebp + 8]
push dword [esi + 0x58]
call fcn.006b0000
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x50e75d
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 0x50f8c0
Capabilities:
Get thread local storage value

Disassembly:
push ecx
push ebx
push esi
push edi
push dword [0x884adc]
mov ebx, ecx
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x44
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x44
mov word [eax + 4], cx
mov ecx, eax
call fcn.005214e0
mov edi, eax
lea eax, [esp + 0xf]
push edi
push ebx
push eax
call fcn.005112e0
mov esi, dword [esp + 0x20]
add esp, 0xc
cmp byte [eax], 0
je 0x50f934
mov byte [edi + 0x40], 0
mov eax, dword [esi + 8]
and eax, 0x3fffffff
cmp dword [esi + 4], eax
jne 0x50f927
push 4
push esi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov ecx, dword [esi + 4]
mov eax, dword [esi]
mov dword [eax + ecx*4], edi
inc dword [esi + 4]
jmp 0x50f938
test edi, edi
jne 0x50f960
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x44
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x44
mov word [eax + 4], cx
mov ecx, eax
call fcn.005214e0
mov edi, eax
mov ecx, dword [esi + 8]
and ecx, 0x3fffffff
cmp dword [esi + 4], ecx
jne 0x50f97e
push 4
push esi
push 0x7d8954
call fcn.00467c00
add esp, 0xc
mov ecx, dword [esi + 4]
mov eax, dword [esi]
push edi
push ebx
mov dword [eax + ecx*4], edi
lea eax, [esp + 0x1c]
inc dword [esi + 4]
push eax
call fcn.00511160
push edi
push ebx
call fcn.005113a0
push edi
push ebx
call fcn.00511250
push edi
push ebx
call fcn.005110b0
add esp, 0x24
pop edi
pop esi
pop ebx
pop ecx
ret 4
Function at 0x510540
Capabilities:
Get thread local storage value

Disassembly:
mov dword [ecx + 0x8c], 0
mov ecx, dword [ecx + 0x88]
jmp fcn.00538950

Function at 0x510ba4
Capabilities:
Get thread local storage value

Disassembly:
sub ecx, 8
jmp method.hkpBroadPhaseBorderListener.virtual_0
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi + 8], vtable.hkpBroadPhaseListener.0
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x510bfa
test al, 4
jne 0x510bef
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xc
cmp ax, cx
je 0x510bd2
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 0xc
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x510c30
Capabilities:
Get thread local storage value

Disassembly:
sub ecx, 0x14
jmp method.hkpCollisionCallbackUtil.virtual_0
push esi
mov esi, ecx
lea ecx, [esi + 0x18]
call fcn.00510ad0
mov eax, dword [esp + 8]
mov dword [esi + 0x14], vtable.hkpConstraintListener.0
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x510c92
test al, 4
jne 0x510c87
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x50
cmp ax, cx
je 0x510c6a
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 0x510d64
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 0x510db3
test al, 4
jne 0x510da8
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xc
cmp ax, cx
je 0x510d8b
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 0xc
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x510dc4
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi + 8], vtable.hkBaseObject.0
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x510e1a
test al, 4
jne 0x510e0f
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x14
cmp ax, cx
je 0x510df2
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 0x510e24
Capabilities:
Get thread local storage value

Disassembly:
sub ecx, 8
jmp method.hkpPhantomBroadPhaseListener.virtual_0
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi + 8], vtable.hkpBroadPhaseListener.0
mov dword [esi], vtable.hkBaseObject.0
test al, 1
je 0x510e7a
test al, 4
jne 0x510e6f
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0xc
cmp ax, cx
je 0x510e52
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 0xc
push esi
call fcn.0045b780
add esp, 8
mov eax, esi
pop esi
ret 4

Function at 0x510e84
Capabilities:
Get thread local storage value

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

Function at 0x510ed0
Capabilities:
Get thread local storage value

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

Function at 0x510f34
Capabilities:
Get thread local storage value

Disassembly:
mov eax, dword [esp + 4]
push esi
mov esi, ecx
mov dword [esi], vtable.hkpBroadPhaseCastCollector.0
test al, 1
je 0x510f73
test al, 4
jne 0x510f65
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 0x510f84
Capabilities:
Get thread local storage value

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

Disassembly:
push ebx
push ebp
push esi
push edi
push dword [0x884adc]
mov edi, dword [sym.imp.KERNEL32.dll_TlsGetValue]
call edi
push 0xc
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, dword [esp + 0x14]
mov ebx, 0xc
push esi
mov ecx, eax
mov word [eax + 4], bx
call fcn.00537730
push dword [0x884adc]
mov ebp, eax
call edi
push ebx
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx]
call dword [edx + 4]
push esi
mov ecx, eax
mov word [eax + 4], bx
call fcn.005382d0
push dword [0x884adc]
mov ebx, eax
call edi
push 0x14
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx]
call dword [edx + 4]
mov esi, dword [esp + 0x18]
mov edi, eax
push 1
push ebp
mov ecx, esi
mov dword [edi + 4], 0x1ffff
mov dword [edi], vtable.hkpNullContactMgrFactory.0
mov dword [edi + 0xc], 0x1ffff
mov dword [edi + 0x10], 3
mov dword [edi + 8], vtable.hkpNullContactMgr.0
call fcn.004f2320
push 2
push ebx
mov ecx, esi
call fcn.004f2320
push 3
push edi
mov ecx, esi
call fcn.004f2320
mov ecx, ebp
call fcn.0045c160
mov ecx, ebx
call fcn.0045c160
mov ecx, edi
pop edi
pop esi
pop ebp
pop ebx
jmp fcn.0045c160

Function at 0x5118f0
Capabilities:
Get thread local storage value

Disassembly:
mov dword [ecx], vtable.hkpRigidBody.0
jmp fcn.005073d0
Function at 0x512400
Capabilities:
Enumerate pe sections
Get thread local storage value

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xe4
push ebx
push esi
mov esi, ecx
lea ecx, [esp + 0x1c]
push edi
mov dword [esp + 0x18], esi
call fcn.00535530
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.00511900
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x220
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, 0x220
mov word [eax + 4], cx
lea ecx, [esp + 0x20]
push ecx
mov ecx, eax
call fcn.005115f0
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x12
lea ebx, [eax + 0xe0]
mov ecx, ebx
sub ecx, eax
add ecx, 8
add ecx, esi
sub eax, esi
mov dword [esp + 0x14], eax
nop dword [eax]
mov eax, dword [ecx - 8]
lea ebx, [ebx + 0x10]
mov edx, dword [ecx - 4]
lea ecx, [ecx + 0x10]
mov esi, dword [ecx - 0x10]
mov edi, dword [ecx - 0xc]
mov dword [ebx - 0x10], eax
mov eax, dword [esp + 0x14]
mov dword [ebx - 0xc], edx
mov dword [ebx - 4], edi
mov dword [eax + ecx - 0x10], esi
mov eax, dword [esp + 0xc]
dec eax
mov dword [esp + 0xc], eax
test eax, eax
jg 0x512480
mov edi, dword [esp + 0x18]
cmp dword [edi + 0x1f8], 0
je 0x512571
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x120
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, eax
mov eax, 0x120
mov ecx, esi
mov word [esi + 4], ax
call fcn.00506d40
mov eax, dword [esp + 0x10]
lea ebx, [esi + 8]
mov dword [esi + 0x118], 0
mov dword [esi], vtable.hkpMaxSizeMotion.0
mov dword [esp + 0xc], 0x12
mov dword [eax + 0x1f8], esi
movzx eax, word [esi + 4]
mov edi, dword [edi + 0x1f8]
mov dword [esp + 0x14], eax
movzx eax, word [esi + 6]
mov dword [esp + 0x1c], eax
mov eax, dword [edi]
lea ebx, [ebx + 0x10]
mov ecx, dword [edi + 4]
lea edi, [edi + 0x10]
mov edx, dword [edi - 8]
mov esi, dword [edi - 4]
mov dword [ebx - 0x18], eax
mov eax, dword [esp + 0xc]
dec eax
mov dword [ebx - 0x14], ecx
mov dword [ebx - 0x10], edx
mov dword [ebx - 0xc], esi
mov dword [esp + 0xc], eax
test eax, eax
jg 0x512527
mov ebx, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov edi, dword [esp + 0x18]
mov eax, dword [ebx + 0x1f8]
mov word [eax + 4], cx
mov ecx, dword [esp + 0x1c]
mov word [eax + 6], cx
jmp 0x512575
mov ebx, dword [esp + 0x10]
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 0x14]
push edi
mov ecx, ebx
mov dword [ebx + 0x18], eax
call fcn.005129d0
mov eax, dword [edi + 0x78]
lea ecx, [ebx + 0x78]
and eax, 0xfffffffe
push eax
call fcn.0045d9a0
mov eax, dword [edi + 0xc]
mov dword [ebx + 0xc], eax
mov ecx, dword [edi + 0xa0]
test ecx, ecx
je 0x5125b2
mov eax, dword [ecx]
push ebx
call dword [eax + 0xc]
mov dword [ebx + 0xa0], eax
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
Function at 0x512970
Capabilities:
Get thread local storage value

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

Function at 0x51a690
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.0051a090
mov eax, dword [esp + 8]
test al, 1
je 0x51a6e2
test al, 4
jne 0x51a6d7
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x28
cmp ax, cx
je 0x51a6ba
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 0x51abc0
Capabilities:
Get thread local storage value

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

Function at 0x51bf40
Capabilities:
Get thread local storage value

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

Function at 0x51bfc0
Capabilities:
Get thread local storage value

Disassembly:
push esi
push edi
push 1
mov edi, ecx
call fcn.00506450
mov ecx, dword [esp + 0xc]
mov dword [edi], vtable.hkpConstraintChainInstance.0
mov dword [edi + 0x38], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], connect
mov dword [edi + 0xc], ecx
call fcn.0045c0c0
mov dword [edi + 0x14], 0
mov dword [edi + 0x18], 0
push dword [0x884adc]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
push 0x1c
mov ecx, dword [eax + 0x2c]
mov eax, dword [ecx]
call dword [eax + 4]
mov esi, eax
lea ecx, [esi + 0x14]
mov dword [esi + 4], 0x1ffff
mov dword [esi], vtable.hkpAction.0
mov dword [esi + 8], 0
mov dword [esi + 0xc], 0
mov dword [esi + 0x10], 0
call fcn.0045d8c0
mov dword [esi + 0x18], edi
mov eax, edi
mov dword [esi], vtable.hkpConstraintChainInstanceAction.0
mov dword [edi + 0x44], esi
pop edi
pop esi
ret 4
Function at 0x51c060
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
push edi
xor edi, edi
mov dword [esi], vtable.hkpConstraintChainInstance.0
cmp dword [esi + 0x3c], edi
jle 0x51c082
mov ecx, dword [esi + 0x38]
mov ecx, dword [ecx + edi*4]
call fcn.0045c160
inc edi
cmp edi, dword [esi + 0x3c]
jl 0x51c071
mov ecx, dword [esi + 0x44]
call fcn.0045c160
mov eax, dword [esi + 0x40]
mov dword [esi + 0x3c], 0
test eax, eax
js 0x51c0b1
and eax, 0x3fffffff
mov ecx, 0x7d8954
shl eax, 2
push eax
mov eax, dword [0x7d8954]
push dword [esi + 0x38]
call dword [eax + 0x10]
pop edi
mov dword [esi + 0x38], 0
mov ecx, esi
mov dword [esi + 0x40], connect
pop esi
jmp fcn.00506280

Function at 0x51cc20
Capabilities:
Get thread local storage value

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

Function at 0x51d790
Capabilities:
Get thread local storage value

Disassembly:
push esi
mov esi, ecx
call fcn.0051d5c0
mov eax, dword [esp + 8]
test al, 1
je 0x51d7e2
test al, 4
jne 0x51d7d7
movzx eax, word [esi + 4]
mov ecx, 0xffff
push edi
mov edi, 0x20
cmp ax, cx
je 0x51d7ba
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