Function at 0x10083fc0
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0xc8
mov eax, dword [0x10163040]
xor eax, esp
mov dword [esp + 0xc4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x58], eax
mov eax, dword [0x1028fad0]
push esi
push edi
mov dword [esp + 0x64], ecx
mov eax, dword [eax]
mov dword [esp + 8], eax
test eax, eax
je 0x1008550b
mov eax, dword [0x1028fbec]
test al, 1
jne 0x100840cf
or eax, 1
mov dword [esp + 0x50], 0
push 0x25
mov dword [0x1028fbec], eax
lea ecx, [esp + 0x44]
mov eax, dword [0x1028ff90]
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.10005c60
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 0x10084073
nop
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x50]
jb 0x10084060
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fbf0], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
jbe 0x100840cf
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100840c5
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fbf0]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
je 0x1008550b
mov ecx, dword [0x1028fad8]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
je 0x1008550b
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x1028fbec]
test al, 1
jne 0x100841df
mov eax, dword [0x1028ff90]
lea ecx, [esp + 0x40]
or dword [0x1028fbec], 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.10005c60
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 0x10084183
nop dword [eax]
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x50]
jb 0x10084170
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fbf0], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
jbe 0x100841df
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100841d5
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fbf0]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x100841fd
mov dword [esp + 8], 0
jmp 0x1008420f
mov ecx, dword [0x1028fad8]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, dword [0x1028fa34]
test cl, 1
jne 0x100842e4
mov eax, dword [0x1028ff90]
lea ecx, [esp + 0x40]
or dword [0x1028fa34], 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.10005c60
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 0x10084288
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x50]
jb 0x10084275
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fa50], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
jbe 0x100842e4
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100842da
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fa50]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
cmp word [ecx + eax], 0x1f
je 0x1008550b
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov eax, dword [0x1028fbec]
test al, 1
jne 0x100843df
mov eax, dword [0x1028ff90]
lea ecx, [esp + 0x40]
or dword [0x1028fbec], 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.10005c60
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 0x10084383
nop word [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x50]
jb 0x10084370
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x40]
push edx
push eax
lea eax, [esp + 0x70]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x6c]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fbf0], eax
mov eax, dword [esp + 0x54]
cmp eax, 0xf
jbe 0x100843df
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100843d5
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fbf0]
mov edx, dword [esp + 8]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x100843fd
mov dword [esp + 8], 0
jmp 0x1008440f
mov ecx, dword [0x1028fad8]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, dword [0x1028ffa4]
mov eax, dword [ecx + 0x50]
mov dword [esp + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
mov ecx, dword [0x1028fa34]
mov dword [esp + 0x68], eax
test cl, 1
jne 0x100844ff
mov eax, dword [0x1028ff90]
lea ecx, [esp + 0x10]
or dword [0x1028fa34], 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.10005c60
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 0x100844a3
nop dword [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10084490
mov ecx, dword [esp + 0x3c]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fa50], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x100844ff
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100844f5
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fa50]
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 0x1008550b
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fbec]
test al, 1
jne 0x100845ff
or eax, 1
mov dword [esp + 0x20], 0
push 0x25
mov dword [0x1028fbec], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1028ff90]
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.10005c60
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 0x100845a3
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10084590
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fbf0], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x100845ff
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100845f5
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fbf0]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x1008461d
mov dword [esp + 8], 0
jmp 0x1008462f
mov ecx, dword [0x1028fad8]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, dword [0x1028ffa4]
mov eax, dword [ecx + 0x50]
mov dword [esp + 0xc], eax
mov ecx, dword [eax]
mov eax, dword [ecx + 8]
mov ecx, dword [0x1028fa34]
mov dword [esp + 0x3c], eax
test cl, 1
jne 0x1008471f
mov eax, dword [0x1028ff90]
or ecx, 1
push 0x2d
mov dword [0x1028fa34], 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.10005c60
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 0x100846c3
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x100846b0
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fa50], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x1008471f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10084715
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fa50]
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 0x1008550b
mov eax, dword [esp + 0x64]
cmp byte [eax + 0xd], 0
je 0x100854d9
push dword [eax + 0x20]
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
test eax, eax
je 0x100854d9
mov eax, dword [0x1028ffa4]
vmovss xmm1, dword [0x1015f3d4]
vmovq xmm0, qword [eax + 0x150]
mov eax, dword [eax + 0x158]
vmovq qword [esp + 0x40], xmm0
vmovss xmm2, dword [esp + 0x40]
vcomiss xmm2, xmm1
mov dword [esp + 0x48], eax
jbe 0x10084b4a
vmovss xmm0, dword [0x1015ef7c]
vcomiss xmm0, xmm2
jbe 0x10084b4a
vmovss xmm2, dword [esp + 0x44]
vcomiss xmm2, xmm1
jbe 0x10084b4a
vcomiss xmm0, xmm2
jbe 0x10084b4a
vmovss xmm2, dword [esp + 0x48]
vcomiss xmm2, xmm1
jbe 0x10084b4a
vcomiss xmm0, xmm2
jbe 0x10084b4a
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fc88]
test al, 1
jne 0x100848c2
or eax, 1
mov dword [esp + 0x20], 0
push 0xe
mov dword [0x1028fc88], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1028ff90]
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.10005c60
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 0x10084866
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10084853
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fc48], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x100848c2
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100848b8
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fc48]
mov eax, dword [eax + 4]
add eax, dword [esp + 0xc]
vmovq xmm0, qword [eax]
mov ecx, dword [eax + 8]
mov eax, dword [0x1028ffa4]
vmovq qword [eax + 0x150], xmm0
mov dword [eax + 0x158], ecx
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fa5c]
test al, 1
jne 0x100849c7
or eax, 1
mov dword [esp + 0x20], 0
push 0x15
mov dword [0x1028fa5c], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1028ff90]
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.10005c60
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 0x1008496b
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10084958
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fa3c], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x100849c7
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x100849bd
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fa3c]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
test byte [ecx + eax], 1
jne 0x1008550b
push 0x48
call fcn.101179d3
mov ecx, dword [0x1028ffa4]
mov edx, eax
vxorps xmm5, xmm5, xmm5
add esp, 4
vmovss xmm1, dword [ecx + 0x154]
vmovss xmm3, dword [ecx + 0x158]
vmovq xmm0, qword [ecx + 0x150]
vmovss xmm4, dword [ecx + 0x150]
vmovq qword [edx], xmm0
mov eax, dword [ecx + 0x158]
mov dword [edx + 8], eax
mov dword [edx + 0xc], 0
vsubss xmm0, xmm1, xmm5
vsubss xmm2, xmm0, dword [ecx + 0x154]
vsubss xmm0, xmm3, dword [0x1015f394]
vsubss xmm1, xmm0, dword [ecx + 0x158]
vsubss xmm0, xmm4, xmm5
vsubss xmm0, xmm0, dword [ecx + 0x150]
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 0x10084acd
mov al, 1
jmp 0x10084acf
xor al, al
mov byte [edx + 0x45], al
lea ecx, [esp + 0x70]
mov dword [esp + 0x68], 0x10159d7c
call fcn.10065370
mov ecx, dword [0x1028fab8]
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 [0x1015f088]
vcomiss xmm0, dword [esp + 0x9c]
jbe 0x1008550b
vmovss xmm0, dword [esp + 0x84]
vaddss xmm0, xmm0, dword [0x1015f0d0]
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 0x100854f3
mov eax, dword [esp + 0x60]
test byte [eax + 0x30], 1
je 0x10084c5c
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fbec]
test al, 1
jne 0x10084c36
mov eax, dword [0x1028ff90]
lea ecx, [esp + 0x10]
or dword [0x1028fbec], 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.10005c60
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 0x10084bda
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10084bc7
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fbf0], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10084c36
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10084c2c
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fbf0]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
je 0x10084c5c
mov ecx, dword [0x1028fad8]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
test eax, eax
jne 0x10084c6e
mov eax, dword [0x1028ffa4]
test byte [eax + 0x1a0], 0x10
je 0x10084e75
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fbec]
test al, 1
jne 0x10084d4f
mov eax, dword [0x1028ff90]
lea ecx, [esp + 0x10]
or dword [0x1028fbec], 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.10005c60
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 0x10084cf3
nop dword [eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10084ce0
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fbf0], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10084d4f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10084d45
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fbf0]
mov edx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov edx, dword [edx + eax]
cmp edx, 0xffffffff
jne 0x10084d6d
mov dword [esp + 8], 0
jmp 0x10084d7f
mov ecx, dword [0x1028fad8]
push edx
mov eax, dword [ecx]
mov eax, dword [eax + 0x10]
call eax
mov dword [esp + 8], eax
mov ecx, dword [0x1028fa34]
test cl, 1
jne 0x10084e56
mov eax, dword [0x1028ff90]
or ecx, 1
push 0x2d
mov dword [0x1028fa34], 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.10005c60
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 0x10084dfa
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10084de7
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fa50], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10084e56
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10084e4c
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fa50]
mov ecx, dword [esp + 8]
mov eax, dword [eax + 4]
cmp word [ecx + eax], 0x40
je 0x10084e75
mov eax, dword [0x1028ffa4]
mov byte [eax + 0x15c], 1
mov esi, dword [esp + 0x60]
test dword [esi + 0x30], 0x61a
jne 0x10084e8e
mov eax, dword [0x1028ffa4]
mov byte [eax + 0x15c], 1
mov eax, dword [0x1028ffa4]
cmp byte [eax + 0x15c], 0
je 0x1008550b
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fc88]
test al, 1
jne 0x10084f83
or eax, 1
mov dword [esp + 0x20], 0
push 0xe
mov dword [0x1028fc88], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1028ff90]
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.10005c60
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 0x10084f23
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10084f10
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fc48], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10084f7f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10084f75
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov esi, dword [esp + 0x60]
mov eax, dword [0x1028fc48]
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 [0x1028ffa4]
vsubss xmm1, xmm0, dword [eax + 0x150]
vmovss xmm0, dword [esp + 0x44]
vsubss xmm0, xmm0, dword [eax + 0x154]
vmulss xmm1, xmm1, xmm1
vmulss xmm0, xmm0, xmm0
vaddss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x10084fe1
vsqrtsd xmm0, xmm0, xmm0
jmp 0x10084fe6
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vcvtsd2ss xmm0, xmm0, xmm0
vcomiss xmm0, dword [0x1015f15c]
jbe 0x10085292
mov eax, dword [esi + 4]
and dword [esi + 0x30], 0xfffffffd
and eax, 0x80000001
jns 0x1008500b
dec eax
or eax, 0xfffffffe
inc eax
cmp eax, 1
mov eax, dword [0x1028fa94]
je 0x10085026
mov ecx, 0xe
sub ecx, dword [eax + 0x4d30]
mov dword [esp + 0x3c], ecx
jmp 0x10085030
mov eax, dword [eax + 0x4d30]
mov dword [esp + 0x3c], eax
mov eax, dword [0x1028fad0]
mov ecx, dword [0x1028ffa4]
mov dword [esp + 8], ecx
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fc88]
test al, 1
jne 0x10085127
or eax, 1
mov dword [esp + 0x20], 0
push 0xe
mov dword [0x1028fc88], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1028ff90]
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.10005c60
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 0x100850c3
nop word [eax + eax]
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x100850b0
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fc48], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x1008511f
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10085115
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x60]
mov eax, dword [0x1028fc48]
mov eax, dword [eax + 4]
add eax, dword [esp + 0xc]
vmovss xmm0, dword [eax]
vsubss xmm2, xmm0, dword [ecx + 0x150]
vmovss xmm0, dword [eax + 4]
vsubss xmm1, xmm0, dword [ecx + 0x154]
vmovss xmm0, dword [eax + 8]
vsubss xmm0, xmm0, dword [ecx + 0x158]
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 [0x1015f200]
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 0x100851b6
vsqrtsd xmm0, xmm0, xmm0
jmp 0x100851bb
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vmovss xmm2, dword [esp + 0xc]
vxorps xmm1, xmm2, xmmword [0x1015f6b0]
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 [0x1015f414]
vmovss dword [esp + 0x40], xmm0
vmovss xmm0, dword [esp + 8]
vxorps xmm1, xmm1, xmm1
vcomiss xmm0, xmm1
vmovss dword [esp + 0x48], xmm1
jb 0x10085216
vmovss xmm0, dword [esp + 0x44]
vaddss xmm0, xmm0, dword [0x1015f2b4]
vmovss dword [esp + 0x44], xmm0
mov eax, dword [esp + 0x48]
vmovq xmm0, qword [esp + 0x40]
mov dword [ebp + 0x14], eax
mov eax, dword [0x10290048]
vmovq qword [ebp + 0xc], xmm0
test al, 1
jne 0x10085255
mov ecx, dword [0x1028fae0]
or eax, 1
mov dword [0x10290048], eax
push str.cl_forwardspeed
mov eax, dword [ecx]
mov eax, dword [eax + 0x40]
call eax
mov ecx, eax
mov dword [0x1029004c], ecx
jmp 0x1008525b
mov ecx, dword [0x1029004c]
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 [0x1015f090]
vmovss dword [esp + 0x68], xmm0
fsub dword [esp + 0x68]
vxorps xmm0, xmm0, xmm0
fstp dword [esi + 0x24]
vmovss dword [esi + 0x28], xmm0
jmp 0x100852c4
mov eax, dword [0x1028ffa4]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0x48], xmm0
vunpcklps xmm0, xmm0, xmm0
mov byte [eax + 0x15c], 0
mov ecx, dword [0x1028ffa4]
mov eax, dword [esp + 0x48]
vmovq qword [ecx + 0x150], xmm0
mov dword [ecx + 0x158], eax
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fc00]
test al, 1
jne 0x100853a3
or eax, 1
mov dword [esp + 0x20], 0
push 0xa
mov dword [0x1028fc00], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1028ff90]
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.10005c60
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 0x10085347
movzx eax, byte [esi + ecx]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10085334
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fc20], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x100853a3
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10085399
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x10085483
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fc20]
mov ecx, dword [esp + 0xc]
mov eax, dword [eax + 4]
mov al, byte [ecx + eax]
mov dword [esp + 0xc], eax
mov eax, dword [0x1028fad0]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [0x1028fa5c]
test al, 1
jne 0x10085493
or eax, 1
mov dword [esp + 0x20], 0
push 0x15
mov dword [0x1028fa5c], eax
lea ecx, [esp + 0x14]
mov eax, dword [0x1028ff90]
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.10005c60
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 0x10085439
movzx eax, byte [ecx + esi]
inc ecx
xor eax, edx
imul edx, eax, 0x1000193
cmp ecx, dword [esp + 0x20]
jb 0x10085426
mov ecx, dword [esp + 0x68]
lea eax, [esp + 0x10]
push edx
push eax
lea eax, [esp + 0x48]
push eax
call fcn.10009d90
mov eax, dword [esp + 0x44]
test eax, eax
je 0x100854ce
add eax, 0x20
mov dword [0x1028fa3c], eax
mov eax, dword [esp + 0x24]
cmp eax, 0xf
jbe 0x10085493
lea ecx, [eax + 1]
mov eax, edi
cmp ecx, 0x1000
jb 0x10085489
mov edi, dword [eax - 4]
add ecx, 0x23
sub eax, edi
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x10085489
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push ecx
push edi
call fcn.10117d22
add esp, 8
mov eax, dword [0x1028fa3c]
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.10082d70
pop edi
pop esi
mov ecx, dword [esp + 0xc4]
xor ecx, esp
call fcn.101179c5
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 [0x1028ffa4]
vxorps xmm0, xmm0, xmm0
vmovss dword [esp + 0x48], xmm0
vunpcklps xmm0, xmm0, xmm0
mov byte [eax + 0x15c], 0
mov ecx, dword [0x1028ffa4]
mov eax, dword [esp + 0x48]
vmovq qword [ecx + 0x150], xmm0
mov dword [ecx + 0x158], eax
mov ecx, dword [esp + 0xcc]
pop edi
pop esi
xor ecx, esp
call fcn.101179c5
mov esp, ebp
pop ebp
ret 0x10