asm = {}

function asm.get_keywords()
  local keywords0_set = "ja jae jb jbe jc jcxz je jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz jcxz jecxz jrcxz loop loope loopne loopz loopnz call ret add sub adc sbb neg cmp inc dec and or xor not test shl shr sal sar shld shrd rol ror rcl rcr cbw cwd cwde cdq cdqe cqo bsf bsr bt btc btr bts idiv imul div mul bswap nop lea mov movsx movsxd movzx xlatb bound xchg xadd cmpxchg cmpxchg8b cmpxchg16b push pop pushad popad pushf popf pushfd popfd pushfq popfq seta setae setb setbe setc sete setg setge setl setle setna setnae setnb setnbe setnc setne setng setnge setnl setnle setno setnp setns setnz seto setp setpe setpo sets setz salc clc cld stc std cmc lahf sahf cmovo cmovno cmovb cmovc cmovnae cmovae cmovnb cmovnc cmove cmovz cmovne cmovnz cmovbe cmovna cmova cmovnbe cmovs cmovns cmovp cmovpe cmovnp cmovpo cmovl cmovnge cmovge cmovnl cmovle cmovng cmovg cmovnle lock rep repe repz repne repnz cmpsb cmpsw cmpsq movsb movsw movsq scasb scasw scasd scasq stosb stosw stosd stosq cpuid rdtsc rdtscp rdpmc xgetbv llwpcb slwpcb lwpval lwpins crc32 popcnt lzcnt tzcnt movbe pclmulqdq rdrand andn bextr blsi blsmk blsr bzhi mulx pdep pext rorx sarx shlx shrx blcfill blci blcic blcmsk blcs blsfill blsic t1mskc tzmsk f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcom fcomp fcompp fdecstp fdisi fdiv fdivp fdivr fdivrp feni ffree fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisub fisubr fld fld1 fldcw fldenv fldenvw fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnsavew fnstcw fnstenv fnstenvw fnstsw fpatan fprem fptan frndint frstor frstorw fsave fsavew fscale fsqrt fst fstcw fstenv fstenvw fstp fstsw fsub fsubp fsubr fsubrp ftst fwait fxam fxch fxtract fyl2x fyl2xp1 fsetpm fcos fldenvd fnsaved fnstenvd fprem1 frstord fsaved fsin fsincos fstenvd fucom fucomp fucompp fcomi fcomip fucomi fucomip ffreep fcmovb fcmove fcmovbe fcmovu fcmovnb fcmovne fcmovnbe fcmovnu movd movq paddb paddw paddd paddsb paddsw paddusb paddusw psubb psubw psubd psubsb psubsw psubusb psubusw pand pandn por pxor pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pmaddwd pmulhw pmullw psllw pslld psllq psrlw psrld psrlq psraw psrad packuswb packsswb packssdw punpcklbw punpcklwd punpckldq punpckhbw punpckhwd punpckhdq emms pavgb pavgw pextrw pinsrw pmovmskb pmaxsw pmaxub pminsw pminub pmulhuw psadbw pshufw prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq sfence paddsiw psubsiw pmulhrw pmachriw pmulhriw pmagw pdistib paveb pmvzb pmvnzb pmvlzb pmvgezb pfacc pfadd pfsub pfsubr pfmul pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pi2fd pf2id pavgusb pmulhrw femms pfnacc pfpnacc pi2fw pf2iw pswapd pfrsqrtv pfrcpv prefetch prefetchw addss addps subss subps mulss mulps divss divps sqrtss sqrtps rcpss rcpps rsqrtss rsqrtps maxss maxps minss minps cmpss comiss ucomiss cmpps cmpeqss cmpltss cmpless cmpunordss cmpneqss cmpnltss cmpnless cmpordss cmpeqps cmpltps cmpleps cmpunordps cmpneqps cmpnltps cmpnleps cmpordps andnps andps orps xorps cvtsi2ss cvtss2si cvttss2si cvtpi2ps cvtps2pi cvttps2pi movss movlps movhps movlhps movhlps movaps movups movntps movmskps shufps unpckhps unpcklps ldmxcsr stmxcsr addpd addsd subpd subsd mulsd mulpd divsd divpd sqrtsd sqrtpd maxsd maxpd minsd minpd cmpsd comisd ucomisd cmppd cmpeqsd cmpltsd cmplesd cmpunordsd cmpneqsd cmpnltsd cmpnlesd cmpordsd cmpeqpd cmpltpd cmplepd cmpunordpd cmpneqpd cmpnltpd cmpnlepd cmpordpd andnpd andpd orpd xorpd cvtsd2ss cvtpd2ps cvtss2sd cvtps2pd cvtdq2ps cvtps2dq cvttps2dq cvtdq2pd cvtpd2dq cvttpd2dq  cvtsi2sd cvtsd2si cvttsd2si cvtpi2pd cvtpd2pi cvttpd2pi  movsd movlpd movhpd movapd movupd movntpd movmskpd shufpd unpckhpd unpcklpd  movnti movdqa movdqu movntdq maskmovdqu movdq2q movq2dq  paddq psubq pmuludq pslldq psrldq  punpcklqdq punpckhqdq pshufhw pshuflw pshufd  lfence mfence addsubps addsubpd haddps haddpd hsubps hsubpd  movsldup movshdup movddup lddqu  fisttp psignb psignw psignd pabsb pabsw pabsd  palignr pshufb pmulhrsw pmaddubsw  phaddw phaddd phaddsw phsubw phsubd phsubsw extrq insertq  movntsd movntss mpsadbw phminposuw pmuldq pmulld  dpps dppd blendps blendpd blendvps blendvpd pblendvb pblendw  pmaxsb pmaxuw pmaxsd pmaxud pminsb pminuw pminsd pminud roundps roundss roundpd roundsd  insertps pinsrb pinsrd pinsrq extractps pextrb pextrd pextrq  pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq  ptest pcmpeqq  packusdw movntdqa pcmpgtq  pcmpestri pcmpestrm pcmpistri pcmpistrm aesenc aesenclast aesdec aesdeclast aeskeygenassist aesimc xcryptcbc xcryptcfb xcryptctr xcryptecb xcryptofb xsha1 xsha256 montmul xstore vaddss vaddps vaddsd vaddpd vsubss vsubps vsubsd vsubpd  vaddsubps vaddsubpd vhaddps vhaddpd vhsubps vhsubpd  vmulss vmulps vmulsd vmulpd vmaxss vmaxps vmaxsd vmaxpd vminss vminps vminsd vminpd  vandps vandpd vandnps vandnpd vorps vorpd vxorps vxorpd vblendps vblendpd vblendvps vblendvpd  vcmpss vcomiss vucomiss vcmpsd vcomisd vucomisd vcmpps vcmppd vcmpeqss vcmpltss vcmpless vcmpunordss vcmpneqss vcmpnltss vcmpnless vcmpordss  vcmpeq_uqss vcmpngess vcmpngtss vcmpfalsess vcmpneq_oqss vcmpgess vcmpgtss vcmptruess vcmpeq_osss vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss  vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpeqps vcmpltps vcmpleps vcmpunordps vcmpneqps vcmpnltps vcmpnleps vcmpordps  vcmpeq_uqps vcmpngeps vcmpngtps vcmpfalseps vcmpneq_oqps vcmpgeps vcmpgtps vcmptrueps vcmpeq_osps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps  vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpeqsd vcmpltsd vcmplesd vcmpunordsd vcmpneqsd vcmpnltsd vcmpnlesd vcmpordsd  vcmpeq_uqsd vcmpngesd vcmpngtsd vcmpfalsesd vcmpneq_oqsd vcmpgesd vcmpgtsd vcmptruesd vcmpeq_ossd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd  vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpeqpd vcmpltpd vcmplepd vcmpunordpd vcmpneqpd vcmpnltpd vcmpnlepd vcmpordpd  vcmpeq_uqpd vcmpngepd vcmpngtpd vcmpfalsepd vcmpneq_oqpd vcmpgepd vcmpgtpd vcmptruepd vcmpeq_ospd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd  vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcvtsd2ss vcvtpd2ps vcvtss2sd vcvtps2pd  vcvtsi2ss vcvtss2si vcvttss2si vcvtpi2ps vcvtps2pi vcvttps2pi  vcvtdq2ps vcvtps2dq vcvttps2dq vcvtdq2pd vcvtpd2dq vcvttpd2dq  vcvtsi2sd vcvtsd2si vcvttsd2si vcvtpi2pd vcvtpd2pi vcvttpd2pi  vdivss vdivps vdivsd vdivpd vsqrtss vsqrtps vsqrtsd vsqrtpd vdpps vdppd  vmaskmovps vmaskmovpd vmovss vmovsd vmovaps vmovapd vmovups vmovupd vmovntps vmovntpd  vmovhlps vmovlhps vmovlps vmovlpd vmovhps vmovhpd vmovsldup vmovshdup vmovddup  vmovmskps vmovmskpd vroundss vroundps vroundsd vroundpd  vrcpss vrcpps vrsqrtss vrsqrtps vunpcklps vunpckhps vunpcklpd vunpckhpd  vbroadcastss vbroadcastsd vbroadcastf128 vextractps vinsertps vextractf128 vinsertf128  vshufps vshufpd vpermilps vpermilpd vperm2f128 vtestps vtestpd  vpaddb vpaddusb vpaddsb vpaddw vpaddusw vpaddsw vpaddd vpaddq vpsubb vpsubusb vpsubsb vpsubw vpsubusw vpsubsw vpsubd vpsubq  vphaddw vphaddsw vphaddd vphsubw vphsubsw vphsubd vpsllw vpslld vpsllq vpsrlw vpsrld vpsrlq vpsraw vpsrad  vpand vpandn vpor vpxor vpblendwb vpblendw  vpsignb vpsignw vpsignd vpavgb vpavgw  vpabsb vpabsw vpabsd vmovd vmovq vmovdqa vmovdqu vlddqu vmovntdq vmovntdqa vmaskmovdqu  vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq  vpackuswb vpacksswb vpackusdw vpackssdw vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq  vpmaddubsw vpmaddwd vpmullw vpmulhuw vpmulhw vpmulhrsw vpmulld vpmuludq vpmuldq  vpmaxub vpmaxsb vpmaxuw vpmaxsw vpmaxud vpmaxsd vpminub vpminsb vpminuw vpminsw vpminud vpminsd  vpmovmskb vptest vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq  vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpslldq vpsrldq vpalignr  vpshufb vpshuflw vpshufhw vpshufd vpextrb vpextrw vpextrd vpextrq vpinsrb vpinsrw vpinsrd vpinsrq  vpsadbw vmpsadbw vphminposuw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm  vpclmulqdq vaesenc vaesenclast vaesdec vaesdeclast vaeskeygenassist vaesimc vldmxcsr vstmxcsr vzeroall vzeroupper vbroadcasti128 vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq  vpblendd vpermd vpermq vperm2i128  vextracti128 vinserti128 vpmaskmovd vpmaskmovq  vpsllvd vpsllvq vpsravd vpsrlvd vpsrldq vpgatherdd vpgatherqd vgatherdq vgatherqq  vpermps vpermpd vgatherdpd vgatherqpd vgatherdps vgatherqps vfrczss vfrczps vfrczsd vfrczpd  vpermil2ps vperlil2pd vtestps vtestpd  vpcomub vpcomb vpcomuw vpcomw vpcomud vpcomd vpcomuq vpcomq vphaddubw vphaddbw vphaddubd vphaddbd vphaddubq vphaddbq  vphadduwd vphaddwd vphadduwq vphaddwq vphaddudq vphadddq vphsubbw vphsubwd vphsubdq  vpmacsdd vpmacssdd vpmacsdql vpmacssdql vpmacsdqh vpmacssdqh vpmacsww vpmacssww vpmacswd vpmacsswd  vpmadcswd vpmadcsswd vpcmov vpperm  vprotb vprotw vprotd vprotq vpshab vpshaw vpshad vpshaq  vpshlb vpshlw vpshld vpshlq vcvtph2ps vcvtps2ph vfmaddss vfmaddps vfmaddsd vfmaddpd vfmsubss vfmsubps vfmsubsd vfmsubpd  vnfmaddss vnfmaddps vnfmaddsd vnfmaddpd vnfmsubss vnfmsubps vnfmsubsd vnfmsubpd  vfmaddsubps vfmaddsubpd vfmsubaddps vfmsubaddpd vfmadd132ss vfmadd213ss vfmadd231ss vfmadd132ps vfmadd213ps vfmadd231ps  vfmadd132sd vfmadd213sd vfmadd231sd vfmadd132pd vfmadd213pd vfmadd231pd  vfmaddsub132ps vfmaddsub213ps vfmaddsub231ps vfmaddsub132pd vfmaddsub213pd vfmaddsub231pd  vfmsubadd132ps vfmsubadd213ps vfmsubadd231ps vfmsubadd132pd vfmsubadd213pd vfmsubadd231pd  vfmsub132ss vfmsub213ss vfmsub231ss vfmsub132ps vfmsub213ps vfmsub231ps  vfmsub132sd vfmsub213sd vfmsub231sd vfmsub132pd vfmsub213pd vfmsub231pd  vfnmadd132ss vfnmadd213ss vfnmadd231ss vfnmadd132ps vfnmadd213ps vfnmadd231ps  vfnmadd132sd vfnmadd213sd vfnmadd231sd vfnmadd132pd vfnmadd213pd vfnmadd231pd  vfnmsub132ss vfnmsub213ss vfnmsub231ss vfnmsub132ps vfnmsub213ps vfnmsub231ps  vfnmsub132sd vfnmsub213sd vfnmsub231sd vfnmsub132pd vfnmsub213pd vfnmsub231pd al ah bl bh cl ch dl dh  ax bx cx dx si di bp eax ebx ecx edx esi edi ebx esp  st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7  xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7  fs sil dil bpl r8b r9b r10b r11b r12b r13b r14b r15b  r8w r9w r10w r11w r12w r13w r14w r15w rax rcx rdx rbx rsp rbp rsi rdi  r8 r9 r10 r11 r12 r13 r14 r15 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15  ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 gs db dw dd dq dt do dy  resb resw resd resq rest reso resy incbin equ times safeseh __utf16__ __utf32__ %+  default cpu float start imagebase osabi ..start ..imagebase ..gotpc ..gotoff ..gottpoff ..got ..plt ..sym ..tlsie  section segment __sect__ group absolute .bss .comment .data .lbss .ldata .lrodata .rdata .rodata .tbss .tdata .text  alloc bss code exec data noalloc nobits noexec nowrite progbits rdata tls write private public common stack overlay class  extern global common import export %define %idefine %xdefine %ixdefine %assign %undef %? %??  %defstr %idefstr %deftok %ideftok %strcat %strlen %substr  %macro %imacro %rmacro %exitmacro %endmacro %unmacro %if %ifn %elif %elifn %else %endif  %ifdef %ifndef %elifdef %elifndef %ifmacro %ifnmacro %elifmacro %elifnmacro  %ifctx %ifnctx %elifctx %elifnctx %ifidn %ifnidn %elifidn %elifnidn  %ifidni %ifnidni %elifidni %elifnidni %ifid %ifnid %elifid %elifnid  %ifnum %ifnnum %elifnum %elifnnum %ifstr %ifnstr %elifstr %elifnstr  %iftoken %ifntoken %eliftoken %elifntoken %ifempty %elifempty %ifnempty %elifnempty  %ifenv %ifnenv %elifenv %elifnenv %rep %exitrep %endrep  %while %exitwhile %endwhile %include %pathsearch %depend %use  %push %pop %repl %arg %local %stacksize flat flat64 large small %error %warning %fatal  %00 .nolist %rotate %line %! %final %clear struc endstruc istruc at iend  align alignb sectalign bits use16 use32 use64  __nasm_major__ __nasm_minor__ __nasm_subminor__ ___nasm_patchlevel__ __nasm_version_id__ __nasm_ver__  __file__ __line__ __pass__ __bits__ __output_format__ __date__ __time__ __date_num__ __time_num__ __posix_time__  __utc_date__ __utc_time__ __utc_date_num__ __utc_time_num__ __float_daz__ __float_round__ __float__  __use_altreg__ altreg __use_smartalign__ smartalign __alignmode__  __use_fp__ __infinity__ __nan__ __qnan__ __snan__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ a16 a32 a64 o16 o32 o64 strict  byte word dword qword tword oword yword nosplit %0 %1 %2 %3 %4 %5 %6 %7 %8 %9  abs rel $ $$  seg wrt"
  return keywords0_set
