Function at 0x5f09b0
Capabilities:
Execute anti-debugging instructions
Get thread local storage value
Resolve function by parsing pe exports

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff0
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
sub esp, 0x2d8
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 0x5f09fb
mov dword [esi], str.TtBSLookAtModifier
rdtsc
mov dword [ebp - 4], eax
mov ecx, dword [ebp - 4]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
mov eax, dword [ebx + 0x10]
mov eax, dword [eax]
cmp dword [eax + 4], 2
jle 0x5f0a0c
movsx edi, word [eax + 0x32]
jmp 0x5f0a0e
xor edi, edi
push dword [0x884c50]
mov dword [ebp - 0x18], edi
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x5f0a45
mov dword [ecx], str.LtDoModification
mov dword [ecx + 0xc], str.StDetermineLookatTarget
rdtsc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
mov dword [ecx + 4], eax
lea eax, [ecx + 0x10]
mov dword [esi + 4], eax
mov esi, dword [ebx + 8]
mov eax, dword [esi + 0x34]
mov ecx, dword [esi + 0x30]
shl eax, 6
mov dword [ebp - 4], eax
mov dword [ebp - 0x10], ecx
movsx edx, word [eax + ecx - 0x40]
cmp edx, edi
jge 0x5f1328
cmp byte [esi + 0x7c], 0
xorps xmm4, xmm4
movaps xmm0, xmmword [esi + 0x60]
movaps xmmword [ebp - 0x90], xmm0
movss dword [ebp - 0x24], xmm4
je 0x5f0aa8
movss xmm3, dword [esi + 0x80]
movaps xmm1, xmm4
movss xmm2, dword [esi + 0x84]
movss xmm0, dword [esi + 0x88]
unpcklps xmm3, xmm0
unpcklps xmm2, xmm1
unpcklps xmm3, xmm2
movaps xmmword [ebp - 0x90], xmm3
cmp byte [esi + 0x2c], 0
movss dword [ebp - 0x14], xmm4
je 0x5f106c
mov ecx, dword [ebx + 0xc]
movss xmm0, dword [esi + 0x48]
mulss xmm0, dword [0x7a3b34]
mov eax, dword [ecx + 0x1c]
movss dword [ebp - 0x1c], xmm0
test byte [eax + edx*4], 2
jne 0x5f0ae0
lea eax, [edx + edx*2]
shl eax, 4
add eax, dword [ecx + 0x10]
jmp 0x5f0ae6
push edx
call fcn.00580e80
movaps xmm4, xmmword [eax + 0x10]
mov ecx, dword [ebp - 0x10]
movaps xmm6, xmm4
mov dword [ebp - 0xc], eax
movaps xmm1, xmm4
mov eax, dword [ebp - 4]
movaps xmm5, xmm4
shufps xmm6, xmm4, 0xc9
shufps xmm1, xmm4, 0xd2
shufps xmm5, xmm4, 0xff
movaps xmm2, xmmword [eax + ecx - 0x30]
movaps xmm3, xmm2
mov eax, dword [ebx + 0x10]
mulps xmm3, xmm4
mov ecx, dword [eax]
lea eax, [ebp - 0x90]
push eax
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
movsx eax, word [ecx + 0x14]
shufps xmm3, xmm3, 0xaa
add eax, ecx
push eax
lea ecx, [ebp - 0xa0]
addss xmm3, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
mulps xmm1, xmm0
shufps xmm3, xmm3, 0
mulps xmm3, xmm4
subps xmm6, xmm1
mulps xmm6, xmm5
mulps xmm5, xmm5
addps xmm5, xmmword [0x7195c0]
mulps xmm5, xmm2
addps xmm5, xmm3
addps xmm6, xmm5
addps xmm6, xmm6
movaps xmm3, xmm6
mulps xmm3, xmm6
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
xorps xmm0, xmm0
movaps xmm7, xmm0
movss xmm0, dword [0x719764]
movaps xmm1, xmm0
movaps xmmword [ebp - 0x70], xmm7
movss xmm0, dword [0x719760]
movaps xmm5, xmm0
movaps xmmword [ebp - 0x80], xmm1
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmmword [ebp - 0x60], xmm5
rsqrtss xmm2, xmm2
movaps xmm4, xmm3
mulss xmm0, xmm2
mulss xmm3, xmm2
cmpeqss xmm4, xmm7
mulss xmm3, xmm2
subss xmm1, xmm3
mulss xmm0, xmm1
andnps xmm4, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm6
movaps xmmword [ebp - 0x50], xmm4
call fcn.0046ec20
mov eax, dword [ebp - 0xc]
movaps xmm4, xmmword [ebp - 0xa0]
subps xmm4, xmmword [eax]
movaps xmm3, xmm4
mulps xmm3, xmm4
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xaa
addss xmm1, xmm0
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
sqrtss xmm1, xmm1
addss xmm3, xmm0
movaps xmm0, xmmword [ebp - 0x60]
shufps xmm1, xmm1, 0
movaps xmmword [ebp - 0xd0], xmm1
movaps xmm1, xmmword [ebp - 0x80]
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmm5, xmm3
cmpeqss xmm5, dword [ebp - 0x70]
rsqrtss xmm2, xmm2
mulss xmm3, xmm2
mulss xmm0, xmm2
mulss xmm3, xmm2
subss xmm1, xmm3
mulss xmm0, xmm1
andnps xmm5, xmm0
shufps xmm5, xmm5, 0
mulps xmm5, xmm4
movaps xmmword [ebp - 0xa0], xmm5
mulps xmm5, xmmword [ebp - 0x50]
movaps xmm0, xmm5
shufps xmm0, xmm5, 0x55
addss xmm0, xmm5
shufps xmm5, xmm5, 0xaa
addss xmm5, xmm0
xorps xmm0, xmm0
cvtss2sd xmm0, xmm5
andps xmm0, xmmword [0x7ab100]
cvtpd2ps xmm0, xmm0
comiss xmm0, dword [0x718824]
xorps xmm0, xmm0
jb 0x5f0cc6
comiss xmm5, xmm0
jbe 0x5f0cbc
movaps xmm1, xmm0
jmp 0x5f0cd6
movss xmm1, dword [0x719d84]
jmp 0x5f0cd6
cvtss2sd xmm0, xmm5
call fcn.0062daf0
xorps xmm1, xmm1
cvtsd2ss xmm1, xmm0
movss xmm2, dword [ebp - 0x1c]
comiss xmm1, xmm2
movss dword [ebp - 0x14], xmm1
jbe 0x5f0e01
movss xmm0, dword [esi + 0x4c]
mulss xmm0, dword [0x7a3b34]
addss xmm0, xmm2
comiss xmm1, xmm0
jbe 0x5f0e05
cmp byte [esi + 0x70], 0
jne 0x5f0dfb
cmp dword [esi + 0x74], 0xffffffff
je 0x5f0dfb
mov eax, dword [ebx + 0x14]
test eax, eax
je 0x5f0db5
mov edi, dword [eax + 0xc]
test edi, edi
jne 0x5f0d2e
mov eax, dword [eax]
mov edi, dword [eax + 0x44]
mov edx, dword [edi + 0x14]
mov eax, dword [esi + 0x78]
mov ecx, dword [esi + 0x74]
mov dword [ebp - 0x3c], eax
test edx, edx
je 0x5f0d64
cmp byte [edi + 0x18], 0
je 0x5f0d50
test ecx, ecx
js 0x5f0d64
mov eax, dword [edx + 8]
mov ecx, dword [eax + ecx*4]
jmp 0x5f0d64
test ecx, ecx
js 0x5f0d64
lea eax, [ecx + 1]
push 0xffffffffffffffff
push eax
lea ecx, [edx + 0x14]
call fcn.0046b890
mov ecx, eax
mov eax, dword [edi + 4]
mov dword [ebp - 0x40], ecx
cmp dword [edi + 0x10], eax
jl 0x5f0d81
mov ecx, edi
test eax, eax
jne 0x5f0d79
push 8
jmp 0x5f0d7c
add eax, eax
push eax
call fcn.005a1a20
mov eax, dword [edi + 0xc]
cmp eax, dword [edi + 4]
jne 0x5f0d90
mov dword [edi + 0xc], 0
mov eax, dword [edi + 0xc]
movq xmm0, qword [ebp - 0x40]
lea ecx, [eax + eax*2]
mov eax, dword [edi]
movq qword [eax + ecx*4], xmm0
mov dword [eax + ecx*4 + 8], esi
inc dword [edi + 0xc]
inc dword [edi + 0x10]
mov edi, dword [ebp - 0x18]
mov byte [esi + 0x70], 1
jmp 0x5f0e05
push 0x200
lea eax, [ebp - 0x2d0]
push eax
lea ecx, [ebp - 0x3c]
call fcn.004745a0
push str.BSLookAtModifierUtils::modifyInternal___ignoring_target_outside_limits_event
lea ecx, [ebp - 0x3c]
call fcn.0045cb80
mov ecx, dword [0x884c54]
lea edx, [ebp - 0x2d0]
push 0x6b
push str.ModifierBSLookAtBSLookAtModifierUtils.cpp
push edx
mov eax, dword [ecx]
push 0
push 1
call dword [eax + 0xc]
lea ecx, [ebp - 0x3c]
call fcn.0045caa0
mov byte [esi + 0x70], 1
jmp 0x5f0e05
mov byte [esi + 0x70], 0
cmp byte [esi + 0x70], 0
je 0x5f0e1e
cmp byte [esi + 0x50], 0
jne 0x5f0e1e
xorps xmm0, xmm0
movss dword [ebp - 0x14], xmm0
jmp 0x5f1070
mov eax, dword [ebx + 0x10]
mov ecx, dword [eax]
lea eax, [ebp - 0x90]
push eax
movsx eax, word [ecx + 0x14]
add eax, ecx
lea ecx, [ebp - 0xb0]
push eax
call fcn.0046ec20
cmp byte [esi + 0x70], 0
je 0x5f105f
cmp byte [esi + 0x50], 0
je 0x5f105f
movaps xmm2, xmmword [ebp - 0x50]
movaps xmm5, xmmword [0x78ce90]
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xd2
movaps xmm1, xmm5
shufps xmm1, xmm5, 0xc9
mulps xmm1, xmm0
movaps xmm0, xmm2
shufps xmm0, xmm2, 0xc9
movaps xmmword [ebp - 0x40], xmm5
shufps xmm5, xmm5, 0xd2
mulps xmm5, xmm0
subps xmm5, xmm1
movaps xmm1, xmmword [ebp - 0x80]
movaps xmm3, xmm5
mulps xmm3, xmm5
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmmword [ebp - 0x60]
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmm4, xmm3
cmpeqss xmm4, dword [ebp - 0x70]
rsqrtss xmm2, xmm2
mulss xmm3, xmm2
mulss xmm0, xmm2
mulss xmm3, xmm2
subss xmm1, xmm3
mulss xmm0, xmm1
andnps xmm4, xmm0
shufps xmm4, xmm4, 0
mulps xmm4, xmm5
mulps xmm4, xmmword [ebp - 0xa0]
movaps xmm0, xmm4
shufps xmm0, xmm4, 0x55
addss xmm0, xmm4
shufps xmm4, xmm4, 0xaa
addss xmm4, xmm0
xorps xmm0, xmm0
comiss xmm0, xmm4
movss xmm0, dword [ebp - 0x1c]
ja 0x5f0f02
xorps xmm0, xmmword [0x719730]
push ecx
lea eax, [ebp - 0x40]
movss dword [esp], xmm0
push eax
lea ecx, [ebp - 0xc0]
call fcn.004776d0
movaps xmm0, xmmword [ebp - 0x50]
movaps xmmword [ebp - 0x50], xmm0
mov dword [ebp - 0x48], 0
movaps xmm4, xmmword [ebp - 0x50]
movaps xmm3, xmm4
movaps xmm7, xmmword [ebp - 0x60]
mulps xmm3, xmm4
movaps xmm1, xmmword [ebp - 0x80]
movaps xmm0, xmm3
shufps xmm0, xmm3, 0x55
addss xmm0, xmm3
shufps xmm3, xmm3, 0xaa
addss xmm3, xmm0
movaps xmm0, xmm7
shufps xmm3, xmm3, 0
movaps xmm2, xmm3
movaps xmm5, xmm3
cmpeqss xmm5, dword [ebp - 0x70]
rsqrtss xmm2, xmm2
mulss xmm3, xmm2
mulss xmm0, xmm2
mulss xmm3, xmm2
subss xmm1, xmm3
movaps xmm3, xmmword [ebp - 0xc0]
movaps xmm2, xmm3
movaps xmm6, xmm3
shufps xmm6, xmm3, 0xc9
mulss xmm0, xmm1
movaps xmm1, xmm3
shufps xmm1, xmm3, 0xd2
andnps xmm5, xmm0
shufps xmm5, xmm5, 0
mulps xmm5, xmm4
movaps xmm4, xmm3
shufps xmm4, xmm3, 0xff
mulps xmm2, xmm5
movaps xmm0, xmm2
shufps xmm0, xmm2, 0x55
addss xmm0, xmm2
shufps xmm2, xmm2, 0xaa
addss xmm2, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0xd2
mulps xmm6, xmm0
movaps xmm0, xmm5
shufps xmm0, xmm5, 0xc9
mulps xmm1, xmm0
shufps xmm2, xmm2, 0
mulps xmm2, xmm3
subps xmm6, xmm1
movaps xmm3, xmmword [ebp - 0x80]
mulps xmm6, xmm4
mulps xmm4, xmm4
addps xmm4, xmmword [0x7195c0]
mulps xmm4, xmm5
addps xmm4, xmm2
addps xmm6, xmm4
addps xmm6, xmm6
movaps xmm1, xmm6
mulps xmm1, xmm6
movaps xmm0, xmm1
shufps xmm0, xmm1, 0x55
addss xmm0, xmm1
shufps xmm1, xmm1, 0xaa
addss xmm1, xmm0
shufps xmm1, xmm1, 0
movaps xmm0, xmm1
movaps xmm2, xmm1
cmpeqss xmm2, dword [ebp - 0x70]
rsqrtss xmm0, xmm0
mulss xmm1, xmm0
mulss xmm7, xmm0
mulss xmm1, xmm0
subss xmm3, xmm1
mulss xmm7, xmm3
movaps xmm0, xmmword [ebp - 0xd0]
andnps xmm2, xmm7
mov eax, dword [ebp - 0xc]
shufps xmm2, xmm2, 0
mulps xmm2, xmm6
shufps xmm0, xmm0, 0
mulps xmm2, xmm0
movss xmm0, dword [ebp - 0x1c]
movss dword [ebp - 0x14], xmm0
addps xmm2, xmmword [eax]
movaps xmmword [ebp - 0x60], xmm2
jmp 0x5f1070
movaps xmm0, xmmword [ebp - 0xb0]
movaps xmmword [ebp - 0x60], xmm0
jmp 0x5f1070
mov byte [esi + 0x70], 0
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov ecx, eax
mov dword [ebp - 0x28], ecx
mov eax, dword [ecx + 4]
mov dword [ebp - 0x10], eax
cmp eax, dword [ecx + 0xc]
jae 0x5f10a9
mov dword [eax], str.StApplyLookat
rdtsc
mov dword [ebp - 4], eax
mov eax, dword [ebp - 0x10]
mov ecx, dword [ebp - 4]
mov dword [eax + 4], ecx
add eax, 0xc
mov ecx, dword [ebp - 0x28]
mov dword [ecx + 4], eax
mov eax, dword [esi + 0x34]
xor edx, edx
mov dword [ebp - 0x28], edx
test eax, eax
jle 0x5f10fa
mov ecx, dword [esi + 0x30]
mov dword [ebp - 0xc], eax
nop dword [eax + eax]
cmp byte [ecx + 0x2c], 0
je 0x5f10d1
movsx eax, word [ecx]
cmp eax, edi
mov eax, dword [ebp - 0xc]
jge 0x5f10d1
inc edx
add ecx, 0x40
sub eax, 1
mov dword [ebp - 0xc], eax
jne 0x5f10c0
mov dword [ebp - 0x28], edx
test edx, edx
je 0x5f10fa
movss xmm1, dword [ebp - 0x14]
movd xmm0, edx
cvtdq2ps xmm0, xmm0
divss xmm1, xmm0
movss dword [ebp - 0x24], xmm1
jmp 0x5f10fd
xorps xmm1, xmm1
cmp byte [esi + 0x2c], 0
je 0x5f1115
cmp byte [esi + 0x70], 0
je 0x5f110f
cmp byte [esi + 0x50], 0
je 0x5f1115
mov byte [ebp - 0x1c], 1
jmp 0x5f1119
mov byte [ebp - 0x1c], 0
cmp dword [esi + 0x34], 0
mov dword [ebp - 0xc], 0
mov dword [ebp - 4], 0
jle 0x5f1201
mov ecx, dword [esi + 0x30]
xor edi, edi
mov dword [ebp - 0x10], edx
mov edx, dword [ebp - 0x18]
nop dword [eax]
movsx eax, word [ecx + edi]
add ecx, edi
cmp eax, edx
jge 0x5f11eb
cmp byte [ecx + 0x2c], 0
je 0x5f1170
mov eax, dword [ebp - 0x28]
dec eax
cmp dword [ebp - 0xc], eax
jne 0x5f1170
movss xmm0, dword [ecx + 0x20]
mulss xmm0, dword [0x7a3b34]
mov byte [ebp - 5], 1
jmp 0x5f1189
movss xmm0, dword [ecx + 0x20]
mulss xmm0, dword [0x7a3b34]
mov byte [ebp - 5], 0
comiss xmm0, xmm1
jbe 0x5f1189
movaps xmm0, xmm1
push ecx
movss dword [esp], xmm0
lea eax, [ebp - 0x60]
push eax
push dword [ebp - 0x1c]
push dword [ebx + 0xc]
push ecx
push esi
call fcn.005f1360
mov ecx, dword [esi + 0x30]
add esp, 0x18
mov edx, dword [ebp - 0x18]
fstp dword [ebp - 0x20]
cmp byte [edi + ecx + 0x2c], 0
je 0x5f11e4
cmp byte [ebp - 5], 0
jne 0x5f11e4
mov eax, dword [ebp - 0x10]
inc dword [ebp - 0xc]
dec eax
movss xmm1, dword [ebp - 0x14]
subss xmm1, dword [ebp - 0x20]
mov dword [ebp - 0x10], eax
movd xmm0, eax
cvtdq2ps xmm0, xmm0
movss dword [ebp - 0x14], xmm1
divss xmm1, xmm0
movss dword [ebp - 0x24], xmm1
jmp 0x5f11ee
movss xmm1, dword [ebp - 0x24]
jmp 0x5f11ee
mov ecx, dword [esi + 0x30]
mov eax, dword [ebp - 4]
add edi, 0x40
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [esi + 0x34]
jl 0x5f1140
mov edi, dword [ebp - 0x18]
xor edx, edx
mov dword [ebp - 4], edx
cmp dword [esi + 0x40], edx
jle 0x5f125e
xor ecx, ecx
mov dword [ebp - 0x10], ecx
add ecx, dword [esi + 0x3c]
movsx eax, word [ecx]
cmp eax, edi
jge 0x5f124c
movss xmm0, dword [ecx + 0x20]
lea eax, [ebp - 0xb0]
mulss xmm0, dword [0x7a3b34]
push ecx
movss dword [esp], xmm0
push eax
push dword [ebp - 0x1c]
push dword [ebx + 0xc]
push ecx
push esi
call fcn.005f1360
mov edx, dword [ebp - 4]
fstp st(0)
add esp, 0x18
mov ecx, dword [ebp - 0x10]
inc edx
add ecx, 0x40
mov dword [ebp - 4], edx
mov dword [ebp - 0x10], ecx
cmp edx, dword [esi + 0x40]
jl 0x5f1213
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov esi, eax
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0xc]
jae 0x5f128b
mov dword [ecx], str.StCopyPose
rdtsc
mov dword [ebp - 0x20], eax
mov edx, dword [ebp - 0x20]
lea eax, [ecx + 0xc]
mov dword [ecx + 4], edx
mov dword [esi + 4], eax
mov ecx, dword [ebx + 0xc]
call fcn.0057fe50
mov ecx, dword [ebx + 0x10]
lea esi, [edi + edi*2]
shl esi, 4
push esi
push dword [eax]
mov ecx, dword [ecx]
movsx eax, word [ecx + 0x34]
add eax, ecx
push eax
call fcn.0045d810
mov eax, dword [ebx + 0x10]
lea ecx, [edi + 0x20]
sar ecx, 5
add esp, 0xc
mov eax, dword [eax]
movsx edx, word [eax + 0x34]
add edx, eax
add edx, esi
mov esi, ecx
or esi, 0x80000000
mov dword [ebp - 0x10], edx
test ecx, ecx
jle 0x5f12d9
or eax, 0xffffffff
mov edi, edx
rep stosd dword es:[edi], eax
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov dword [ebp - 4], eax
mov edi, dword [eax + 4]
cmp edi, dword [eax + 0xc]
jae 0x5f130a
mov dword [edi], 0x77f784
rdtsc
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
lea eax, [edi + 0xc]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 4]
mov dword [ecx + 4], eax
test esi, esi
js 0x5f1328
mov eax, dword [0x7d8954]
and esi, 0x3fffffff
shl esi, 2
mov ecx, 0x7d8954
push esi
push dword [ebp - 0x10]
call dword [eax + 0x10]
push dword [0x884c50]
call dword [sym.imp.KERNEL32.dll_TlsGetValue]
mov edi, eax
mov esi, dword [edi + 4]
cmp esi, dword [edi + 0xc]
jae 0x5f1355
mov dword [esi], 0x77f5ec
rdtsc
mov dword [ebp - 0x20], eax
mov ecx, dword [ebp - 0x20]
lea eax, [esi + 0xc]
mov dword [esi + 4], ecx
mov dword [edi + 4], eax
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret