Lines Matching +full:0 +full:xf3
41 $0 =~ m/(.*[\/\\])[^\/\\]+$/; $dir=$1;
47 &asm_init($ARGV[0]);
74 &cmp ("ebx","0x".unpack("H*",'tneC'));
76 &cmp ("edx","0x".unpack("H*",'Hrua'));
78 &cmp ("ecx","0x".unpack("H*",'slua'));
82 &cmp ("ebx","0x".unpack("H*",'hS '));
84 &cmp ("edx","0x".unpack("H*",'hgna'));
86 &cmp ("ecx","0x".unpack("H*",' ia'));
89 &mov ("eax",0xC0000000);
93 &cmp ("edx",0xC0000001);
97 &or ("eax",0x0f);
99 &and ("eax",0x0fff);
100 &cmp ("eax",0x06ff); # check for Nano
102 &mov ("eax",0xC0000001);
108 &and ("eax",0xffffffef);
116 &mov ("edx",&wparam(0));
121 &mov ("eax",&DWP(0,"edx"));
123 &mov (&DWP(0,"edx"),"eax");
140 &mov ($ctx,&wparam(0));
151 &add ("eax",&DWP(0,"esp")) if(!($::win32 or $::coff));# &padlock_saved_context
154 &cmp ($ctx,&DWP(0,"eax"));
159 &mov (&DWP(0,"eax"),$ctx);
173 &mov ($out,&wparam(0)); # must be 16-byte aligned
179 &data_byte(0xf3,0x0f,0xa7,0xc8); # rep xcryptecb
191 &mov ($out,&wparam(0));
211 &test (&DWP(0,$ctx),1<<5); # align bit in control word
213 &test ($out,0x0f);
215 &test ($inp,0x0f);
222 ¬ ("eax"); # out_misaligned?-1:0
226 &and ("eax",$chunk); # out_misaligned?chunk:0
230 &lea ("esp",&DWP(0,"eax","ebp")); # alloca
245 &and ("eax",0xfff); # distance to page boundary
255 &mov (&DWP(0,"ebp"),$out); # save parameters
267 &movq (&QWP(0,"esp",$out),"mm0");
276 &lea ($inp,&DWP(0,"esp"));
277 &lea ($out,&DWP(0,"esp"));
280 &test ($out,0x0f); # out_misaligned
282 &test ($inp,0x0f); # inp_misaligned
285 &data_byte(0xf3,0xa5); # rep movsl
294 &data_byte(0xf3,0x0f,0xa7,$opcode); # rep xcrypt*
296 &movaps ("xmm0",&QWP(0,"eax"));
299 &mov ($out,&DWP(0,"ebp")); # restore parameters
305 &movups ("xmm1",&QWP(0,$inp,$len));
312 &test ($out,0x0f);
315 &lea ($inp,&DWP(0,"esp"));
317 &data_byte(0xf3,0xa5); # rep movsl
342 &lea ($out,&DWP(0,"esp"));
343 &data_byte(0xf3,0xa5); # rep movsl
356 &lea ("eax",&DWP(0,"esp"));
358 &movaps (&QWP(0,"eax"),"xmm0");
371 &lea ("ebp",&DWP(0,$inp,$len));
373 &and ("ebp",0xfff); # distance to page boundary
385 &data_byte(0xf3,0x0f,0xa7,$opcode); # rep xcrypt*
387 &movaps ("xmm0",&QWP(0,"eax"));
406 &lea ($out,&DWP(0,"esp"));
407 &data_byte(0xf3,0xa5); # rep movsl
421 &generate_mode("ecb",0xc8);
422 &generate_mode("cbc",0xd0);
423 &generate_mode("cfb",0xe0);
424 &generate_mode("ofb",0xe8);
425 &generate_mode("ctr32",0xc8); # yes, it implements own CTR with ECB opcode,
433 &mov ("edi",&wparam(0));
435 &data_byte(0x0f,0xa7,0xc0); # xstore
442 &mov ("edx",&wparam(0)); # *ExceptionRecord
444 &cmp (&DWP(0,"edx"),0xC0000005) # ExceptionRecord->ExceptionCode == STATUS_ACCESS_VIOLATION
447 &mov ("eax",0); # ExceptionContinueExecution
457 &mov ("edi",&wparam(0));
462 &data_byte(0x64,0xff,0x30); # push %fs:(%eax)
463 &data_byte(0x64,0x89,0x20); # mov %esp,%fs:(%eax)
467 &movups ("xmm0",&QWP(0,"edi")); # copy-in context
470 &movaps (&QWP(0,"esp"),"xmm0");
474 &data_byte(0xf3,0x0f,0xa6,0xc8); # rep xsha1
475 &movaps ("xmm0",&QWP(0,"esp"));
479 &data_byte(0x64,0x8f,0x05,0,0,0,0); # pop %fs:0
482 &mov ("edi",&wparam(0));
483 &movups (&QWP(0,"edi"),"xmm0"); # copy-out context
493 &mov ("edi",&wparam(0));
498 &movups ("xmm0",&QWP(0,"edi")); # copy-in context
501 &movaps (&QWP(0,"esp"),"xmm0");
505 &data_byte(0xf3,0x0f,0xa6,0xc8); # rep xsha1
506 &movaps ("xmm0",&QWP(0,"esp"));
509 &mov ("edi",&wparam(0));
510 &movups (&QWP(0,"edi"),"xmm0"); # copy-out context
521 &mov ("edi",&wparam(0));
526 &data_byte(0x64,0xff,0x30); # push %fs:(%eax)
527 &data_byte(0x64,0x89,0x20); # mov %esp,%fs:(%eax)
531 &movups ("xmm0",&QWP(0,"edi")); # copy-in context
534 &movaps (&QWP(0,"esp"),"xmm0");
538 &data_byte(0xf3,0x0f,0xa6,0xd0); # rep xsha256
539 &movaps ("xmm0",&QWP(0,"esp"));
543 &data_byte(0x64,0x8f,0x05,0,0,0,0); # pop %fs:0
546 &mov ("edi",&wparam(0));
547 &movups (&QWP(0,"edi"),"xmm0"); # copy-out context
557 &mov ("edi",&wparam(0));
562 &movups ("xmm0",&QWP(0,"edi")); # copy-in context
565 &movaps (&QWP(0,"esp"),"xmm0");
569 &data_byte(0xf3,0x0f,0xa6,0xd0); # rep xsha256
570 &movaps ("xmm0",&QWP(0,"esp"));
573 &mov ("edi",&wparam(0));
574 &movups (&QWP(0,"edi"),"xmm0"); # copy-out context
584 &mov ("edi",&wparam(0));
589 &movups ("xmm0",&QWP(0,"edi")); # copy-in context
594 &movaps (&QWP(0,"esp"),"xmm0");
599 &data_byte(0xf3,0x0f,0xa6,0xe0); # rep xsha512
600 &movaps ("xmm0",&QWP(0,"esp"));
605 &mov ("edi",&wparam(0));
606 &movups (&QWP(0,"edi"),"xmm0"); # copy-out context
624 &data_word(0);