end

function asm.get_autocomplete()
  local autocomplete_set = "ja jae jb jbe jc jcxz je jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz jcxz jecxz jrcxz loop loope loopne loopz loopnz call ret add sub adc sbb neg cmp inc dec and or xor not test shl shr sal sar shld shrd rol ror rcl rcr cbw cwd cwde cdq cdqe cqo bsf bsr bt btc btr bts idiv imul div mul bswap nop lea mov movsx movsxd movzx xlatb bound xchg xadd cmpxchg cmpxchg8b cmpxchg16b push pop pushad popad pushf popf pushfd popfd pushfq popfq seta setae setb setbe setc sete setg setge setl setle setna setnae setnb setnbe setnc setne setng setnge setnl setnle setno setnp setns setnz seto setp setpe setpo sets setz salc clc cld stc std cmc lahf sahf cmovo cmovno cmovb cmovc cmovnae cmovae cmovnb cmovnc cmove cmovz cmovne cmovnz cmovbe cmovna cmova cmovnbe cmovs cmovns cmovp cmovpe cmovnp cmovpo cmovl cmovnge cmovge cmovnl cmovle cmovng cmovg cmovnle lock rep repe repz repne repnz cmpsb cmpsw cmpsq movsb movsw movsq scasb scasw scasd scasq stosb stosw stosd stosq cpuid rdtsc rdtscp rdpmc xgetbv llwpcb slwpcb lwpval lwpins crc32 popcnt lzcnt tzcnt movbe pclmulqdq rdrand andn bextr blsi blsmk blsr bzhi mulx pdep pext rorx sarx shlx shrx blcfill blci blcic blcmsk blcs blsfill blsic t1mskc tzmsk f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcom fcomp fcompp fdecstp fdisi fdiv fdivp fdivr fdivrp feni ffree fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisub fisubr fld fld1 fldcw fldenv fldenvw fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnsavew fnstcw fnstenv fnstenvw fnstsw fpatan fprem fptan frndint frstor frstorw fsave fsavew fscale fsqrt fst fstcw fstenv fstenvw fstp fstsw fsub fsubp fsubr fsubrp ftst fwait fxam fxch fxtract fyl2x fyl2xp1 fsetpm fcos fldenvd fnsaved fnstenvd fprem1 frstord fsaved fsin fsincos fstenvd fucom fucomp fucompp fcomi fcomip fucomi fucomip ffreep fcmovb fcmove fcmovbe fcmovu fcmovnb fcmovne fcmovnbe fcmovnu movd movq paddb paddw paddd paddsb paddsw paddusb paddusw psubb psubw psubd psubsb psubsw psubusb psubusw pand pandn por pxor pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pmaddwd pmulhw pmullw psllw pslld psllq psrlw psrld psrlq psraw psrad packuswb packsswb packssdw punpcklbw punpcklwd punpckldq punpckhbw punpckhwd punpckhdq emms pavgb pavgw pextrw pinsrw pmovmskb pmaxsw pmaxub pminsw pminub pmulhuw psadbw pshufw prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq sfence paddsiw psubsiw pmulhrw pmachriw pmulhriw pmagw pdistib paveb pmvzb pmvnzb pmvlzb pmvgezb pfacc pfadd pfsub pfsubr pfmul pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pi2fd pf2id pavgusb pmulhrw femms pfnacc pfpnacc pi2fw pf2iw pswapd pfrsqrtv pfrcpv prefetch prefetchw addss addps subss subps mulss mulps divss divps sqrtss sqrtps rcpss rcpps rsqrtss rsqrtps maxss maxps minss minps cmpss comiss ucomiss cmpps cmpeqss cmpltss cmpless cmpunordss cmpneqss cmpnltss cmpnless cmpordss cmpeqps cmpltps cmpleps cmpunordps cmpneqps cmpnltps cmpnleps cmpordps andnps andps orps xorps cvtsi2ss cvtss2si cvttss2si cvtpi2ps cvtps2pi cvttps2pi movss movlps movhps movlhps movhlps movaps movups movntps movmskps shufps unpckhps unpcklps ldmxcsr stmxcsr addpd addsd subpd subsd mulsd mulpd divsd divpd sqrtsd sqrtpd maxsd maxpd minsd minpd cmpsd comisd ucomisd cmppd cmpeqsd cmpltsd cmplesd cmpunordsd cmpneqsd cmpnltsd cmpnlesd cmpordsd cmpeqpd cmpltpd cmplepd cmpunordpd cmpneqpd cmpnltpd cmpnlepd cmpordpd andnpd andpd orpd xorpd cvtsd2ss cvtpd2ps cvtss2sd cvtps2pd cvtdq2ps cvtps2dq cvttps2dq cvtdq2pd cvtpd2dq cvttpd2dq  cvtsi2sd cvtsd2si cvttsd2si cvtpi2pd cvtpd2pi cvttpd2pi  movsd movlpd movhpd movapd movupd movntpd movmskpd shufpd unpckhpd unpcklpd  movnti movdqa movdqu movntdq maskmovdqu movdq2q movq2dq  paddq psubq pmuludq pslldq psrldq  punpcklqdq punpckhqdq pshufhw pshuflw pshufd  lfence mfence addsubps addsubpd haddps haddpd hsubps hsubpd  movsldup movshdup movddup lddqu  fisttp psignb psignw psignd pabsb pabsw pabsd  palignr pshufb pmulhrsw pmaddubsw  phaddw phaddd phaddsw phsubw phsubd phsubsw extrq insertq  movntsd movntss mpsadbw phminposuw pmuldq pmulld  dpps dppd blendps blendpd blendvps blendvpd pblendvb pblendw  pmaxsb pmaxuw pmaxsd pmaxud pminsb pminuw pminsd pminud roundps roundss roundpd roundsd  insertps pinsrb pinsrd pinsrq extractps pextrb pextrd pextrq  pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq  ptest pcmpeqq  packusdw movntdqa pcmpgtq  pcmpestri pcmpestrm pcmpistri pcmpistrm aesenc aesenclast aesdec aesdeclast aeskeygenassist aesimc xcryptcbc xcryptcfb xcryptctr xcryptecb xcryptofb xsha1 xsha256 montmul xstore vaddss vaddps vaddsd vaddpd vsubss vsubps vsubsd vsubpd  vaddsubps vaddsubpd vhaddps vhaddpd vhsubps vhsubpd  vmulss vmulps vmulsd vmulpd vmaxss vmaxps vmaxsd vmaxpd vminss vminps vminsd vminpd  vandps vandpd vandnps vandnpd vorps vorpd vxorps vxorpd vblendps vblendpd vblendvps vblendvpd  vcmpss vcomiss vucomiss vcmpsd vcomisd vucomisd vcmpps vcmppd vcmpeqss vcmpltss vcmpless vcmpunordss vcmpneqss vcmpnltss vcmpnless vcmpordss  vcmpeq_uqss vcmpngess vcmpngtss vcmpfalsess vcmpneq_oqss vcmpgess vcmpgtss vcmptruess vcmpeq_osss vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss  vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpeqps vcmpltps vcmpleps vcmpunordps vcmpneqps vcmpnltps vcmpnleps vcmpordps  vcmpeq_uqps vcmpngeps vcmpngtps vcmpfalseps vcmpneq_oqps vcmpgeps vcmpgtps vcmptrueps vcmpeq_osps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps  vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpeqsd vcmpltsd vcmplesd vcmpunordsd vcmpneqsd vcmpnltsd vcmpnlesd vcmpordsd  vcmpeq_uqsd vcmpngesd vcmpngtsd vcmpfalsesd vcmpneq_oqsd vcmpgesd vcmpgtsd vcmptruesd vcmpeq_ossd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd  vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpeqpd vcmpltpd vcmplepd vcmpunordpd vcmpneqpd vcmpnltpd vcmpnlepd vcmpordpd  vcmpeq_uqpd vcmpngepd vcmpngtpd vcmpfalsepd vcmpneq_oqpd vcmpgepd vcmpgtpd vcmptruepd vcmpeq_ospd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd  vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcvtsd2ss vcvtpd2ps vcvtss2sd vcvtps2pd  vcvtsi2ss vcvtss2si vcvttss2si vcvtpi2ps vcvtps2pi vcvttps2pi  vcvtdq2ps vcvtps2dq vcvttps2dq vcvtdq2pd vcvtpd2dq vcvttpd2dq  vcvtsi2sd vcvtsd2si vcvttsd2si vcvtpi2pd vcvtpd2pi vcvttpd2pi  vdivss vdivps vdivsd vdivpd vsqrtss vsqrtps vsqrtsd vsqrtpd vdpps vdppd  vmaskmovps vmaskmovpd vmovss vmovsd vmovaps vmovapd vmovups vmovupd vmovntps vmovntpd  vmovhlps vmovlhps vmovlps vmovlpd vmovhps vmovhpd vmovsldup vmovshdup vmovddup  vmovmskps vmovmskpd vroundss vroundps vroundsd vroundpd  vrcpss vrcpps vrsqrtss vrsqrtps vunpcklps vunpckhps vunpcklpd vunpckhpd  vbroadcastss vbroadcastsd vbroadcastf128 vextractps vinsertps vextractf128 vinsertf128  vshufps vshufpd vpermilps vpermilpd vperm2f128 vtestps vtestpd  vpaddb vpaddusb vpaddsb vpaddw vpaddusw vpaddsw vpaddd vpaddq vpsubb vpsubusb vpsubsb vpsubw vpsubusw vpsubsw vpsubd vpsubq  vphaddw vphaddsw vphaddd vphsubw vphsubsw vphsubd vpsllw vpslld vpsllq vpsrlw vpsrld vpsrlq vpsraw vpsrad  vpand vpandn vpor vpxor vpblendwb vpblendw  vpsignb vpsignw vpsignd vpavgb vpavgw  vpabsb vpabsw vpabsd vmovd vmovq vmovdqa vmovdqu vlddqu vmovntdq vmovntdqa vmaskmovdqu  vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq  vpackuswb vpacksswb vpackusdw vpackssdw vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq  vpmaddubsw vpmaddwd vpmullw vpmulhuw vpmulhw vpmulhrsw vpmulld vpmuludq vpmuldq  vpmaxub vpmaxsb vpmaxuw vpmaxsw vpmaxud vpmaxsd vpminub vpminsb vpminuw vpminsw vpminud vpminsd  vpmovmskb vptest vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq  vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpslldq vpsrldq vpalignr  vpshufb vpshuflw vpshufhw vpshufd vpextrb vpextrw vpextrd vpextrq vpinsrb vpinsrw vpinsrd vpinsrq  vpsadbw vmpsadbw vphminposuw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm  vpclmulqdq vaesenc vaesenclast vaesdec vaesdeclast vaeskeygenassist vaesimc vldmxcsr vstmxcsr vzeroall vzeroupper vbroadcasti128 vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq  vpblendd vpermd vpermq vperm2i128  vextracti128 vinserti128 vpmaskmovd vpmaskmovq  vpsllvd vpsllvq vpsravd vpsrlvd vpsrldq vpgatherdd vpgatherqd vgatherdq vgatherqq  vpermps vpermpd vgatherdpd vgatherqpd vgatherdps vgatherqps vfrczss vfrczps vfrczsd vfrczpd  vpermil2ps vperlil2pd vtestps vtestpd  vpcomub vpcomb vpcomuw vpcomw vpcomud vpcomd vpcomuq vpcomq vphaddubw vphaddbw vphaddubd vphaddbd vphaddubq vphaddbq  vphadduwd vphaddwd vphadduwq vphaddwq vphaddudq vphadddq vphsubbw vphsubwd vphsubdq  vpmacsdd vpmacssdd vpmacsdql vpmacssdql vpmacsdqh vpmacssdqh vpmacsww vpmacssww vpmacswd vpmacsswd  vpmadcswd vpmadcsswd vpcmov vpperm  vprotb vprotw vprotd vprotq vpshab vpshaw vpshad vpshaq  vpshlb vpshlw vpshld vpshlq vcvtph2ps vcvtps2ph vfmaddss vfmaddps vfmaddsd vfmaddpd vfmsubss vfmsubps vfmsubsd vfmsubpd  vnfmaddss vnfmaddps vnfmaddsd vnfmaddpd vnfmsubss vnfmsubps vnfmsubsd vnfmsubpd  vfmaddsubps vfmaddsubpd vfmsubaddps vfmsubaddpd vfmadd132ss vfmadd213ss vfmadd231ss vfmadd132ps vfmadd213ps vfmadd231ps  vfmadd132sd vfmadd213sd vfmadd231sd vfmadd132pd vfmadd213pd vfmadd231pd  vfmaddsub132ps vfmaddsub213ps vfmaddsub231ps vfmaddsub132pd vfmaddsub213pd vfmaddsub231pd  vfmsubadd132ps vfmsubadd213ps vfmsubadd231ps vfmsubadd132pd vfmsubadd213pd vfmsubadd231pd  vfmsub132ss vfmsub213ss vfmsub231ss vfmsub132ps vfmsub213ps vfmsub231ps  vfmsub132sd vfmsub213sd vfmsub231sd vfmsub132pd vfmsub213pd vfmsub231pd  vfnmadd132ss vfnmadd213ss vfnmadd231ss vfnmadd132ps vfnmadd213ps vfnmadd231ps  vfnmadd132sd vfnmadd213sd vfnmadd231sd vfnmadd132pd vfnmadd213pd vfnmadd231pd  vfnmsub132ss vfnmsub213ss vfnmsub231ss vfnmsub132ps vfnmsub213ps vfnmsub231ps  vfnmsub132sd vfnmsub213sd vfnmsub231sd vfnmsub132pd vfnmsub213pd vfnmsub231pd al ah bl bh cl ch dl dh  ax bx cx dx si di bp eax ebx ecx edx esi edi ebx esp  st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7  xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7  fs sil dil bpl r8b r9b r10b r11b r12b r13b r14b r15b r8w r9w r10w r11w r12w r13w r14w r15w rax rcx rdx rbx rsp rbp rsi rdi  r8 r9 r10 r11 r12 r13 r14 r15 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15  ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 gs db dw dd dq dt do dy  resb resw resd resq rest reso resy incbin equ times safeseh __utf16__ __utf32__ %+  default cpu float start imagebase osabi ..start ..imagebase ..gotpc ..gotoff ..gottpoff ..got ..plt ..sym ..tlsie  section segment __sect__ group absolute .bss .comment .data .lbss .ldata .lrodata .rdata .rodata .tbss .tdata .text  alloc bss code exec data noalloc nobits noexec nowrite progbits rdata tls write private public common stack overlay class  extern global common import export %define %idefine %xdefine %ixdefine %assign %undef %? %??  %defstr %idefstr %deftok %ideftok %strcat %strlen %substr  %macro %imacro %rmacro %exitmacro %endmacro %unmacro %if %ifn %elif %elifn %else %endif  %ifdef %ifndef %elifdef %elifndef %ifmacro %ifnmacro %elifmacro %elifnmacro  %ifctx %ifnctx %elifctx %elifnctx %ifidn %ifnidn %elifidn %elifnidn  %ifidni %ifnidni %elifidni %elifnidni %ifid %ifnid %elifid %elifnid  %ifnum %ifnnum %elifnum %elifnnum %ifstr %ifnstr %elifstr %elifnstr  %iftoken %ifntoken %eliftoken %elifntoken %ifempty %elifempty %ifnempty %elifnempty %ifenv %ifnenv %elifenv %elifnenv %rep %exitrep %endrep  %while %exitwhile %endwhile %include %pathsearch %depend %use  %push %pop %repl %arg %local %stacksize flat flat64 large small %error %warning %fatal  %00 .nolist %rotate %line %! %final %clear struc endstruc istruc at iend  align alignb sectalign bits use16 use32 use64  __nasm_major__ __nasm_minor__ __nasm_subminor__ ___nasm_patchlevel__ __nasm_version_id__ __nasm_ver__  __file__ __line__ __pass__ __bits__ __output_format__ __date__ __time__ __date_num__ __time_num__ __posix_time__ __utc_date__ __utc_time__ __utc_date_num__ __utc_time_num__ __float_daz__ __float_round__ __float__  __use_altreg__ altreg __use_smartalign__ smartalign __alignmode__  __use_fp__ __infinity__ __nan__ __qnan__ __snan__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ a16 a32 a64 o16 o32 o64 strict byte word dword qword tword oword yword nosplit %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 abs rel $ $$ seg wrt"
  return autocomplete_set
