Function at 0x10051410
Capabilities:
Log keystrokes via polling

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
mov eax, 0x30c8
call fcn.100ef340
mov eax, dword [0x10137008]
xor eax, esp
mov dword [esp + 0x30c4], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], eax
push esi
push edi
mov eax, dword [eax]
mov edi, ecx
mov dword [esp + 0x34], edi
mov eax, dword [eax]
mov dword [esp + 0x40], eax
mov eax, dword [0x10141b00]
test al, 1
jne 0x100514d5
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x68]
push 0x16
or eax, 1
mov dword [esp + 0x6c], 0
push str.CBasePlayer__m_iHealth
mov dword [0x10141b00], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
call fcn.10004660
lea eax, [esp + 0x68]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x7c]
mov dword [0x10141af0], eax
cmp edx, 0x10
jb 0x100514d5
mov ecx, dword [esp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100514cb
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100520d4
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov eax, dword [0x10141af0]
mov ecx, dword [esp + 0x40]
mov eax, dword [eax + 4]
mov eax, dword [ecx + eax]
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x38], eax
mov edx, dword [ecx + 4]
mov eax, dword [edx + 0x14]
cmp eax, 3
jae 0x10052205
imul eax, eax, 0x32f0
add eax, 0x354
add eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [ecx]
mov eax, dword [eax]
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x294c]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [0x10141c98]
test al, 1
jne 0x100515b0
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x68]
push 0x1c
or eax, 1
mov dword [esp + 0x6c], 0
push str.CBaseAnimating__m_nHitboxSet
mov dword [0x10141c98], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
call fcn.10004660
lea eax, [esp + 0x68]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x7c]
mov dword [0x10141c7c], eax
cmp edx, 0x10
jb 0x100515b0
mov ecx, dword [esp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100515a6
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100520d4
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov eax, dword [0x10141c7c]
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x2c]
push dword [ebp + 0x10]
mov eax, dword [eax + 4]
push dword [ebp + 0xc]
mov eax, dword [ecx + eax]
lea ecx, [eax + eax*2]
mov eax, dword [edx + 0xb0]
lea eax, [eax + ecx*4]
mov ecx, edi
add eax, edx
mov dword [esp + 0x34], eax
call fcn.1004f360
mov ecx, dword [esp + 0x24]
add ecx, 0xc
push eax
mov dword [esp + 0x34], ecx
call fcn.100577e0
mov eax, dword [edi + 0x58]
test eax, eax
je 0x1005160e
push eax
call dword [sym.imp.USER32.dll_GetKeyState]
cwde
shr eax, 0x10
mov byte [esp + 0x17], 1
test eax, eax
jne 0x10051613
mov byte [esp + 0x17], 0
mov eax, dword [0x10141f04]
mov ecx, dword [0x10141ab8]
mov eax, dword [eax + 0x14c]
mov dword [esp + 0x10], eax
test cl, 1
jne 0x100516bb
mov esi, dword [0x10141ef0]
or ecx, 1
push 0x2d
mov dword [0x10141ab8], ecx
lea ecx, [esp + 0x6c]
push str.CBaseAttributableItem__m_iItemDefinitionIndex
mov dword [esp + 0x70], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
call fcn.10004660
lea eax, [esp + 0x68]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x7c]
mov dword [0x10141ad4], eax
cmp edx, 0x10
jb 0x100516b5
mov ecx, dword [esp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100516ab
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100520d4
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov ecx, dword [0x10141ab8]
mov eax, dword [0x10141ad4]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 4]
movzx eax, word [edx + eax]
mov dword [esp + 0x44], eax
mov eax, dword [0x10141f04]
mov eax, dword [eax + 0x14c]
mov dword [esp + 0x10], eax
test cl, 1
jne 0x1005176b
mov esi, dword [0x10141ef0]
or ecx, 1
push 0x2d
mov dword [0x10141ab8], ecx
lea ecx, [esp + 0x6c]
push str.CBaseAttributableItem__m_iItemDefinitionIndex
mov dword [esp + 0x70], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
call fcn.10004660
lea eax, [esp + 0x68]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x7c]
mov dword [0x10141ad4], eax
cmp edx, 0x10
jb 0x1005176b
mov ecx, dword [esp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051761
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100520d4
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov eax, dword [0x10141ad4]
mov ecx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
mov eax, dword [eax + 4]
movzx eax, word [ecx + eax]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 4]
vmovss xmm0, dword [eax + 0x4c]
vmovss xmm3, dword [eax + 0x50]
vmovss xmm2, dword [eax + 0x54]
vmulss xmm1, xmm0, xmm0
vmulss xmm0, xmm3, xmm3
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm2, xmm2
vaddss xmm0, xmm1, xmm0
vcvtss2sd xmm0, xmm0, xmm0
vxorpd xmm1, xmm1, xmm1
vucomisd xmm1, xmm0
ja 0x100517bd
vsqrtsd xmm0, xmm0, xmm0
jmp 0x100517c2
call sub.api_ms_win_crt_math_l1_1_0.dll__libm_sse2_sqrt_precise
vmovss xmm3, dword [0x10133618]
vcvtsd2ss xmm1, xmm0, xmm0
vmovss xmm0, dword [0x10133724]
vcomiss xmm0, xmm1
vmovss xmm1, dword [0x101337b8]
setae byte [esp + 0x2b]
xor edx, edx
mov dword [esp + 0x10], edx
mov ecx, dword [edi + 0x60]
mov eax, 1
test ecx, ecx
je 0x10051816
mov eax, dword [esi]
cmp dword [eax + 0x3014], ecx
jl 0x10051811
cmp edx, 2
jne 0x10051b34
lea eax, [edx + 2]
jmp 0x10051833
mov eax, 1
shlx eax, eax, edx
test dword [ebp + 0xc], eax
jne 0x10051833
cmp edx, 2
jne 0x10051b34
cmp dword [edi + 0x3c], 0
je 0x10051b34
test dword [ebp + 0x10], eax
je 0x100518d1
vxorps xmm0, xmm0, xmm0
test edx, edx
je 0x1005185e
vcvtsi2ss xmm0, xmm0, dword [edi + 0x10]
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 0xc], xmm0
cmp edx, 6
jae 0x1005220a
jmp 0x1005186d
vcvtsi2ss xmm0, xmm0, dword [edi + 0x14]
vdivss xmm0, xmm0, xmm1
vmovss dword [esp + 0xc], xmm0
lea eax, [edx + edx*2]
mov ecx, dword [edi + eax*4 + 0x68]
mov esi, dword [edi + eax*4 + 0x64]
mov dword [esp + 0x48], ecx
cmp esi, ecx
je 0x100519f5
mov edx, dword [esi]
mov eax, edx
mov ecx, dword [esp + 0x2c]
shl eax, 4
add eax, edx
lea ecx, [ecx + eax*4]
mov eax, dword [esp + 0x2c]
add ecx, dword [eax + 8]
je 0x100518bd
mov eax, dword [ecx]
push ecx
vmovss dword [esp], xmm0
lea eax, [eax + eax*2]
shl eax, 4
add eax, dword [esp + 0x44]
push eax
push edx
push ecx
push dword [esp + 0x34]
mov ecx, edi
call fcn.10050590
vmovss xmm0, dword [esp + 0xc]
add esi, 4
cmp esi, dword [esp + 0x48]
jne 0x10051884
jmp 0x100519e9
cmp edx, 6
jae 0x1005220a
lea eax, [edx + edx*2]
mov ecx, dword [edi + eax*4 + 0x68]
mov esi, dword [edi + eax*4 + 0x64]
mov dword [esp + 0xc], ecx
cmp esi, ecx
je 0x100519f5
mov edi, dword [esp + 0x2c]
mov ecx, dword [esi]
shl ecx, 4
add ecx, dword [esi]
lea ecx, [edi + ecx*4]
add ecx, dword [edi + 8]
je 0x100519d8
vmovss xmm0, dword [ecx + 0x14]
vaddss xmm0, xmm0, dword [ecx + 8]
mov eax, dword [ecx]
vmulss xmm4, xmm0, xmm3
vmovss xmm0, dword [ecx + 0xc]
vaddss xmm0, xmm0, dword [ecx + 0x18]
vmulss xmm2, xmm0, xmm3
vmovss xmm0, dword [ecx + 0x10]
vaddss xmm0, xmm0, dword [ecx + 0x1c]
lea eax, [eax + eax*2]
mov dword [esp + 0x48], 0
vmulss xmm3, xmm0, xmm3
shl eax, 4
add eax, dword [esp + 0x40]
mov byte [esp + 0x2a], 1
vmulss xmm1, xmm2, dword [eax + 4]
vmulss xmm0, xmm4, dword [eax]
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm3, dword [eax + 8]
vaddss xmm0, xmm1, xmm0
vaddss xmm0, xmm0, dword [eax + 0xc]
vmulss xmm1, xmm2, dword [eax + 0x14]
vmovss dword [esp + 0x68], xmm0
vmulss xmm0, xmm4, dword [eax + 0x10]
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm3, dword [eax + 0x18]
vaddss xmm0, xmm1, xmm0
vaddss xmm0, xmm0, dword [eax + 0x1c]
vmulss xmm1, xmm2, dword [eax + 0x24]
vmovss dword [esp + 0x6c], xmm0
vmulss xmm0, xmm4, dword [eax + 0x20]
vaddss xmm1, xmm1, xmm0
vmulss xmm0, xmm3, dword [eax + 0x28]
vaddss xmm0, xmm1, xmm0
vaddss xmm0, xmm0, dword [eax + 0x2c]
lea eax, [esp + 0x48]
push eax
lea eax, [ecx + 4]
mov ecx, dword [esp + 0x34]
push eax
push esi
lea eax, [esp + 0x36]
push eax
lea eax, [esp + 0x78]
push eax
vmovss dword [esp + 0x84], xmm0
call fcn.100502b0
vmovss xmm3, dword [0x10133618]
add esi, 4
cmp esi, dword [esp + 0xc]
jne 0x100518f5
mov edi, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
vmovss xmm1, dword [0x101337b8]
mov ecx, dword [esp + 0x30]
mov eax, dword [ecx + 4]
mov ecx, dword [ecx]
mov dword [esp + 0xc], eax
cmp ecx, eax
je 0x10051b28
nop word [eax + eax]
cmp word [esp + 0x44], 0x1f
je 0x10051b12
cmp byte [esp + 0x17], 0
jne 0x10051b12
mov eax, dword [esp + 0x24]
mov esi, dword [eax + 4]
cmp byte [esi + 4], 0
jne 0x10051b0e
mov edx, dword [edi + 0x5c]
test edx, edx
je 0x10051a4d
mov eax, dword [eax]
cmp dword [eax + 0x3014], edx
jge 0x10051b0e
mov edx, dword [edi + 0x30]
lea eax, [edx + 1]
neg edx
sbb edx, edx
and edx, eax
mov eax, dword [edi + 0x34]
test al, 1
je 0x10051a82
mov eax, dword [0x10141f04]
mov edi, dword [esp + 0x38]
mov eax, dword [eax + 0x150]
cmp dword [eax + 0xf0], edi
mov edi, dword [esp + 0x34]
jge 0x10051b0e
mov eax, dword [edi + 0x34]
test al, 2
je 0x10051a91
cmp byte [esp + 0x2b], 0
jne 0x10051b0e
test al, 4
je 0x10051ab8
mov eax, dword [ecx + 0x28]
sub eax, 7
cmp eax, 5
ja 0x10051ab8
mov dword [ecx + 0x30], 3
mov eax, dword [ecx + 0x30]
cmp eax, edx
cmovl eax, edx
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0xc]
jmp 0x10051b19
mov esi, dword [esi + 0x18]
cmp esi, 1
jg 0x10051ad8
mov dword [ecx + 0x30], 0
mov eax, dword [ecx + 0x30]
cmp eax, edx
cmovl eax, edx
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0xc]
jmp 0x10051b19
mov eax, dword [ecx + 0x28]
test eax, eax
je 0x10051ae9
add eax, 0xfffffff9
cmp eax, 5
ja 0x10051afd
jmp 0x10051af6
cmp word [esp + 0x18], 0x28
je 0x10051afd
cmp esi, 3
jle 0x10051afd
mov dword [ecx + 0x30], 2
mov eax, dword [ecx + 0x30]
cmp eax, edx
cmovl eax, edx
mov dword [ecx + 0x30], eax
mov eax, dword [esp + 0xc]
jmp 0x10051b19
mov eax, dword [esp + 0xc]
mov dword [ecx + 0x30], 3
add ecx, 0x34
cmp ecx, eax
jne 0x10051a10
mov edx, dword [esp + 0x10]
mov esi, dword [esp + 0x24]
vmovss xmm3, dword [0x10133618]
inc edx
mov dword [esp + 0x10], edx
cmp edx, 6
jb 0x100517ed
mov eax, dword [esi]
push 0x3000
vxorps xmm0, xmm0, xmm0
push 0
mov esi, dword [eax]
lea eax, [esp + 0xbc]
push eax
mov dword [esp + 0x18], esi
vmovss dword [esp + 0x8c], xmm0
call sub.VCRUNTIME140.dll_memset
mov dword [esp + 0x30c0], 0
add esp, 0xc
mov dword [esp + 0x30c0], 0
mov eax, dword [esi + 0x3914]
test eax, eax
je 0x10051b9f
vmovss xmm0, dword [eax + 0x80]
vmovss dword [esp + 0x80], xmm0
mov eax, dword [0x10141c88]
test al, 1
jne 0x10051c33
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x68]
push 0x18
or eax, 1
mov dword [esp + 0x6c], 0
push str.CBaseEntity__m_vecOrigin
mov dword [0x10141c88], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
call fcn.10004660
lea eax, [esp + 0x68]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x7c]
mov dword [0x10141c78], eax
cmp edx, 0x10
jb 0x10051c2f
mov ecx, dword [esp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051c25
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100520d4
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov esi, dword [esp + 0xc]
mov eax, dword [0x10141c78]
mov ecx, esi
mov eax, dword [eax + 4]
vmovq xmm0, qword [eax + esi]
vmovq qword [esp + 0x84], xmm0
mov eax, dword [eax + esi + 8]
mov dword [esp + 0x8c], eax
mov eax, dword [esi]
mov eax, dword [eax + 0x28]
call eax
vmovq xmm0, qword [eax]
vmovq qword [esp + 0x90], xmm0
mov eax, dword [eax + 8]
mov dword [esp + 0x98], eax
mov eax, dword [0x10141c50]
test al, 1
jne 0x10051d08
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x68]
push 0x16
or eax, 1
mov dword [esp + 0x6c], 0
push str.CBaseEntity__m_vecMins
mov dword [0x10141c50], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
call fcn.10004660
lea eax, [esp + 0x68]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x7c]
mov dword [0x10141c5c], eax
cmp edx, 0x10
jb 0x10051d04
mov ecx, dword [esp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051cfa
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100520d4
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov esi, dword [esp + 0xc]
mov eax, dword [0x10141c5c]
mov eax, dword [eax + 4]
vmovq xmm0, qword [eax + esi]
vmovq qword [esp + 0x9c], xmm0
mov eax, dword [eax + esi + 8]
mov dword [esp + 0xa4], eax
mov eax, dword [0x10141ca0]
test al, 1
jne 0x10051dbd
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x68]
push 0x16
or eax, 1
mov dword [esp + 0x6c], 0
push str.CBaseEntity__m_vecMaxs
mov dword [0x10141ca0], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
call fcn.10004660
lea eax, [esp + 0x68]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x7c]
mov dword [0x10141c80], eax
cmp edx, 0x10
jb 0x10051db9
mov ecx, dword [esp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051daf
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100520d4
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov esi, dword [esp + 0xc]
mov eax, dword [0x10141c80]
mov eax, dword [eax + 4]
vmovq xmm0, qword [eax + esi]
vmovq qword [esp + 0xa8], xmm0
mov eax, dword [eax + esi + 8]
mov dword [esp + 0xb0], eax
mov eax, dword [esi + 0x26b0]
mov dword [esp + 0x30b8], eax
mov eax, dword [esi + 0x26b4]
mov dword [esp + 0x30bc], eax
mov eax, dword [esi + 0x291c]
lea eax, [eax + eax*2]
shl eax, 4
push eax
push dword [esi + 0x2910]
lea eax, [esp + 0xbc]
push eax
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esi + 0x291c]
add esp, 0xc
mov dword [esp + 0x30b4], eax
mov eax, dword [esi + 0x2690]
mov dword [esp + 0x30c0], eax
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x34], ecx
mov edx, dword [ecx + 0x14]
mov esi, dword [eax]
lea eax, [ecx + 0x58]
vmovq xmm0, qword [eax]
mov dword [esp + 0x38], eax
mov eax, dword [eax + 8]
mov dword [esp + 0x18], eax
mov eax, dword [0x10141c88]
mov dword [esp + 0x44], edx
mov dword [esp + 0x10], esi
vmovq qword [esp + 0x48], xmm0
test al, 1
jne 0x10051f01
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x68]
push 0x18
or eax, 1
mov dword [esp + 0x6c], 0
push str.CBaseEntity__m_vecOrigin
mov dword [0x10141c88], eax
mov dword [esp + 0x80], 0
mov dword [esp + 0x84], 0xf
call fcn.10004660
lea eax, [esp + 0x68]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x7c]
mov dword [0x10141c78], eax
cmp edx, 0x10
jb 0x10051ef7
mov ecx, dword [esp + 0x68]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x10051eed
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x100520d4
push edx
push ecx
call fcn.100eeeaa
add esp, 8
mov esi, dword [esp + 0x10]
vmovq xmm0, qword [esp + 0x48]
mov eax, dword [0x10141c78]
mov ecx, dword [esp + 0x18]
push dword [esp + 0x38]
mov eax, dword [eax + 4]
vmovq qword [eax + esi], xmm0
mov dword [eax + esi + 8], ecx
mov ecx, esi
mov eax, dword [0x10141f04]
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [esi]
mov ecx, esi
mov eax, dword [eax + 0xc]
call eax
mov edx, eax
test edx, edx
je 0x10051f85
mov ecx, dword [esp + 0x34]
vmovss xmm0, dword [esi + 0x9920]
vmovss dword [esp + 0x18], xmm0
vmovss xmm0, dword [esi + 0x9924]
lea eax, [ecx + 0x70]
push eax
lea eax, [ecx + 0x64]
mov ecx, edx
push eax
mov eax, dword [0x10141f04]
vmovss dword [esp + 0x40], xmm0
mov eax, dword [eax + 0x28]
call eax
vmovss xmm0, dword [esp + 0x18]
vmovss dword [esi + 0x9920], xmm0
vmovss xmm0, dword [esp + 0x38]
vmovss dword [esi + 0x9924], xmm0
mov eax, dword [esp + 0x44]
cmp eax, 3
jae 0x1005220f
mov esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x10]
add esi, 0x354
imul eax, eax, 0x32f0
add esi, eax
lea eax, [esp + 0x68]
push eax
mov eax, dword [0x10141f04]
vxorps xmm1, xmm1, xmm1
vmovss xmm0, dword [esi + 0x3004]
vmovss dword [esp + 0x6c], xmm1
vmovss dword [esp + 0x70], xmm0
vmovss dword [esp + 0x74], xmm1
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [esi + 0x3000]
lea eax, [eax + eax*2]
shl eax, 4
push eax
push esi
mov esi, dword [esp + 0x18]
push dword [esi + 0x2910]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [0x10141f04]
add esp, 0xc
mov ecx, dword [esp + 0x30]
mov eax, dword [eax + 0x2c]
mov eax, dword [eax + 0xa]
mov eax, dword [eax]
mov dword [esi + 0x2690], eax
mov eax, dword [ecx + 4]
mov esi, dword [ecx]
mov dword [esp + 0x18], eax
cmp esi, eax
je 0x10052036
nop dword [eax]
push ecx
push esi
push dword [esp + 0x2c]
mov ecx, edi
call fcn.1004f410
add esi, 0x34
cmp esi, dword [esp + 0x18]
jne 0x10052020
mov eax, dword [esp + 0x24]
vmovq xmm0, qword [esp + 0x84]
vmovq qword [esp + 0x38], xmm0
mov eax, dword [eax]
mov edi, dword [eax]
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x18], eax
mov eax, dword [0x10141c88]
test al, 1
jne 0x100520ea
mov esi, dword [0x10141ef0]
lea ecx, [esp + 0x50]
push 0x18
or eax, 1
mov dword [esp + 0x54], 0
push str.CBaseEntity__m_vecOrigin
mov dword [0x10141c88], eax
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0xf
call fcn.10004660
lea eax, [esp + 0x50]
mov ecx, esi
push eax
call fcn.10005570
mov edx, dword [esp + 0x64]
mov dword [0x10141c78], eax
cmp edx, 0x10
jb 0x100520e4
mov ecx, dword [esp + 0x50]
inc edx
mov eax, ecx
cmp edx, 0x1000
jb 0x100520da
mov ecx, dword [ecx - 4]
add edx, 0x23
sub eax, ecx
add eax, 0xfffffffc
cmp eax, 0x1f
jbe 0x100520da
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
push edx
push ecx
call fcn.100eeeaa
add esp, 8
vmovq xmm0, qword [esp + 0x38]
mov eax, dword [0x10141c78]
mov ecx, dword [esp + 0x18]
mov eax, dword [eax + 4]
vmovq qword [eax + edi], xmm0
mov dword [eax + edi + 8], ecx
lea eax, [esp + 0x90]
push eax
mov eax, dword [0x10141f04]
mov ecx, edi
mov eax, dword [eax + 0x18]
call eax
mov eax, dword [edi]
mov ecx, edi
mov eax, dword [eax + 0xc]
call eax
test eax, eax
je 0x10052174
vmovss xmm0, dword [edi + 0x9920]
lea ecx, [esp + 0xa8]
push ecx
lea ecx, [esp + 0xa0]
push ecx
mov ecx, eax
mov eax, dword [0x10141f04]
vmovss dword [esp + 0x20], xmm0
vmovss xmm0, dword [edi + 0x9924]
vmovss dword [esp + 0x40], xmm0
mov eax, dword [eax + 0x28]
call eax
vmovss xmm0, dword [esp + 0x18]
vmovss dword [edi + 0x9920], xmm0
vmovss xmm0, dword [esp + 0x38]
vmovss dword [edi + 0x9924], xmm0
vmovss xmm0, dword [esp + 0x80]
lea eax, [esp + 0x68]
mov ecx, edi
push eax
mov eax, dword [0x10141f04]
vxorps xmm1, xmm1, xmm1
vmovss dword [esp + 0x6c], xmm1
vmovss dword [esp + 0x70], xmm0
vmovss dword [esp + 0x74], xmm1
mov eax, dword [eax + 0x14]
call eax
mov eax, dword [esp + 0x30b8]
mov dword [edi + 0x26b0], eax
mov eax, dword [esp + 0x30bc]
mov dword [edi + 0x26b4], eax
mov eax, dword [esp + 0x30b4]
lea eax, [eax + eax*2]
shl eax, 4
push eax
lea eax, [esp + 0xb8]
push eax
push dword [edi + 0x2910]
call sub.VCRUNTIME140.dll_memcpy
mov eax, dword [esp + 0x30cc]
add esp, 0xc
mov ecx, dword [esp + 0x30cc]
mov dword [edi + 0x2690], eax
pop edi
pop esi
xor ecx, esp
call fcn.100eeb4d
mov esp, ebp
pop ebp
ret 0x10
call fcn.100578f0
call fcn.100578f0
call fcn.100578f0
int3