Function at 0x10078d20
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xb8
mov eax, dword [0x10269840]
xor eax, esp
mov dword [esp + 0xb4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov eax, dword [0x102699d4]
push esi
push edi
mov edi, dword [ebp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x14], ecx
mov dword [esp + 8], eax
test eax, eax
je 0x10079d85
mov eax, dword [0x10269e20]
test al, 1
jne 0x10078de5
mov esi, dword [0x10269968]
lea ecx, [esp + 0x40]
push 0x25
or eax, 1
mov dword [esp + 0x54], 0
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
mov dword [0x10269e20], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269e1c], eax
cmp ecx, 0xf
jbe 0x10078de5
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10078ddb
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269e1c]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
je 0x10079d85
mov ecx, dword [0x10269978]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
je 0x10079d85
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x10269e20]
test al, 1
jne 0x10078ea5
or dword [0x10269e20], 1
lea ecx, [esp + 0x40]
mov esi, dword [0x10269968]
push 0x25
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269e1c], eax
cmp ecx, 0xf
jbe 0x10078ea5
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10078e9b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269e1c]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x10078ec3
mov dword [esp + 0xc], 0
jmp 0x10078ed5
mov ecx, dword [0x10269978]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0xc], eax
mov ecx, dword [0x102699e4]
test cl, 1
jne 0x10078f5e
or dword [0x102699e4], 1
lea ecx, [esp + 0x40]
mov esi, dword [0x10269968]
push 0x2d
vpxor xmm0, xmm0, xmm0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x102699e0], eax
cmp ecx, 0xf
jbe 0x10078f5e
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10078f54
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x102699e0]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
cmp word [ecx + eax], 0x1f
je 0x10079d85
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x10269e20]
test al, 1
jne 0x10079007
or dword [0x10269e20], 1
lea ecx, [esp + 0x40]
mov esi, dword [0x10269968]
push 0x25
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269e1c], eax
cmp ecx, 0xf
jbe 0x10079007
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10078ffd
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269e1c]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x10079025
mov dword [esp + 0xc], 0
jmp 0x10079037
mov ecx, dword [0x10269978]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0xc], eax
mov ecx, dword [0x10269964]
mov eax, dword [ecx + 0x50]
mov dword [esp + 8], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
mov ecx, dword [0x102699e4]
mov dword [esp + 0x10], eax
test cl, 1
jne 0x100790d6
or dword [0x102699e4], 1
lea ecx, [esp + 0x40]
mov esi, dword [0x10269968]
push 0x2d
vpxor xmm0, xmm0, xmm0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x102699e0], eax
cmp ecx, 0xf
jbe 0x100790d6
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x100790cc
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x102699e0]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, word [edx + eax]
push eax
call dword [esp + 0x14]
test eax, eax
je 0x10079d85
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x10269e20]
test al, 1
jne 0x1007918a
mov esi, dword [0x10269968]
lea ecx, [esp + 0x40]
push 0x25
or eax, 1
mov dword [esp + 0x54], 0
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
mov dword [0x10269e20], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269e1c], eax
cmp ecx, 0xf
jbe 0x1007918a
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10079180
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269e1c]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x100791a8
mov dword [esp + 0xc], 0
jmp 0x100791ba
mov ecx, dword [0x10269978]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0xc], eax
mov ecx, dword [0x10269964]
mov eax, dword [ecx + 0x50]
mov dword [esp + 8], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
mov ecx, dword [0x102699e4]
mov dword [esp + 0x10], eax
test cl, 1
jne 0x1007925f
mov esi, dword [0x10269968]
or ecx, 1
push 0x2d
mov dword [0x102699e4], ecx
lea ecx, [esp + 0x44]
vpxor xmm0, xmm0, xmm0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x102699e0], eax
cmp ecx, 0xf
jbe 0x1007925f
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10079255
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x102699e0]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, word [edx + eax]
push eax
call dword [esp + 0x14]
cmp dword [eax + 0xc8], 9
je 0x10079d85
mov eax, dword [esp + 0x14]
push dword [eax + 0x28]
call dword [sym.imp.USER32.dll_GetKeyState]
test ax, ax
mov eax, dword [0x10269964]
je 0x10079d5d
vmovq xmm0, qword [eax + 0x134]
vmovss xmm1, dword [0x1016f980]
mov eax, dword [eax + 0x13c]
vmovq qword [esp + 0x40], xmm0
vmovss xmm2, dword [esp + 0x40]
vcomiss xmm2, xmm1
mov dword [esp + 0x48], eax
jbe 0x1007960c
vmovss xmm0, dword [0x10125278]
vcomiss xmm0, xmm2
jbe 0x1007960c
vmovss xmm2, dword [esp + 0x44]
vcomiss xmm2, xmm1
jbe 0x1007960c
vcomiss xmm0, xmm2
jbe 0x1007960c
vmovss xmm2, dword [esp + 0x48]
vcomiss xmm2, xmm1
jbe 0x1007960c
vcomiss xmm0, xmm2
jbe 0x1007960c
mov eax, dword [0x102699d4]
mov edi, dword [eax]
mov eax, dword [0x10269de8]
test al, 1
jne 0x100793a5
mov esi, dword [0x10269968]
lea ecx, [esp + 0x40]
push 0xe
or eax, 1
mov dword [esp + 0x54], 0
vpxor xmm0, xmm0, xmm0
push str.m_vecAbsOrigin
mov dword [0x10269de8], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269de4], eax
cmp ecx, 0xf
jbe 0x100793a5
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007939b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269de4]
mov eax, dword [eax + 4]
vmovq xmm0, qword [eax + edi]
mov ecx, dword [eax + edi + 8]
mov eax, dword [0x10269964]
vmovq qword [eax + 0x134], xmm0
mov dword [eax + 0x13c], ecx
mov eax, dword [0x102699d4]
mov edi, dword [eax]
mov eax, dword [0x102699dc]
test al, 1
jne 0x10079458
mov esi, dword [0x10269968]
lea ecx, [esp + 0x40]
push 0x15
or eax, 1
mov dword [esp + 0x54], 0
vpxor xmm0, xmm0, xmm0
push str.CBasePlayer__m_fFlags
mov dword [0x102699dc], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x102699d8], eax
cmp ecx, 0xf
jbe 0x10079458
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007944e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x102699d8]
mov eax, dword [eax + 4]
test byte [edi + eax], 1
jne 0x10079d85
push 0x48
call fcn.1010419b
mov esi, eax
add esp, 4
test esi, esi
je 0x1007956c
mov ecx, dword [0x10269964]
vxorps xmm5, xmm5, xmm5
vmovss xmm1, dword [ecx + 0x138]
vmovss xmm3, dword [ecx + 0x13c]
vmovq xmm0, qword [ecx + 0x134]
vmovss xmm4, dword [ecx + 0x134]
vmovq qword [esi], xmm0
mov eax, dword [ecx + 0x13c]
mov dword [esi + 8], eax
mov dword [esi + 0xc], 0
vsubss xmm0, xmm1, xmm5
vsubss xmm2, xmm0, dword [ecx + 0x138]
vsubss xmm0, xmm3, dword [0x1012533c]
vsubss xmm1, xmm0, dword [ecx + 0x13c]
vsubss xmm0, xmm4, xmm5
vsubss xmm0, xmm0, dword [ecx + 0x134]
vmovss dword [esi + 0x10], xmm0
vmovss dword [esi + 0x18], xmm1
vmovss dword [esi + 0x14], xmm2
mov dword [esi + 0x1c], 0
vmovss dword [esi + 0x28], xmm5
vmovss dword [esi + 0x24], xmm5
vmovss dword [esi + 0x20], xmm5
mov dword [esi + 0x2c], 0
vmovss dword [esi + 0x38], xmm5
vmovss dword [esi + 0x34], xmm5
vmovss dword [esi + 0x30], xmm5
mov dword [esi + 0x3c], 0
mov dword [esi + 0x40], 0
mov byte [esi + 0x44], 1
vmovss xmm0, dword [esi + 0x10]
vmovss xmm3, dword [esi + 0x14]
vmovss xmm2, dword [esi + 0x18]
vmulss xmm1, xmm0, xmm0
vmulss xmm0, xmm3, xmm3
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm2, xmm2
vaddss xmm0, xmm1, xmm0
vucomiss xmm0, xmm5
lahf
test ah, 0x44
jnp 0x10079565
mov al, 1
mov byte [esi + 0x45], al
jmp 0x1007956e
xor al, al
mov byte [esi + 0x45], al
jmp 0x1007956e
xor esi, esi
lea ecx, [esp + 0x60]
mov dword [esp + 0x44], 0
mov dword [esp + 0x40], 0x1016ef68
call fcn.10078060
mov ecx, dword [0x10269990]
lea edx, [esp + 0x60]
push edx
lea edx, [esp + 0x44]
push edx
mov eax, dword [ecx]
push 0x200400b
push esi
mov eax, dword [eax + 0x14]
call eax
vmovss xmm0, dword [0x10107b88]
vcomiss xmm0, dword [esp + 0x8c]
jbe 0x10079d85
vmovss xmm0, dword [esp + 0x74]
mov eax, dword [0x10269964]
vaddss xmm1, xmm0, dword [0x101252e8]
vxorps xmm3, xmm3, xmm3
vaddss xmm0, xmm3, dword [esp + 0x6c]
vaddss xmm2, xmm3, dword [esp + 0x70]
vmovss dword [eax + 0x134], xmm0
vmovss dword [eax + 0x138], xmm2
vmovss dword [eax + 0x13c], xmm1
pop edi
pop esi
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.101044f3
mov esp, ebp
pop ebp
ret 8
test byte [edi + 0x30], 1
je 0x100796ce
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x10269e20]
test al, 1
jne 0x100796a8
or dword [0x10269e20], 1
lea ecx, [esp + 0x40]
mov esi, dword [0x10269968]
push 0x25
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269e1c], eax
cmp ecx, 0xf
jbe 0x100796a8
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007969e
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269e1c]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
je 0x100796ce
mov ecx, dword [0x10269978]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
jne 0x100796e0
mov eax, dword [0x10269964]
test byte [eax + 0x188], 0x10
je 0x10079850
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x10269e20]
test al, 1
jne 0x10079772
or dword [0x10269e20], 1
lea ecx, [esp + 0x40]
mov esi, dword [0x10269968]
push 0x25
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269e1c], eax
cmp ecx, 0xf
jbe 0x10079772
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10079768
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269e1c]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x10079790
mov dword [esp + 0xc], 0
jmp 0x100797a2
mov ecx, dword [0x10269978]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 0xc], eax
mov ecx, dword [0x102699e4]
test cl, 1
jne 0x10079831
mov esi, dword [0x10269968]
or ecx, 1
push 0x2d
mov dword [0x102699e4], ecx
lea ecx, [esp + 0x44]
vpxor xmm0, xmm0, xmm0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x102699e0], eax
cmp ecx, 0xf
jbe 0x10079831
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10079827
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x102699e0]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
cmp word [ecx + eax], 0x40
je 0x10079850
mov eax, dword [0x10269964]
mov byte [eax + 0x140], 1
mov eax, dword [esp + 0x14]
cmp byte [eax + 0x10], 0
je 0x1007986f
test dword [edi + 0x30], 0x61a
jne 0x1007986f
mov eax, dword [0x10269964]
mov byte [eax + 0x140], 1
mov eax, dword [0x10269964]
cmp byte [eax + 0x140], 0
je 0x10079d85
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x10269de8]
test al, 1
jne 0x10079914
mov esi, dword [0x10269968]
lea ecx, [esp + 0x40]
push 0xe
or eax, 1
mov dword [esp + 0x54], 0
vpxor xmm0, xmm0, xmm0
push str.m_vecAbsOrigin
mov dword [0x10269de8], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269de4], eax
cmp ecx, 0xf
jbe 0x10079914
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x1007990a
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269de4]
mov eax, dword [eax + 4]
add eax, dword [esp + 8]
vmovq xmm0, qword [eax]
mov eax, dword [eax + 8]
vmovq qword [esp + 0x40], xmm0
vmovss xmm0, dword [esp + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [0x10269964]
vsubss xmm2, xmm0, dword [eax + 0x134]
vmovss xmm0, dword [esp + 0x44]
vsubss xmm0, xmm0, dword [eax + 0x138]
vmulss xmm1, xmm0, xmm0
vmulss xmm0, xmm2, xmm2
vaddss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x10079972
vsqrtsd xmm0, xmm0, xmm0
jmp 0x10079977
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vcvtsd2ss xmm0, xmm0, xmm0
vcomiss xmm0, dword [0x101252fc]
jbe 0x10079bbe
mov eax, dword [edi + 4]
and dword [edi + 0x30], 0xfffffffd
and eax, 0x80000001
jns 0x1007999c
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov eax, dword [0x1026997c]
je 0x100799b7
mov ecx, 0xe
sub ecx, dword [eax + 0x4d30]
mov dword [esp + 8], ecx
jmp 0x100799c1
mov eax, dword [eax + 0x4d30]
mov dword [esp + 8], eax
mov eax, dword [0x10269964]
mov dword [esp + 0xc], eax
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov eax, dword [0x10269de8]
test al, 1
jne 0x10079a5d
mov esi, dword [0x10269968]
lea ecx, [esp + 0x40]
push 0xe
or eax, 1
mov dword [esp + 0x54], 0
vpxor xmm0, xmm0, xmm0
push str.m_vecAbsOrigin
mov dword [0x10269de8], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x5c], 0
call fcn.10002ab0
lea eax, [esp + 0x40]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x54]
mov dword [0x10269de4], eax
cmp ecx, 0xf
jbe 0x10079a5d
mov edx, dword [esp + 0x40]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10079a53
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269de4]
mov esi, dword [eax + 4]
add esi, dword [esp + 0x10]
mov eax, dword [esp + 0xc]
vmovss xmm0, dword [esi]
vsubss xmm1, xmm0, dword [eax + 0x134]
vmovss xmm0, dword [esi + 4]
vsubss xmm0, xmm0, dword [eax + 0x138]
vmovss dword [esp + 0x40], xmm0
vdivss xmm0, xmm0, xmm1
vcvtss2sd xmm0, xmm0, xmm0
vmovss dword [esp + 0x18], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_atan_precise
mov eax, dword [esp + 0xc]
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm0, xmm0, dword [0x1016f16c]
vmovss dword [esp + 0x10], xmm0
vmovss xmm0, dword [esi + 8]
vsubss xmm0, xmm0, dword [eax + 0x13c]
vxorps xmm0, xmm0, xmmword [0x101253e0]
vmovss dword [esp + 0xc], xmm0
vmovss xmm0, dword [esp + 0x40]
vmulss xmm1, xmm0, xmm0
vmovss xmm0, dword [esp + 0x18]
vmulss xmm0, xmm0, xmm0
vaddss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x10079afc
vsqrtsd xmm0, xmm0, xmm0
jmp 0x10079b01
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vmovss xmm1, dword [esp + 0xc]
vcvtsd2ss xmm0, xmm0, xmm0
vdivss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_atan_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm2, xmm0, dword [0x1016f988]
vmovss xmm0, dword [esp + 0x18]
vxorps xmm1, xmm1, xmm1
vcomiss xmm0, xmm1
vmovss xmm0, dword [esp + 0x10]
jb 0x10079b42
vaddss xmm0, xmm0, dword [0x1016f17c]
mov eax, dword [esp + 0x1c]
vmovss dword [eax], xmm2
vmovss dword [eax + 4], xmm0
vmovss dword [eax + 8], xmm1
mov eax, dword [0x10269fa0]
test al, 1
jne 0x10079b81
mov ecx, dword [0x1026998c]
or eax, 1
mov dword [0x10269fa0], eax
push str.cl_forwardspeed
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, eax
mov dword [0x10269f9c], ecx
jmp 0x10079b87
mov ecx, dword [0x10269f9c]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x40], eax
call dword [esp + 0x40]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [esp + 8]
vmulss xmm0, xmm0, dword [0x10129dc0]
vmovss dword [esp + 0x40], xmm0
fsub dword [esp + 0x40]
vxorps xmm0, xmm0, xmm0
fstp dword [edi + 0x24]
vmovss dword [edi + 0x28], xmm0
jmp 0x10079beb
mov eax, dword [0x10269964]
vxorps xmm0, xmm0, xmm0
mov byte [eax + 0x140], 0
mov eax, dword [0x10269964]
vmovss dword [eax + 0x134], xmm0
vmovss dword [eax + 0x138], xmm0
vmovss dword [eax + 0x13c], xmm0
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [0x10269e40]
test al, 1
jne 0x10079c7a
mov esi, dword [0x10269968]
lea ecx, [esp + 0x20]
push 0xa
or eax, 1
mov dword [esp + 0x34], 0
push str.m_MoveType
mov dword [0x10269e40], eax
vmovdqu xmmword [esp + 0x28], xmm0
mov dword [esp + 0x3c], 0
call fcn.10002ab0
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x34]
mov dword [0x10269e3c], eax
cmp ecx, 0xf
jbe 0x10079c7a
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10079c70
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10079d16
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x10269e3c]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov al, byte [ecx + eax]
mov dword [esp + 0x40], eax
mov eax, dword [0x102699d4]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x102699dc]
test al, 1
jne 0x10079d26
mov esi, dword [0x10269968]
lea ecx, [esp + 0x20]
push 0x15
or eax, 1
mov dword [esp + 0x34], 0
vpxor xmm0, xmm0, xmm0
push str.CBasePlayer__m_fFlags
mov dword [0x102699dc], eax
vmovdqu xmmword [esp + 0x28], xmm0
mov dword [esp + 0x3c], 0
call fcn.10002ab0
lea eax, [esp + 0x20]
mov ecx, esi
push eax
call fcn.10006660
mov ecx, dword [esp + 0x34]
mov dword [0x102699d8], eax
cmp ecx, 0xf
jbe 0x10079d26
mov edx, dword [esp + 0x20]
inc ecx
mov eax, edx
cmp ecx, 0x1000
jb 0x10079d1c
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10079d1c
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edx
call fcn.101041cb
add esp, 8
mov eax, dword [0x102699d8]
push dword [esp + 0x40]
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
push dword [eax + edx]
push dword [esp + 0x24]
push edi
call fcn.1007d2e0
pop edi
pop esi
mov ecx, dword [esp + 0xb4]
xor ecx, esp
call fcn.101044f3
mov esp, ebp
pop ebp
ret 8
mov byte [eax + 0x140], 0
mov eax, dword [0x10269964]
vxorps xmm0, xmm0, xmm0
vmovss dword [eax + 0x134], xmm0
vmovss dword [eax + 0x138], xmm0
vmovss dword [eax + 0x13c], xmm0
mov ecx, dword [esp + 0xbc]
pop edi
pop esi
xor ecx, esp
call fcn.101044f3
mov esp, ebp
pop ebp
ret 8