end

function asm.get_reqular()
  local symbol_reqular_exp = "[ \\t]*([_a-zA-Z]+[_a-zA-Z0-9\\-]*)[ \\t]*PROC"
  return symbol_reqular_exp
end

function asm.create_bakup(path)
  local asm_code = {
    "user_asm = {}\n",
    "function user_asm.get_keywords()\n",
    "  local keywords0_set = \"ja jae jb jbe jc jcxz je jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz jcxz jecxz jrcxz loop loope loopne loopz loopnz call ret add sub adc sbb neg cmp inc dec and or xor not test shl shr sal sar shld shrd rol ror rcl rcr cbw cwd cwde cdq cdqe cqo bsf bsr bt btc btr bts idiv imul div mul bswap nop lea mov movsx movsxd movzx xlatb bound xchg xadd cmpxchg cmpxchg8b cmpxchg16b push pop pushad popad pushf popf pushfd popfd pushfq popfq seta setae setb setbe setc sete setg setge setl setle setna setnae setnb setnbe setnc setne setng setnge setnl setnle setno setnp setns setnz seto setp setpe setpo sets setz salc clc cld stc std cmc lahf sahf cmovo cmovno cmovb cmovc cmovnae cmovae cmovnb cmovnc cmove cmovz cmovne cmovnz cmovbe cmovna cmova cmovnbe cmovs cmovns cmovp cmovpe cmovnp cmovpo cmovl cmovnge cmovge cmovnl cmovle cmovng cmovg cmovnle lock rep repe repz repne repnz cmpsb cmpsw cmpsq movsb movsw movsq scasb scasw scasd scasq stosb stosw stosd stosq cpuid rdtsc rdtscp rdpmc xgetbv llwpcb slwpcb lwpval lwpins crc32 popcnt lzcnt tzcnt movbe pclmulqdq rdrand andn bextr blsi blsmk blsr bzhi mulx pdep pext rorx sarx shlx shrx blcfill blci blcic blcmsk blcs blsfill blsic t1mskc tzmsk f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcom fcomp fcompp fdecstp fdisi fdiv fdivp fdivr fdivrp feni ffree fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisub fisubr fld fld1 fldcw fldenv fldenvw fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnsavew fnstcw fnstenv fnstenvw fnstsw fpatan fprem fptan frndint frstor frstorw fsave fsavew fscale fsqrt fst fstcw fstenv fstenvw fstp fstsw fsub fsubp fsubr fsubrp ftst fwait fxam fxch fxtract fyl2x fyl2xp1 fsetpm fcos fldenvd fnsaved fnstenvd fprem1 frstord fsaved fsin fsincos fstenvd fucom fucomp fucompp fcomi fcomip fucomi fucomip ffreep fcmovb fcmove fcmovbe fcmovu fcmovnb fcmovne fcmovnbe fcmovnu movd movq paddb paddw paddd paddsb paddsw paddusb paddusw psubb psubw psubd psubsb psubsw psubusb psubusw pand pandn por pxor pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pmaddwd pmulhw pmullw psllw pslld psllq psrlw psrld psrlq psraw psrad packuswb packsswb packssdw punpcklbw punpcklwd punpckldq punpckhbw punpckhwd punpckhdq emms pavgb pavgw pextrw pinsrw pmovmskb pmaxsw pmaxub pminsw pminub pmulhuw psadbw pshufw prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq sfence paddsiw psubsiw pmulhrw pmachriw pmulhriw pmagw pdistib paveb pmvzb pmvnzb pmvlzb pmvgezb pfacc pfadd pfsub pfsubr pfmul pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pi2fd pf2id pavgusb pmulhrw femms pfnacc pfpnacc pi2fw pf2iw pswapd pfrsqrtv pfrcpv prefetch prefetchw addss addps subss subps mulss mulps divss divps sqrtss sqrtps rcpss rcpps rsqrtss rsqrtps maxss maxps minss minps cmpss comiss ucomiss cmpps cmpeqss cmpltss cmpless cmpunordss cmpneqss cmpnltss cmpnless cmpordss cmpeqps cmpltps cmpleps cmpunordps cmpneqps cmpnltps cmpnleps cmpordps andnps andps orps xorps cvtsi2ss cvtss2si cvttss2si cvtpi2ps cvtps2pi cvttps2pi movss movlps movhps movlhps movhlps movaps movups movntps movmskps shufps unpckhps unpcklps ldmxcsr stmxcsr addpd addsd subpd subsd mulsd mulpd divsd divpd sqrtsd sqrtpd maxsd maxpd minsd minpd cmpsd comisd ucomisd cmppd cmpeqsd cmpltsd cmplesd cmpunordsd cmpneqsd cmpnltsd cmpnlesd cmpordsd cmpeqpd cmpltpd cmplepd cmpunordpd cmpneqpd cmpnltpd cmpnlepd cmpordpd andnpd andpd orpd xorpd cvtsd2ss cvtpd2ps cvtss2sd cvtps2pd cvtdq2ps cvtps2dq cvttps2dq cvtdq2pd cvtpd2dq cvttpd2dq  cvtsi2sd cvtsd2si cvttsd2si cvtpi2pd cvtpd2pi cvttpd2pi  movsd movlpd movhpd movapd movupd movntpd movmskpd shufpd unpckhpd unpcklpd  movnti movdqa movdqu movntdq maskmovdqu movdq2q movq2dq  paddq psubq pmuludq pslldq psrldq  punpcklqdq punpckhqdq pshufhw pshuflw pshufd  lfence mfence addsubps addsubpd haddps haddpd hsubps hsubpd  movsldup movshdup movddup lddqu  fisttp psignb psignw psignd pabsb pabsw pabsd  palignr pshufb pmulhrsw pmaddubsw  phaddw phaddd phaddsw phsubw phsubd phsubsw extrq insertq  movntsd movntss mpsadbw phminposuw pmuldq pmulld  dpps dppd blendps blendpd blendvps blendvpd pblendvb pblendw  pmaxsb pmaxuw pmaxsd pmaxud pminsb pminuw pminsd pminud roundps roundss roundpd roundsd  insertps pinsrb pinsrd pinsrq extractps pextrb pextrd pextrq  pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq  ptest pcmpeqq  packusdw movntdqa pcmpgtq  pcmpestri pcmpestrm pcmpistri pcmpistrm aesenc aesenclast aesdec aesdeclast aeskeygenassist aesimc xcryptcbc xcryptcfb xcryptctr xcryptecb xcryptofb xsha1 xsha256 montmul xstore vaddss vaddps vaddsd vaddpd vsubss vsubps vsubsd vsubpd  vaddsubps vaddsubpd vhaddps vhaddpd vhsubps vhsubpd  vmulss vmulps vmulsd vmulpd vmaxss vmaxps vmaxsd vmaxpd vminss vminps vminsd vminpd  vandps vandpd vandnps vandnpd vorps vorpd vxorps vxorpd vblendps vblendpd vblendvps vblendvpd  vcmpss vcomiss vucomiss vcmpsd vcomisd vucomisd vcmpps vcmppd vcmpeqss vcmpltss vcmpless vcmpunordss vcmpneqss vcmpnltss vcmpnless vcmpordss  vcmpeq_uqss vcmpngess vcmpngtss vcmpfalsess vcmpneq_oqss vcmpgess vcmpgtss vcmptruess vcmpeq_osss vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss  vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpeqps vcmpltps vcmpleps vcmpunordps vcmpneqps vcmpnltps vcmpnleps vcmpordps  vcmpeq_uqps vcmpngeps vcmpngtps vcmpfalseps vcmpneq_oqps vcmpgeps vcmpgtps vcmptrueps vcmpeq_osps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps  vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpeqsd vcmpltsd vcmplesd vcmpunordsd vcmpneqsd vcmpnltsd vcmpnlesd vcmpordsd  vcmpeq_uqsd vcmpngesd vcmpngtsd vcmpfalsesd vcmpneq_oqsd vcmpgesd vcmpgtsd vcmptruesd vcmpeq_ossd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd  vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpeqpd vcmpltpd vcmplepd vcmpunordpd vcmpneqpd vcmpnltpd vcmpnlepd vcmpordpd  vcmpeq_uqpd vcmpngepd vcmpngtpd vcmpfalsepd vcmpneq_oqpd vcmpgepd vcmpgtpd vcmptruepd vcmpeq_ospd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd  vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcvtsd2ss vcvtpd2ps vcvtss2sd vcvtps2pd  vcvtsi2ss vcvtss2si vcvttss2si vcvtpi2ps vcvtps2pi vcvttps2pi  vcvtdq2ps vcvtps2dq vcvttps2dq vcvtdq2pd vcvtpd2dq vcvttpd2dq  vcvtsi2sd vcvtsd2si vcvttsd2si vcvtpi2pd vcvtpd2pi vcvttpd2pi  vdivss vdivps vdivsd vdivpd vsqrtss vsqrtps vsqrtsd vsqrtpd vdpps vdppd  vmaskmovps vmaskmovpd vmovss vmovsd vmovaps vmovapd vmovups vmovupd vmovntps vmovntpd  vmovhlps vmovlhps vmovlps vmovlpd vmovhps vmovhpd vmovsldup vmovshdup vmovddup  vmovmskps vmovmskpd vroundss vroundps vroundsd vroundpd  vrcpss vrcpps vrsqrtss vrsqrtps vunpcklps vunpckhps vunpcklpd vunpckhpd  vbroadcastss vbroadcastsd vbroadcastf128 vextractps vinsertps vextractf128 vinsertf128  vshufps vshufpd vpermilps vpermilpd vperm2f128 vtestps vtestpd  vpaddb vpaddusb vpaddsb vpaddw vpaddusw vpaddsw vpaddd vpaddq vpsubb vpsubusb vpsubsb vpsubw vpsubusw vpsubsw vpsubd vpsubq  vphaddw vphaddsw vphaddd vphsubw vphsubsw vphsubd vpsllw vpslld vpsllq vpsrlw vpsrld vpsrlq vpsraw vpsrad  vpand vpandn vpor vpxor vpblendwb vpblendw  vpsignb vpsignw vpsignd vpavgb vpavgw  vpabsb vpabsw vpabsd vmovd vmovq vmovdqa vmovdqu vlddqu vmovntdq vmovntdqa vmaskmovdqu  vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq  vpackuswb vpacksswb vpackusdw vpackssdw vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq  vpmaddubsw vpmaddwd vpmullw vpmulhuw vpmulhw vpmulhrsw vpmulld vpmuludq vpmuldq  vpmaxub vpmaxsb vpmaxuw vpmaxsw vpmaxud vpmaxsd vpminub vpminsb vpminuw vpminsw vpminud vpminsd  vpmovmskb vptest vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq  vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpslldq vpsrldq vpalignr  vpshufb vpshuflw vpshufhw vpshufd vpextrb vpextrw vpextrd vpextrq vpinsrb vpinsrw vpinsrd vpinsrq  vpsadbw vmpsadbw vphminposuw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm  vpclmulqdq vaesenc vaesenclast vaesdec vaesdeclast vaeskeygenassist vaesimc vldmxcsr vstmxcsr vzeroall vzeroupper vbroadcasti128 vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq  vpblendd vpermd vpermq vperm2i128  vextracti128 vinserti128 vpmaskmovd vpmaskmovq  vpsllvd vpsllvq vpsravd vpsrlvd vpsrldq vpgatherdd vpgatherqd vgatherdq vgatherqq  vpermps vpermpd vgatherdpd vgatherqpd vgatherdps vgatherqps vfrczss vfrczps vfrczsd vfrczpd  vpermil2ps vperlil2pd vtestps vtestpd  vpcomub vpcomb vpcomuw vpcomw vpcomud vpcomd vpcomuq vpcomq vphaddubw vphaddbw vphaddubd vphaddbd vphaddubq vphaddbq  vphadduwd vphaddwd vphadduwq vphaddwq vphaddudq vphadddq vphsubbw vphsubwd vphsubdq  vpmacsdd vpmacssdd vpmacsdql vpmacssdql vpmacsdqh vpmacssdqh vpmacsww vpmacssww vpmacswd vpmacsswd  vpmadcswd vpmadcsswd vpcmov vpperm  vprotb vprotw vprotd vprotq vpshab vpshaw vpshad vpshaq  vpshlb vpshlw vpshld vpshlq vcvtph2ps vcvtps2ph vfmaddss vfmaddps vfmaddsd vfmaddpd vfmsubss vfmsubps vfmsubsd vfmsubpd  vnfmaddss vnfmaddps vnfmaddsd vnfmaddpd vnfmsubss vnfmsubps vnfmsubsd vnfmsubpd  vfmaddsubps vfmaddsubpd vfmsubaddps vfmsubaddpd vfmadd132ss vfmadd213ss vfmadd231ss vfmadd132ps vfmadd213ps vfmadd231ps  vfmadd132sd vfmadd213sd vfmadd231sd vfmadd132pd vfmadd213pd vfmadd231pd  vfmaddsub132ps vfmaddsub213ps vfmaddsub231ps vfmaddsub132pd vfmaddsub213pd vfmaddsub231pd  vfmsubadd132ps vfmsubadd213ps vfmsubadd231ps vfmsubadd132pd vfmsubadd213pd vfmsubadd231pd  vfmsub132ss vfmsub213ss vfmsub231ss vfmsub132ps vfmsub213ps vfmsub231ps  vfmsub132sd vfmsub213sd vfmsub231sd vfmsub132pd vfmsub213pd vfmsub231pd  vfnmadd132ss vfnmadd213ss vfnmadd231ss vfnmadd132ps vfnmadd213ps vfnmadd231ps  vfnmadd132sd vfnmadd213sd vfnmadd231sd vfnmadd132pd vfnmadd213pd vfnmadd231pd  vfnmsub132ss vfnmsub213ss vfnmsub231ss vfnmsub132ps vfnmsub213ps vfnmsub231ps  vfnmsub132sd vfnmsub213sd vfnmsub231sd vfnmsub132pd vfnmsub213pd vfnmsub231pd al ah bl bh cl ch dl dh  ax bx cx dx si di bp eax ebx ecx edx esi edi ebx esp  st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7  xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7  fs sil dil bpl r8b r9b r10b r11b r12b r13b r14b r15b  r8w r9w r10w r11w r12w r13w r14w r15w rax rcx rdx rbx rsp rbp rsi rdi  r8 r9 r10 r11 r12 r13 r14 r15 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15  ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 gs db dw dd dq dt do dy  resb resw resd resq rest reso resy incbin equ times safeseh __utf16__ __utf32__ %+  default cpu float start imagebase osabi ..start ..imagebase ..gotpc ..gotoff ..gottpoff ..got ..plt ..sym ..tlsie  section segment __sect__ group absolute .bss .comment .data .lbss .ldata .lrodata .rdata .rodata .tbss .tdata .text  alloc bss code exec data noalloc nobits noexec nowrite progbits rdata tls write private public common stack overlay class  extern global common import export %define %idefine %xdefine %ixdefine %assign %undef %? %??  %defstr %idefstr %deftok %ideftok %strcat %strlen %substr  %macro %imacro %rmacro %exitmacro %endmacro %unmacro %if %ifn %elif %elifn %else %endif  %ifdef %ifndef %elifdef %elifndef %ifmacro %ifnmacro %elifmacro %elifnmacro  %ifctx %ifnctx %elifctx %elifnctx %ifidn %ifnidn %elifidn %elifnidn  %ifidni %ifnidni %elifidni %elifnidni %ifid %ifnid %elifid %elifnid  %ifnum %ifnnum %elifnum %elifnnum %ifstr %ifnstr %elifstr %elifnstr  %iftoken %ifntoken %eliftoken %elifntoken %ifempty %elifempty %ifnempty %elifnempty  %ifenv %ifnenv %elifenv %elifnenv %rep %exitrep %endrep  %while %exitwhile %endwhile %include %pathsearch %depend %use  %push %pop %repl %arg %local %stacksize flat flat64 large small %error %warning %fatal  %00 .nolist %rotate %line %! %final %clear struc endstruc istruc at iend  align alignb sectalign bits use16 use32 use64  __nasm_major__ __nasm_minor__ __nasm_subminor__ ___nasm_patchlevel__ __nasm_version_id__ __nasm_ver__  __file__ __line__ __pass__ __bits__ __output_format__ __date__ __time__ __date_num__ __time_num__ __posix_time__  __utc_date__ __utc_time__ __utc_date_num__ __utc_time_num__ __float_daz__ __float_round__ __float__  __use_altreg__ altreg __use_smartalign__ smartalign __alignmode__  __use_fp__ __infinity__ __nan__ __qnan__ __snan__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ a16 a32 a64 o16 o32 o64 strict  byte word dword qword tword oword yword nosplit %0 %1 %2 %3 %4 %5 %6 %7 %8 %9  abs rel $ $$  seg wrt\"\n",
    "  return keywords0_set\n",
    "end\n",
    "\n",
    "function user_asm.get_autocomplete()\n",
    "  local autocomplete_set = \"ja jae jb jbe jc jcxz je jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz jcxz jecxz jrcxz loop loope loopne loopz loopnz call ret add sub adc sbb neg cmp inc dec and or xor not test shl shr sal sar shld shrd rol ror rcl rcr cbw cwd cwde cdq cdqe cqo bsf bsr bt btc btr bts idiv imul div mul bswap nop lea mov movsx movsxd movzx xlatb bound xchg xadd cmpxchg cmpxchg8b cmpxchg16b push pop pushad popad pushf popf pushfd popfd pushfq popfq seta setae setb setbe setc sete setg setge setl setle setna setnae setnb setnbe setnc setne setng setnge setnl setnle setno setnp setns setnz seto setp setpe setpo sets setz salc clc cld stc std cmc lahf sahf cmovo cmovno cmovb cmovc cmovnae cmovae cmovnb cmovnc cmove cmovz cmovne cmovnz cmovbe cmovna cmova cmovnbe cmovs cmovns cmovp cmovpe cmovnp cmovpo cmovl cmovnge cmovge cmovnl cmovle cmovng cmovg cmovnle lock rep repe repz repne repnz cmpsb cmpsw cmpsq movsb movsw movsq scasb scasw scasd scasq stosb stosw stosd stosq cpuid rdtsc rdtscp rdpmc xgetbv llwpcb slwpcb lwpval lwpins crc32 popcnt lzcnt tzcnt movbe pclmulqdq rdrand andn bextr blsi blsmk blsr bzhi mulx pdep pext rorx sarx shlx shrx blcfill blci blcic blcmsk blcs blsfill blsic t1mskc tzmsk f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcom fcomp fcompp fdecstp fdisi fdiv fdivp fdivr fdivrp feni ffree fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisub fisubr fld fld1 fldcw fldenv fldenvw fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnsavew fnstcw fnstenv fnstenvw fnstsw fpatan fprem fptan frndint frstor frstorw fsave fsavew fscale fsqrt fst fstcw fstenv fstenvw fstp fstsw fsub fsubp fsubr fsubrp ftst fwait fxam fxch fxtract fyl2x fyl2xp1 fsetpm fcos fldenvd fnsaved fnstenvd fprem1 frstord fsaved fsin fsincos fstenvd fucom fucomp fucompp fcomi fcomip fucomi fucomip ffreep fcmovb fcmove fcmovbe fcmovu fcmovnb fcmovne fcmovnbe fcmovnu movd movq paddb paddw paddd paddsb paddsw paddusb paddusw psubb psubw psubd psubsb psubsw psubusb psubusw pand pandn por pxor pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pmaddwd pmulhw pmullw psllw pslld psllq psrlw psrld psrlq psraw psrad packuswb packsswb packssdw punpcklbw punpcklwd punpckldq punpckhbw punpckhwd punpckhdq emms pavgb pavgw pextrw pinsrw pmovmskb pmaxsw pmaxub pminsw pminub pmulhuw psadbw pshufw prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq sfence paddsiw psubsiw pmulhrw pmachriw pmulhriw pmagw pdistib paveb pmvzb pmvnzb pmvlzb pmvgezb pfacc pfadd pfsub pfsubr pfmul pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pi2fd pf2id pavgusb pmulhrw femms pfnacc pfpnacc pi2fw pf2iw pswapd pfrsqrtv pfrcpv prefetch prefetchw addss addps subss subps mulss mulps divss divps sqrtss sqrtps rcpss rcpps rsqrtss rsqrtps maxss maxps minss minps cmpss comiss ucomiss cmpps cmpeqss cmpltss cmpless cmpunordss cmpneqss cmpnltss cmpnless cmpordss cmpeqps cmpltps cmpleps cmpunordps cmpneqps cmpnltps cmpnleps cmpordps andnps andps orps xorps cvtsi2ss cvtss2si cvttss2si cvtpi2ps cvtps2pi cvttps2pi movss movlps movhps movlhps movhlps movaps movups movntps movmskps shufps unpckhps unpcklps ldmxcsr stmxcsr addpd addsd subpd subsd mulsd mulpd divsd divpd sqrtsd sqrtpd maxsd maxpd minsd minpd cmpsd comisd ucomisd cmppd cmpeqsd cmpltsd cmplesd cmpunordsd cmpneqsd cmpnltsd cmpnlesd cmpordsd cmpeqpd cmpltpd cmplepd cmpunordpd cmpneqpd cmpnltpd cmpnlepd cmpordpd andnpd andpd orpd xorpd cvtsd2ss cvtpd2ps cvtss2sd cvtps2pd cvtdq2ps cvtps2dq cvttps2dq cvtdq2pd cvtpd2dq cvttpd2dq  cvtsi2sd cvtsd2si cvttsd2si cvtpi2pd cvtpd2pi cvttpd2pi  movsd movlpd movhpd movapd movupd movntpd movmskpd shufpd unpckhpd unpcklpd  movnti movdqa movdqu movntdq maskmovdqu movdq2q movq2dq  paddq psubq pmuludq pslldq psrldq  punpcklqdq punpckhqdq pshufhw pshuflw pshufd  lfence mfence addsubps addsubpd haddps haddpd hsubps hsubpd  movsldup movshdup movddup lddqu  fisttp psignb psignw psignd pabsb pabsw pabsd  palignr pshufb pmulhrsw pmaddubsw  phaddw phaddd phaddsw phsubw phsubd phsubsw extrq insertq  movntsd movntss mpsadbw phminposuw pmuldq pmulld  dpps dppd blendps blendpd blendvps blendvpd pblendvb pblendw  pmaxsb pmaxuw pmaxsd pmaxud pminsb pminuw pminsd pminud roundps roundss roundpd roundsd  insertps pinsrb pinsrd pinsrq extractps pextrb pextrd pextrq  pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq  ptest pcmpeqq  packusdw movntdqa pcmpgtq  pcmpestri pcmpestrm pcmpistri pcmpistrm aesenc aesenclast aesdec aesdeclast aeskeygenassist aesimc xcryptcbc xcryptcfb xcryptctr xcryptecb xcryptofb xsha1 xsha256 montmul xstore vaddss vaddps vaddsd vaddpd vsubss vsubps vsubsd vsubpd  vaddsubps vaddsubpd vhaddps vhaddpd vhsubps vhsubpd  vmulss vmulps vmulsd vmulpd vmaxss vmaxps vmaxsd vmaxpd vminss vminps vminsd vminpd  vandps vandpd vandnps vandnpd vorps vorpd vxorps vxorpd vblendps vblendpd vblendvps vblendvpd  vcmpss vcomiss vucomiss vcmpsd vcomisd vucomisd vcmpps vcmppd vcmpeqss vcmpltss vcmpless vcmpunordss vcmpneqss vcmpnltss vcmpnless vcmpordss  vcmpeq_uqss vcmpngess vcmpngtss vcmpfalsess vcmpneq_oqss vcmpgess vcmpgtss vcmptruess vcmpeq_osss vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss  vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpeqps vcmpltps vcmpleps vcmpunordps vcmpneqps vcmpnltps vcmpnleps vcmpordps  vcmpeq_uqps vcmpngeps vcmpngtps vcmpfalseps vcmpneq_oqps vcmpgeps vcmpgtps vcmptrueps vcmpeq_osps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps  vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpeqsd vcmpltsd vcmplesd vcmpunordsd vcmpneqsd vcmpnltsd vcmpnlesd vcmpordsd  vcmpeq_uqsd vcmpngesd vcmpngtsd vcmpfalsesd vcmpneq_oqsd vcmpgesd vcmpgtsd vcmptruesd vcmpeq_ossd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd  vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpeqpd vcmpltpd vcmplepd vcmpunordpd vcmpneqpd vcmpnltpd vcmpnlepd vcmpordpd  vcmpeq_uqpd vcmpngepd vcmpngtpd vcmpfalsepd vcmpneq_oqpd vcmpgepd vcmpgtpd vcmptruepd vcmpeq_ospd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd  vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcvtsd2ss vcvtpd2ps vcvtss2sd vcvtps2pd  vcvtsi2ss vcvtss2si vcvttss2si vcvtpi2ps vcvtps2pi vcvttps2pi  vcvtdq2ps vcvtps2dq vcvttps2dq vcvtdq2pd vcvtpd2dq vcvttpd2dq  vcvtsi2sd vcvtsd2si vcvttsd2si vcvtpi2pd vcvtpd2pi vcvttpd2pi  vdivss vdivps vdivsd vdivpd vsqrtss vsqrtps vsqrtsd vsqrtpd vdpps vdppd  vmaskmovps vmaskmovpd vmovss vmovsd vmovaps vmovapd vmovups vmovupd vmovntps vmovntpd  vmovhlps vmovlhps vmovlps vmovlpd vmovhps vmovhpd vmovsldup vmovshdup vmovddup  vmovmskps vmovmskpd vroundss vroundps vroundsd vroundpd  vrcpss vrcpps vrsqrtss vrsqrtps vunpcklps vunpckhps vunpcklpd vunpckhpd  vbroadcastss vbroadcastsd vbroadcastf128 vextractps vinsertps vextractf128 vinsertf128  vshufps vshufpd vpermilps vpermilpd vperm2f128 vtestps vtestpd  vpaddb vpaddusb vpaddsb vpaddw vpaddusw vpaddsw vpaddd vpaddq vpsubb vpsubusb vpsubsb vpsubw vpsubusw vpsubsw vpsubd vpsubq  vphaddw vphaddsw vphaddd vphsubw vphsubsw vphsubd vpsllw vpslld vpsllq vpsrlw vpsrld vpsrlq vpsraw vpsrad  vpand vpandn vpor vpxor vpblendwb vpblendw  vpsignb vpsignw vpsignd vpavgb vpavgw  vpabsb vpabsw vpabsd vmovd vmovq vmovdqa vmovdqu vlddqu vmovntdq vmovntdqa vmaskmovdqu  vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq  vpackuswb vpacksswb vpackusdw vpackssdw vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq  vpmaddubsw vpmaddwd vpmullw vpmulhuw vpmulhw vpmulhrsw vpmulld vpmuludq vpmuldq  vpmaxub vpmaxsb vpmaxuw vpmaxsw vpmaxud vpmaxsd vpminub vpminsb vpminuw vpminsw vpminud vpminsd  vpmovmskb vptest vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq  vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpslldq vpsrldq vpalignr  vpshufb vpshuflw vpshufhw vpshufd vpextrb vpextrw vpextrd vpextrq vpinsrb vpinsrw vpinsrd vpinsrq  vpsadbw vmpsadbw vphminposuw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm  vpclmulqdq vaesenc vaesenclast vaesdec vaesdeclast vaeskeygenassist vaesimc vldmxcsr vstmxcsr vzeroall vzeroupper vbroadcasti128 vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq  vpblendd vpermd vpermq vperm2i128  vextracti128 vinserti128 vpmaskmovd vpmaskmovq  vpsllvd vpsllvq vpsravd vpsrlvd vpsrldq vpgatherdd vpgatherqd vgatherdq vgatherqq  vpermps vpermpd vgatherdpd vgatherqpd vgatherdps vgatherqps vfrczss vfrczps vfrczsd vfrczpd  vpermil2ps vperlil2pd vtestps vtestpd  vpcomub vpcomb vpcomuw vpcomw vpcomud vpcomd vpcomuq vpcomq vphaddubw vphaddbw vphaddubd vphaddbd vphaddubq vphaddbq  vphadduwd vphaddwd vphadduwq vphaddwq vphaddudq vphadddq vphsubbw vphsubwd vphsubdq  vpmacsdd vpmacssdd vpmacsdql vpmacssdql vpmacsdqh vpmacssdqh vpmacsww vpmacssww vpmacswd vpmacsswd  vpmadcswd vpmadcsswd vpcmov vpperm  vprotb vprotw vprotd vprotq vpshab vpshaw vpshad vpshaq  vpshlb vpshlw vpshld vpshlq vcvtph2ps vcvtps2ph vfmaddss vfmaddps vfmaddsd vfmaddpd vfmsubss vfmsubps vfmsubsd vfmsubpd  vnfmaddss vnfmaddps vnfmaddsd vnfmaddpd vnfmsubss vnfmsubps vnfmsubsd vnfmsubpd  vfmaddsubps vfmaddsubpd vfmsubaddps vfmsubaddpd vfmadd132ss vfmadd213ss vfmadd231ss vfmadd132ps vfmadd213ps vfmadd231ps  vfmadd132sd vfmadd213sd vfmadd231sd vfmadd132pd vfmadd213pd vfmadd231pd  vfmaddsub132ps vfmaddsub213ps vfmaddsub231ps vfmaddsub132pd vfmaddsub213pd vfmaddsub231pd  vfmsubadd132ps vfmsubadd213ps vfmsubadd231ps vfmsubadd132pd vfmsubadd213pd vfmsubadd231pd  vfmsub132ss vfmsub213ss vfmsub231ss vfmsub132ps vfmsub213ps vfmsub231ps  vfmsub132sd vfmsub213sd vfmsub231sd vfmsub132pd vfmsub213pd vfmsub231pd  vfnmadd132ss vfnmadd213ss vfnmadd231ss vfnmadd132ps vfnmadd213ps vfnmadd231ps  vfnmadd132sd vfnmadd213sd vfnmadd231sd vfnmadd132pd vfnmadd213pd vfnmadd231pd  vfnmsub132ss vfnmsub213ss vfnmsub231ss vfnmsub132ps vfnmsub213ps vfnmsub231ps  vfnmsub132sd vfnmsub213sd vfnmsub231sd vfnmsub132pd vfnmsub213pd vfnmsub231pd al ah bl bh cl ch dl dh  ax bx cx dx si di bp eax ebx ecx edx esi edi ebx esp  st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7  xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7  fs sil dil bpl r8b r9b r10b r11b r12b r13b r14b r15b r8w r9w r10w r11w r12w r13w r14w r15w rax rcx rdx rbx rsp rbp rsi rdi  r8 r9 r10 r11 r12 r13 r14 r15 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15  ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 gs db dw dd dq dt do dy  resb resw resd resq rest reso resy incbin equ times safeseh __utf16__ __utf32__ %+  default cpu float start imagebase osabi ..start ..imagebase ..gotpc ..gotoff ..gottpoff ..got ..plt ..sym ..tlsie  section segment __sect__ group absolute .bss .comment .data .lbss .ldata .lrodata .rdata .rodata .tbss .tdata .text  alloc bss code exec data noalloc nobits noexec nowrite progbits rdata tls write private public common stack overlay class  extern global common import export %define %idefine %xdefine %ixdefine %assign %undef %? %??  %defstr %idefstr %deftok %ideftok %strcat %strlen %substr  %macro %imacro %rmacro %exitmacro %endmacro %unmacro %if %ifn %elif %elifn %else %endif  %ifdef %ifndef %elifdef %elifndef %ifmacro %ifnmacro %elifmacro %elifnmacro  %ifctx %ifnctx %elifctx %elifnctx %ifidn %ifnidn %elifidn %elifnidn  %ifidni %ifnidni %elifidni %elifnidni %ifid %ifnid %elifid %elifnid  %ifnum %ifnnum %elifnum %elifnnum %ifstr %ifnstr %elifstr %elifnstr  %iftoken %ifntoken %eliftoken %elifntoken %ifempty %elifempty %ifnempty %elifnempty %ifenv %ifnenv %elifenv %elifnenv %rep %exitrep %endrep  %while %exitwhile %endwhile %include %pathsearch %depend %use  %push %pop %repl %arg %local %stacksize flat flat64 large small %error %warning %fatal  %00 .nolist %rotate %line %! %final %clear struc endstruc istruc at iend  align alignb sectalign bits use16 use32 use64  __nasm_major__ __nasm_minor__ __nasm_subminor__ ___nasm_patchlevel__ __nasm_version_id__ __nasm_ver__  __file__ __line__ __pass__ __bits__ __output_format__ __date__ __time__ __date_num__ __time_num__ __posix_time__ __utc_date__ __utc_time__ __utc_date_num__ __utc_time_num__ __float_daz__ __float_round__ __float__  __use_altreg__ altreg __use_smartalign__ smartalign __alignmode__  __use_fp__ __infinity__ __nan__ __qnan__ __snan__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ a16 a32 a64 o16 o32 o64 strict byte word dword qword tword oword yword nosplit %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 abs rel $ $$ seg wrt\"\n",
    "  return autocomplete_set\n",
    "end\n",
    "\n",
    "function user_asm.get_reqular()\n",
    "  local symbol_reqular_exp = \"[ \\\\t]*([_a-zA-Z]+[_a-zA-Z0-9\\\\-]*)[ \\\\t]*PROC\"\n",
    "  return symbol_reqular_exp\n",
    "end\n",
    "return user_asm",
  }
  local shell_code = table.concat(asm_code)
  eu_core.save_file(path, shell_code)
  shell_code = nil
  asm_code = nil
end

return asm