Function at 0x100853e0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [0x1015b040]
xor eax, esp
mov dword [esp + 0xc4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x58], eax
mov eax, dword [0x1018bbbc]
push esi
push edi
mov dword [esp + 0x64], ecx
mov eax, dword [eax]
mov dword [esp + 8], eax
test eax, eax
je 0x1008692b
mov eax, dword [0x1018bcc0]
test al, 1
jne 0x100854ef
or eax, 1
mov dword [esp + 0x50], 0
push 0x25
mov dword [0x1018bcc0], eax
lea ecx, [esp + 0x44]
mov eax, dword [0x1018bfd0]
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
mov dword [esp + 0x44], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x5c], 0
call fcn.100052f0
cmp dword [esp + 0x54], 0xf
lea esi, [esp + 0x40]
mov edi, dword [esp + 0x40]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x50], ecx
jbe 0x10085493
nop
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x50]
jb 0x10085480
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcc4], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
jbe 0x100854ef
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100854e5
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bcc4]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
je 0x1008692b
mov ecx, dword [0x1018bbc4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
je 0x1008692b
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x1018bcc0]
test al, 1
jne 0x100855ff
mov eax, dword [0x1018bfd0]
lea ecx, [esp + 0x40]
or dword [0x1018bcc0], 1
push 0x25
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
mov dword [esp + 0x44], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.100052f0
cmp dword [esp + 0x54], 0xf
lea esi, [esp + 0x40]
mov edi, dword [esp + 0x40]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x50], ecx
jbe 0x100855a3
nop dword [eax]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x50]
jb 0x10085590
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcc4], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
jbe 0x100855ff
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100855f5
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bcc4]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x1008561d
mov dword [esp + 8], 0
jmp 0x1008562f
mov ecx, dword [0x1018bbc4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, dword [0x1018bac8]
test cl, 1
jne 0x10085704
mov eax, dword [0x1018bfd0]
lea ecx, [esp + 0x40]
or dword [0x1018bac8], 1
push 0x2d
vpxor xmm0, xmm0, xmm0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
mov dword [esp + 0x44], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.100052f0
cmp dword [esp + 0x54], 0xf
lea esi, [esp + 0x40]
mov edi, dword [esp + 0x40]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x50], ecx
jbe 0x100856a8
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x50]
jb 0x10085695
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bb3c], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
jbe 0x10085704
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100856fa
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bb3c]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
cmp word [ecx + eax], 0x1f
je 0x1008692b
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x1018bcc0]
test al, 1
jne 0x100857ff
mov eax, dword [0x1018bfd0]
lea ecx, [esp + 0x40]
or dword [0x1018bcc0], 1
push 0x25
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
mov dword [esp + 0x44], eax
vmovdqu xmmword [esp + 0x48], xmm0
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
call fcn.100052f0
cmp dword [esp + 0x54], 0xf
lea esi, [esp + 0x40]
mov edi, dword [esp + 0x40]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x50], ecx
jbe 0x100857a3
nop word [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x50]
jb 0x10085790
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcc4], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
jbe 0x100857ff
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100857f5
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bcc4]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x1008581d
mov dword [esp + 8], 0
jmp 0x1008582f
mov ecx, dword [0x1018bbc4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, dword [0x1018bfe4]
mov eax, dword [ecx + 0x50]
mov dword [esp + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
mov ecx, dword [0x1018bac8]
mov dword [esp + 0x68], eax
test cl, 1
jne 0x1008591f
mov eax, dword [0x1018bfd0]
lea ecx, [esp + 0x10]
or dword [0x1018bac8], 1
push 0x2d
vpxor xmm0, xmm0, xmm0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
mov dword [esp + 0x44], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x100858c3
nop dword [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x100858b0
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bb3c], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x1008591f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10085915
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bb3c]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, word [ecx + eax]
mov ecx, dword [esp + 0xc]
push eax
call dword [esp + 0x6c]
test eax, eax
je 0x1008692b
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bcc0]
test al, 1
jne 0x10085a1f
or eax, 1
mov dword [esp + 0x20], 0
push 0x25
mov dword [0x1018bcc0], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1018bfd0]
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x100859c3
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x100859b0
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcc4], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10085a1f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10085a15
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bcc4]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x10085a3d
mov dword [esp + 8], 0
jmp 0x10085a4f
mov ecx, dword [0x1018bbc4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, dword [0x1018bfe4]
mov eax, dword [ecx + 0x50]
mov dword [esp + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
mov ecx, dword [0x1018bac8]
mov dword [esp + 0x3c], eax
test cl, 1
jne 0x10085b3f
mov eax, dword [0x1018bfd0]
or ecx, 1
push 0x2d
mov dword [0x1018bac8], ecx
lea ecx, [esp + 0x14]
vpxor xmm0, xmm0, xmm0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x10085ae3
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10085ad0
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bb3c], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10085b3f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10085b35
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bb3c]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
movzx eax, word [ecx + eax]
mov ecx, dword [esp + 0xc]
push eax
call dword [esp + 0x40]
cmp dword [eax + 0xc8], 9
je 0x1008692b
mov eax, dword [esp + 0x64]
cmp byte [eax + 0xd], 0
je 0x100868f9
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
je 0x100868f9
mov eax, dword [0x1018bfe4]
vmovss xmm1, dword [0x10158254]
vmovq xmm0, qword [eax + 0x120]
mov eax, dword [eax + 0x128]
vmovq qword [esp + 0x40], xmm0
vmovss xmm2, dword [esp + 0x40]
vcomiss xmm2, xmm1
mov dword [esp + 0x48], eax
jbe 0x10085f6a
vmovss xmm0, dword [0x10157dd4]
vcomiss xmm0, xmm2
jbe 0x10085f6a
vmovss xmm2, dword [esp + 0x44]
vcomiss xmm2, xmm1
jbe 0x10085f6a
vcomiss xmm0, xmm2
jbe 0x10085f6a
vmovss xmm2, dword [esp + 0x48]
vcomiss xmm2, xmm1
jbe 0x10085f6a
vcomiss xmm0, xmm2
jbe 0x10085f6a
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bce4]
test al, 1
jne 0x10085ce2
or eax, 1
mov dword [esp + 0x20], 0
push 0xe
mov dword [0x1018bce4], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1018bfd0]
vpxor xmm0, xmm0, xmm0
push str.m_vecAbsOrigin
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x10085c86
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10085c73
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcac], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10085ce2
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10085cd8
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bcac]
mov eax, dword [eax + 4]
add eax, dword [esp + 0xc]
vmovq xmm0, qword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x1018bfe4]
vmovq qword [eax + 0x120], xmm0
mov dword [eax + 0x128], ecx
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bb48]
test al, 1
jne 0x10085de7
or eax, 1
mov dword [esp + 0x20], 0
push 0x15
mov dword [0x1018bb48], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1018bfd0]
vpxor xmm0, xmm0, xmm0
push str.CBasePlayer__m_fFlags
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x10085d8b
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10085d78
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bad0], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10085de7
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10085ddd
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bad0]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
test byte [ecx + eax], 1
jne 0x1008692b
push 0x48
call fcn.101122f3
mov ecx, dword [0x1018bfe4]
mov edx, eax
vxorps xmm5, xmm5, xmm5
add esp, 4
vmovss xmm1, dword [ecx + 0x124]
vmovss xmm3, dword [ecx + 0x128]
vmovq xmm0, qword [ecx + 0x120]
vmovss xmm4, dword [ecx + 0x120]
vmovq qword [edx], xmm0
mov eax, dword [ecx + 0x128]
mov dword [edx + 8], eax
mov dword [edx + 0xc], 0
vsubss xmm0, xmm1, xmm5
vsubss xmm2, xmm0, dword [ecx + 0x124]
vsubss xmm0, xmm3, dword [0x10158204]
vsubss xmm1, xmm0, dword [ecx + 0x128]
vsubss xmm0, xmm4, xmm5
vsubss xmm0, xmm0, dword [ecx + 0x120]
vmovss dword [edx + 0x10], xmm0
vmovss dword [edx + 0x18], xmm1
vmovss dword [edx + 0x14], xmm2
mov dword [edx + 0x1c], 0
vmovss dword [edx + 0x28], xmm5
vmovss dword [edx + 0x24], xmm5
vmovss dword [edx + 0x20], xmm5
mov dword [edx + 0x2c], 0
vmovss dword [edx + 0x38], xmm5
vmovss dword [edx + 0x34], xmm5
vmovss dword [edx + 0x30], xmm5
mov dword [edx + 0x3c], 0
mov dword [edx + 0x40], 0
mov byte [edx + 0x44], 1
vmovss xmm0, dword [edx + 0x10]
vmovss xmm3, dword [edx + 0x14]
vmovss xmm2, dword [edx + 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 0x10085eed
mov al, 1
jmp 0x10085eef
xor al, al
mov byte [edx + 0x45], al
lea ecx, [esp + 0x70]
mov dword [esp + 0x68], 0x10153044
call fcn.100655e0
mov ecx, dword [0x1018bba4]
lea esi, [esp + 0x70]
push esi
lea esi, [esp + 0x6c]
push esi
mov eax, dword [ecx]
push 0x200400b
push edx
mov eax, dword [eax + 0x14]
call eax
vmovss xmm0, dword [0x10157ec8]
vcomiss xmm0, dword [esp + 0x9c]
jbe 0x1008692b
vmovss xmm0, dword [esp + 0x84]
vaddss xmm0, xmm0, dword [0x10157f18]
vxorps xmm1, xmm1, xmm1
vaddss xmm2, xmm1, dword [esp + 0x7c]
vaddss xmm1, xmm1, dword [esp + 0x80]
vmovss dword [esp + 0x48], xmm0
vunpcklps xmm0, xmm2, xmm1
jmp 0x10086913
mov eax, dword [esp + 0x60]
test byte [eax + 0x30], 1
je 0x1008607c
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bcc0]
test al, 1
jne 0x10086056
mov eax, dword [0x1018bfd0]
lea ecx, [esp + 0x10]
or dword [0x1018bcc0], 1
push 0x25
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x10085ffa
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10085fe7
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcc4], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10086056
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x1008604c
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bcc4]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
je 0x1008607c
mov ecx, dword [0x1018bbc4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
jne 0x1008608e
mov eax, dword [0x1018bfe4]
test byte [eax + 0x170], 0x10
je 0x10086295
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bcc0]
test al, 1
jne 0x1008616f
mov eax, dword [0x1018bfd0]
lea ecx, [esp + 0x10]
or dword [0x1018bcc0], 1
push 0x25
vpxor xmm0, xmm0, xmm0
push str.CBaseCombatCharacter__m_hActiveWeapon
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x10086113
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10086100
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcc4], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x1008616f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10086165
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bcc4]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x1008618d
mov dword [esp + 8], 0
jmp 0x1008619f
mov ecx, dword [0x1018bbc4]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, dword [0x1018bac8]
test cl, 1
jne 0x10086276
mov eax, dword [0x1018bfd0]
or ecx, 1
push 0x2d
mov dword [0x1018bac8], ecx
lea ecx, [esp + 0x14]
vpxor xmm0, xmm0, xmm0
push str.CBaseAttributableItem__m_iItemDefinitionIndex
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x1008621a
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10086207
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bb3c], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10086276
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x1008626c
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bb3c]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
cmp word [ecx + eax], 0x40
je 0x10086295
mov eax, dword [0x1018bfe4]
mov byte [eax + 0x12c], 1
mov esi, dword [esp + 0x60]
test dword [esi + 0x30], 0x61a
jne 0x100862ae
mov eax, dword [0x1018bfe4]
mov byte [eax + 0x12c], 1
mov eax, dword [0x1018bfe4]
cmp byte [eax + 0x12c], 0
je 0x1008692b
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bce4]
test al, 1
jne 0x100863a3
or eax, 1
mov dword [esp + 0x20], 0
push 0xe
mov dword [0x1018bce4], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1018bfd0]
vpxor xmm0, xmm0, xmm0
push str.m_vecAbsOrigin
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x10086343
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10086330
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcac], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x1008639f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10086395
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov esi, dword [esp + 0x60]
mov eax, dword [0x1018bcac]
mov eax, dword [eax + 4]
add eax, dword [esp + 0xc]
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 [0x1018bfe4]
vsubss xmm1, xmm0, dword [eax + 0x120]
vmovss xmm0, dword [esp + 0x44]
vsubss xmm0, xmm0, dword [eax + 0x124]
vmulss xmm1, xmm1, xmm1
vmulss xmm0, xmm0, xmm0
vaddss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x10086401
vsqrtsd xmm0, xmm0, xmm0
jmp 0x10086406
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vcvtsd2ss xmm0, xmm0, xmm0
vcomiss xmm0, dword [0x10157fc4]
jbe 0x100866b2
mov eax, dword [esi + 4]
and dword [esi + 0x30], 0xfffffffd
and eax, 0x80000001
jns 0x1008642b
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov eax, dword [0x1018bb80]
je 0x10086446
mov ecx, 0xe
sub ecx, dword [eax + 0x4d30]
mov dword [esp + 0x3c], ecx
jmp 0x10086450
mov eax, dword [eax + 0x4d30]
mov dword [esp + 0x3c], eax
mov eax, dword [0x1018bbbc]
mov ecx, dword [0x1018bfe4]
mov dword [esp + 8], ecx
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bce4]
test al, 1
jne 0x10086547
or eax, 1
mov dword [esp + 0x20], 0
push 0xe
mov dword [0x1018bce4], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1018bfd0]
vpxor xmm0, xmm0, xmm0
push str.m_vecAbsOrigin
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x100864e3
nop word [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x100864d0
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bcac], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x1008653f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10086535
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x60]
mov eax, dword [0x1018bcac]
mov eax, dword [eax + 4]
add eax, dword [esp + 0xc]
vmovss xmm0, dword [eax]
vsubss xmm2, xmm0, dword [ecx + 0x120]
vmovss xmm0, dword [eax + 4]
vsubss xmm1, xmm0, dword [ecx + 0x124]
vmovss xmm0, dword [eax + 8]
vsubss xmm0, xmm0, dword [ecx + 0x128]
vmovss dword [esp + 0xc], xmm0
vdivss xmm0, xmm1, xmm2
vcvtss2sd xmm0, xmm0, xmm0
vmovss dword [esp + 8], xmm2
vmovss dword [esp + 0x68], xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_atan_precise
vcvtsd2ss xmm0, xmm0, xmm0
vmulss xmm0, xmm0, dword [0x10158070]
vmovss dword [esp + 0x44], xmm0
vmovss xmm0, dword [esp + 8]
vmulss xmm1, xmm0, xmm0
vmovss xmm0, dword [esp + 0x68]
vmulss xmm0, xmm0, xmm0
vaddss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x100865d6
vsqrtsd xmm0, xmm0, xmm0
jmp 0x100865db
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vmovss xmm2, dword [esp + 0xc]
vxorps xmm1, xmm2, xmmword [0x10158550]
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 xmm0, xmm0, dword [0x1015829c]
vmovss dword [esp + 0x40], xmm0
vmovss xmm0, dword [esp + 8]
vxorps xmm1, xmm1, xmm1
vcomiss xmm0, xmm1
vmovss dword [esp + 0x48], xmm1
jb 0x10086636
vmovss xmm0, dword [esp + 0x44]
vaddss xmm0, xmm0, dword [0x10158120]
vmovss dword [esp + 0x44], xmm0
mov eax, dword [esp + 0x48]
vmovq xmm0, qword [esp + 0x40]
mov dword [ebp + 0x14], eax
mov eax, dword [0x1018c08c]
vmovq qword [ebp + 0xc], xmm0
test al, 1
jne 0x10086675
mov ecx, dword [0x1018bbcc]
or eax, 1
mov dword [0x1018c08c], eax
push str.cl_forwardspeed
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, eax
mov dword [0x1018c090], ecx
jmp 0x1008667b
mov ecx, dword [0x1018c090]
mov eax, dword [ecx]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x68], eax
call dword [esp + 0x68]
vxorps xmm0, xmm0, xmm0
vcvtsi2ss xmm0, xmm0, dword [esp + 0x3c]
vmulss xmm0, xmm0, dword [0x10157ed0]
vmovss dword [esp + 0x68], xmm0
fsub dword [esp + 0x68]
vxorps xmm0, xmm0, xmm0
fstp dword [esi + 0x24]
vmovss dword [esi + 0x28], xmm0
jmp 0x100866e4
mov eax, dword [0x1018bfe4]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0x48], xmm0
vunpcklps xmm0, xmm0, xmm0
mov byte [eax + 0x12c], 0
mov ecx, dword [0x1018bfe4]
mov eax, dword [esp + 0x48]
vmovq qword [ecx + 0x120], xmm0
mov dword [ecx + 0x128], eax
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bcdc]
test al, 1
jne 0x100867c3
or eax, 1
mov dword [esp + 0x20], 0
push 0xa
mov dword [0x1018bcdc], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1018bfd0]
vpxor xmm0, xmm0, xmm0
push str.m_MoveType
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x10086767
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10086754
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bd00], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x100867c3
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100867b9
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100868a3
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bd00]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov al, byte [ecx + eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1018bbbc]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [0x1018bb48]
test al, 1
jne 0x100868b3
or eax, 1
mov dword [esp + 0x20], 0
push 0x15
mov dword [0x1018bb48], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1018bfd0]
vpxor xmm0, xmm0, xmm0
push str.CBasePlayer__m_fFlags
mov dword [esp + 0x70], eax
vmovdqu xmmword [esp + 0x18], xmm0
mov dword [esp + 0x2c], 0
call fcn.100052f0
cmp dword [esp + 0x24], 0xf
lea esi, [esp + 0x10]
mov edi, dword [esp + 0x10]
mov edx, 0x811c9dc5
cmova esi, edi
xor ecx, ecx
cmp dword [esp + 0x20], ecx
jbe 0x10086859
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10086846
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10008e20
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100868ee
add eax, 0x20
mov dword [0x1018bad0], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x100868b3
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100868a9
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100868a9
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edi
call fcn.10112642
add esp, 8
mov eax, dword [0x1018bad0]
push dword [esp + 0xc]
mov edx, dword [esp + 0x40]
mov ecx, dword [esp + 0x68]
mov eax, dword [eax + 4]
push dword [eax + edx]
lea eax, [ebp + 0xc]
push eax
mov eax, dword [esp + 0x6c]
push eax
call fcn.100841a0
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.101122e5
mov esp, ebp
pop ebp
ret 0x10
push str.invalid_unordered_map_K__T__key
call dword [sym.imp.MSVCP140.dll_void___cdecl_std::_Xout_of_range_char_const__]
mov eax, dword [0x1018bfe4]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0x48], xmm0
vunpcklps xmm0, xmm0, xmm0
mov byte [eax + 0x12c], 0
mov ecx, dword [0x1018bfe4]
mov eax, dword [esp + 0x48]
vmovq qword [ecx + 0x120], xmm0
mov dword [ecx + 0x128], eax
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
xor ecx, esp
call fcn.101122e5
mov esp, ebp
pop ebp
ret 0x10