123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770 |
- OPTION DOTNAME
- .text$ SEGMENT ALIGN(256) 'CODE'
- EXTERN OPENSSL_ia32cap_P:NEAR
- PUBLIC aesni_multi_cbc_encrypt
- ALIGN 32
- aesni_multi_cbc_encrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
- mov rax,rsp
- $L$SEH_begin_aesni_multi_cbc_encrypt::
- mov rdi,rcx
- mov rsi,rdx
- mov rdx,r8
- cmp edx,2
- jb $L$enc_non_avx
- mov ecx,DWORD PTR[((OPENSSL_ia32cap_P+4))]
- test ecx,268435456
- jnz _avx_cbc_enc_shortcut
- jmp $L$enc_non_avx
- ALIGN 16
- $L$enc_non_avx::
- mov rax,rsp
- push rbx
- push rbp
- push r12
- push r13
- push r14
- push r15
- lea rsp,QWORD PTR[((-168))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
- movaps XMMWORD PTR[32+rsp],xmm8
- movaps XMMWORD PTR[48+rsp],xmm9
- movaps XMMWORD PTR[64+rsp],xmm10
- movaps XMMWORD PTR[80+rsp],xmm11
- movaps XMMWORD PTR[96+rsp],xmm12
- movaps XMMWORD PTR[(-104)+rax],xmm13
- movaps XMMWORD PTR[(-88)+rax],xmm14
- movaps XMMWORD PTR[(-72)+rax],xmm15
- sub rsp,48
- and rsp,-64
- mov QWORD PTR[16+rsp],rax
- $L$enc4x_body::
- movdqu xmm12,XMMWORD PTR[rsi]
- lea rsi,QWORD PTR[120+rsi]
- lea rdi,QWORD PTR[80+rdi]
- $L$enc4x_loop_grande::
- mov DWORD PTR[24+rsp],edx
- xor edx,edx
- mov ecx,DWORD PTR[((-64))+rdi]
- mov r8,QWORD PTR[((-80))+rdi]
- cmp ecx,edx
- mov r12,QWORD PTR[((-72))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- movdqu xmm2,XMMWORD PTR[((-56))+rdi]
- mov DWORD PTR[32+rsp],ecx
- cmovle r8,rsp
- mov ecx,DWORD PTR[((-24))+rdi]
- mov r9,QWORD PTR[((-40))+rdi]
- cmp ecx,edx
- mov r13,QWORD PTR[((-32))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- movdqu xmm3,XMMWORD PTR[((-16))+rdi]
- mov DWORD PTR[36+rsp],ecx
- cmovle r9,rsp
- mov ecx,DWORD PTR[16+rdi]
- mov r10,QWORD PTR[rdi]
- cmp ecx,edx
- mov r14,QWORD PTR[8+rdi]
- cmovg edx,ecx
- test ecx,ecx
- movdqu xmm4,XMMWORD PTR[24+rdi]
- mov DWORD PTR[40+rsp],ecx
- cmovle r10,rsp
- mov ecx,DWORD PTR[56+rdi]
- mov r11,QWORD PTR[40+rdi]
- cmp ecx,edx
- mov r15,QWORD PTR[48+rdi]
- cmovg edx,ecx
- test ecx,ecx
- movdqu xmm5,XMMWORD PTR[64+rdi]
- mov DWORD PTR[44+rsp],ecx
- cmovle r11,rsp
- test edx,edx
- jz $L$enc4x_done
- movups xmm1,XMMWORD PTR[((16-120))+rsi]
- pxor xmm2,xmm12
- movups xmm0,XMMWORD PTR[((32-120))+rsi]
- pxor xmm3,xmm12
- mov eax,DWORD PTR[((240-120))+rsi]
- pxor xmm4,xmm12
- movdqu xmm6,XMMWORD PTR[r8]
- pxor xmm5,xmm12
- movdqu xmm7,XMMWORD PTR[r9]
- pxor xmm2,xmm6
- movdqu xmm8,XMMWORD PTR[r10]
- pxor xmm3,xmm7
- movdqu xmm9,XMMWORD PTR[r11]
- pxor xmm4,xmm8
- pxor xmm5,xmm9
- movdqa xmm10,XMMWORD PTR[32+rsp]
- xor rbx,rbx
- jmp $L$oop_enc4x
- ALIGN 32
- $L$oop_enc4x::
- add rbx,16
- lea rbp,QWORD PTR[16+rsp]
- mov ecx,1
- sub rbp,rbx
- DB 102,15,56,220,209
- prefetcht0 [31+rbx*1+r8]
- prefetcht0 [31+rbx*1+r9]
- DB 102,15,56,220,217
- prefetcht0 [31+rbx*1+r10]
- prefetcht0 [31+rbx*1+r10]
- DB 102,15,56,220,225
- DB 102,15,56,220,233
- movups xmm1,XMMWORD PTR[((48-120))+rsi]
- cmp ecx,DWORD PTR[32+rsp]
- DB 102,15,56,220,208
- DB 102,15,56,220,216
- DB 102,15,56,220,224
- cmovge r8,rbp
- cmovg r12,rbp
- DB 102,15,56,220,232
- movups xmm0,XMMWORD PTR[((-56))+rsi]
- cmp ecx,DWORD PTR[36+rsp]
- DB 102,15,56,220,209
- DB 102,15,56,220,217
- DB 102,15,56,220,225
- cmovge r9,rbp
- cmovg r13,rbp
- DB 102,15,56,220,233
- movups xmm1,XMMWORD PTR[((-40))+rsi]
- cmp ecx,DWORD PTR[40+rsp]
- DB 102,15,56,220,208
- DB 102,15,56,220,216
- DB 102,15,56,220,224
- cmovge r10,rbp
- cmovg r14,rbp
- DB 102,15,56,220,232
- movups xmm0,XMMWORD PTR[((-24))+rsi]
- cmp ecx,DWORD PTR[44+rsp]
- DB 102,15,56,220,209
- DB 102,15,56,220,217
- DB 102,15,56,220,225
- cmovge r11,rbp
- cmovg r15,rbp
- DB 102,15,56,220,233
- movups xmm1,XMMWORD PTR[((-8))+rsi]
- movdqa xmm11,xmm10
- DB 102,15,56,220,208
- prefetcht0 [15+rbx*1+r12]
- prefetcht0 [15+rbx*1+r13]
- DB 102,15,56,220,216
- prefetcht0 [15+rbx*1+r14]
- prefetcht0 [15+rbx*1+r15]
- DB 102,15,56,220,224
- DB 102,15,56,220,232
- movups xmm0,XMMWORD PTR[((128-120))+rsi]
- pxor xmm12,xmm12
- DB 102,15,56,220,209
- pcmpgtd xmm11,xmm12
- movdqu xmm12,XMMWORD PTR[((-120))+rsi]
- DB 102,15,56,220,217
- paddd xmm10,xmm11
- movdqa XMMWORD PTR[32+rsp],xmm10
- DB 102,15,56,220,225
- DB 102,15,56,220,233
- movups xmm1,XMMWORD PTR[((144-120))+rsi]
- cmp eax,11
- DB 102,15,56,220,208
- DB 102,15,56,220,216
- DB 102,15,56,220,224
- DB 102,15,56,220,232
- movups xmm0,XMMWORD PTR[((160-120))+rsi]
- jb $L$enc4x_tail
- DB 102,15,56,220,209
- DB 102,15,56,220,217
- DB 102,15,56,220,225
- DB 102,15,56,220,233
- movups xmm1,XMMWORD PTR[((176-120))+rsi]
- DB 102,15,56,220,208
- DB 102,15,56,220,216
- DB 102,15,56,220,224
- DB 102,15,56,220,232
- movups xmm0,XMMWORD PTR[((192-120))+rsi]
- je $L$enc4x_tail
- DB 102,15,56,220,209
- DB 102,15,56,220,217
- DB 102,15,56,220,225
- DB 102,15,56,220,233
- movups xmm1,XMMWORD PTR[((208-120))+rsi]
- DB 102,15,56,220,208
- DB 102,15,56,220,216
- DB 102,15,56,220,224
- DB 102,15,56,220,232
- movups xmm0,XMMWORD PTR[((224-120))+rsi]
- jmp $L$enc4x_tail
- ALIGN 32
- $L$enc4x_tail::
- DB 102,15,56,220,209
- DB 102,15,56,220,217
- DB 102,15,56,220,225
- DB 102,15,56,220,233
- movdqu xmm6,XMMWORD PTR[rbx*1+r8]
- movdqu xmm1,XMMWORD PTR[((16-120))+rsi]
- DB 102,15,56,221,208
- movdqu xmm7,XMMWORD PTR[rbx*1+r9]
- pxor xmm6,xmm12
- DB 102,15,56,221,216
- movdqu xmm8,XMMWORD PTR[rbx*1+r10]
- pxor xmm7,xmm12
- DB 102,15,56,221,224
- movdqu xmm9,XMMWORD PTR[rbx*1+r11]
- pxor xmm8,xmm12
- DB 102,15,56,221,232
- movdqu xmm0,XMMWORD PTR[((32-120))+rsi]
- pxor xmm9,xmm12
- movups XMMWORD PTR[(-16)+rbx*1+r12],xmm2
- pxor xmm2,xmm6
- movups XMMWORD PTR[(-16)+rbx*1+r13],xmm3
- pxor xmm3,xmm7
- movups XMMWORD PTR[(-16)+rbx*1+r14],xmm4
- pxor xmm4,xmm8
- movups XMMWORD PTR[(-16)+rbx*1+r15],xmm5
- pxor xmm5,xmm9
- dec edx
- jnz $L$oop_enc4x
- mov rax,QWORD PTR[16+rsp]
- mov edx,DWORD PTR[24+rsp]
- lea rdi,QWORD PTR[160+rdi]
- dec edx
- jnz $L$enc4x_loop_grande
- $L$enc4x_done::
- movaps xmm6,XMMWORD PTR[((-216))+rax]
- movaps xmm7,XMMWORD PTR[((-200))+rax]
- movaps xmm8,XMMWORD PTR[((-184))+rax]
- movaps xmm9,XMMWORD PTR[((-168))+rax]
- movaps xmm10,XMMWORD PTR[((-152))+rax]
- movaps xmm11,XMMWORD PTR[((-136))+rax]
- movaps xmm12,XMMWORD PTR[((-120))+rax]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
- $L$enc4x_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
- DB 0F3h,0C3h ;repret
- $L$SEH_end_aesni_multi_cbc_encrypt::
- aesni_multi_cbc_encrypt ENDP
- PUBLIC aesni_multi_cbc_decrypt
- ALIGN 32
- aesni_multi_cbc_decrypt PROC PUBLIC
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
- mov rax,rsp
- $L$SEH_begin_aesni_multi_cbc_decrypt::
- mov rdi,rcx
- mov rsi,rdx
- mov rdx,r8
- cmp edx,2
- jb $L$dec_non_avx
- mov ecx,DWORD PTR[((OPENSSL_ia32cap_P+4))]
- test ecx,268435456
- jnz _avx_cbc_dec_shortcut
- jmp $L$dec_non_avx
- ALIGN 16
- $L$dec_non_avx::
- mov rax,rsp
- push rbx
- push rbp
- push r12
- push r13
- push r14
- push r15
- lea rsp,QWORD PTR[((-168))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
- movaps XMMWORD PTR[32+rsp],xmm8
- movaps XMMWORD PTR[48+rsp],xmm9
- movaps XMMWORD PTR[64+rsp],xmm10
- movaps XMMWORD PTR[80+rsp],xmm11
- movaps XMMWORD PTR[96+rsp],xmm12
- movaps XMMWORD PTR[(-104)+rax],xmm13
- movaps XMMWORD PTR[(-88)+rax],xmm14
- movaps XMMWORD PTR[(-72)+rax],xmm15
- sub rsp,48
- and rsp,-64
- mov QWORD PTR[16+rsp],rax
- $L$dec4x_body::
- movdqu xmm12,XMMWORD PTR[rsi]
- lea rsi,QWORD PTR[120+rsi]
- lea rdi,QWORD PTR[80+rdi]
- $L$dec4x_loop_grande::
- mov DWORD PTR[24+rsp],edx
- xor edx,edx
- mov ecx,DWORD PTR[((-64))+rdi]
- mov r8,QWORD PTR[((-80))+rdi]
- cmp ecx,edx
- mov r12,QWORD PTR[((-72))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- movdqu xmm6,XMMWORD PTR[((-56))+rdi]
- mov DWORD PTR[32+rsp],ecx
- cmovle r8,rsp
- mov ecx,DWORD PTR[((-24))+rdi]
- mov r9,QWORD PTR[((-40))+rdi]
- cmp ecx,edx
- mov r13,QWORD PTR[((-32))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- movdqu xmm7,XMMWORD PTR[((-16))+rdi]
- mov DWORD PTR[36+rsp],ecx
- cmovle r9,rsp
- mov ecx,DWORD PTR[16+rdi]
- mov r10,QWORD PTR[rdi]
- cmp ecx,edx
- mov r14,QWORD PTR[8+rdi]
- cmovg edx,ecx
- test ecx,ecx
- movdqu xmm8,XMMWORD PTR[24+rdi]
- mov DWORD PTR[40+rsp],ecx
- cmovle r10,rsp
- mov ecx,DWORD PTR[56+rdi]
- mov r11,QWORD PTR[40+rdi]
- cmp ecx,edx
- mov r15,QWORD PTR[48+rdi]
- cmovg edx,ecx
- test ecx,ecx
- movdqu xmm9,XMMWORD PTR[64+rdi]
- mov DWORD PTR[44+rsp],ecx
- cmovle r11,rsp
- test edx,edx
- jz $L$dec4x_done
- movups xmm1,XMMWORD PTR[((16-120))+rsi]
- movups xmm0,XMMWORD PTR[((32-120))+rsi]
- mov eax,DWORD PTR[((240-120))+rsi]
- movdqu xmm2,XMMWORD PTR[r8]
- movdqu xmm3,XMMWORD PTR[r9]
- pxor xmm2,xmm12
- movdqu xmm4,XMMWORD PTR[r10]
- pxor xmm3,xmm12
- movdqu xmm5,XMMWORD PTR[r11]
- pxor xmm4,xmm12
- pxor xmm5,xmm12
- movdqa xmm10,XMMWORD PTR[32+rsp]
- xor rbx,rbx
- jmp $L$oop_dec4x
- ALIGN 32
- $L$oop_dec4x::
- add rbx,16
- lea rbp,QWORD PTR[16+rsp]
- mov ecx,1
- sub rbp,rbx
- DB 102,15,56,222,209
- prefetcht0 [31+rbx*1+r8]
- prefetcht0 [31+rbx*1+r9]
- DB 102,15,56,222,217
- prefetcht0 [31+rbx*1+r10]
- prefetcht0 [31+rbx*1+r11]
- DB 102,15,56,222,225
- DB 102,15,56,222,233
- movups xmm1,XMMWORD PTR[((48-120))+rsi]
- cmp ecx,DWORD PTR[32+rsp]
- DB 102,15,56,222,208
- DB 102,15,56,222,216
- DB 102,15,56,222,224
- cmovge r8,rbp
- cmovg r12,rbp
- DB 102,15,56,222,232
- movups xmm0,XMMWORD PTR[((-56))+rsi]
- cmp ecx,DWORD PTR[36+rsp]
- DB 102,15,56,222,209
- DB 102,15,56,222,217
- DB 102,15,56,222,225
- cmovge r9,rbp
- cmovg r13,rbp
- DB 102,15,56,222,233
- movups xmm1,XMMWORD PTR[((-40))+rsi]
- cmp ecx,DWORD PTR[40+rsp]
- DB 102,15,56,222,208
- DB 102,15,56,222,216
- DB 102,15,56,222,224
- cmovge r10,rbp
- cmovg r14,rbp
- DB 102,15,56,222,232
- movups xmm0,XMMWORD PTR[((-24))+rsi]
- cmp ecx,DWORD PTR[44+rsp]
- DB 102,15,56,222,209
- DB 102,15,56,222,217
- DB 102,15,56,222,225
- cmovge r11,rbp
- cmovg r15,rbp
- DB 102,15,56,222,233
- movups xmm1,XMMWORD PTR[((-8))+rsi]
- movdqa xmm11,xmm10
- DB 102,15,56,222,208
- prefetcht0 [15+rbx*1+r12]
- prefetcht0 [15+rbx*1+r13]
- DB 102,15,56,222,216
- prefetcht0 [15+rbx*1+r14]
- prefetcht0 [15+rbx*1+r15]
- DB 102,15,56,222,224
- DB 102,15,56,222,232
- movups xmm0,XMMWORD PTR[((128-120))+rsi]
- pxor xmm12,xmm12
- DB 102,15,56,222,209
- pcmpgtd xmm11,xmm12
- movdqu xmm12,XMMWORD PTR[((-120))+rsi]
- DB 102,15,56,222,217
- paddd xmm10,xmm11
- movdqa XMMWORD PTR[32+rsp],xmm10
- DB 102,15,56,222,225
- DB 102,15,56,222,233
- movups xmm1,XMMWORD PTR[((144-120))+rsi]
- cmp eax,11
- DB 102,15,56,222,208
- DB 102,15,56,222,216
- DB 102,15,56,222,224
- DB 102,15,56,222,232
- movups xmm0,XMMWORD PTR[((160-120))+rsi]
- jb $L$dec4x_tail
- DB 102,15,56,222,209
- DB 102,15,56,222,217
- DB 102,15,56,222,225
- DB 102,15,56,222,233
- movups xmm1,XMMWORD PTR[((176-120))+rsi]
- DB 102,15,56,222,208
- DB 102,15,56,222,216
- DB 102,15,56,222,224
- DB 102,15,56,222,232
- movups xmm0,XMMWORD PTR[((192-120))+rsi]
- je $L$dec4x_tail
- DB 102,15,56,222,209
- DB 102,15,56,222,217
- DB 102,15,56,222,225
- DB 102,15,56,222,233
- movups xmm1,XMMWORD PTR[((208-120))+rsi]
- DB 102,15,56,222,208
- DB 102,15,56,222,216
- DB 102,15,56,222,224
- DB 102,15,56,222,232
- movups xmm0,XMMWORD PTR[((224-120))+rsi]
- jmp $L$dec4x_tail
- ALIGN 32
- $L$dec4x_tail::
- DB 102,15,56,222,209
- DB 102,15,56,222,217
- DB 102,15,56,222,225
- pxor xmm6,xmm0
- pxor xmm7,xmm0
- DB 102,15,56,222,233
- movdqu xmm1,XMMWORD PTR[((16-120))+rsi]
- pxor xmm8,xmm0
- pxor xmm9,xmm0
- movdqu xmm0,XMMWORD PTR[((32-120))+rsi]
- DB 102,15,56,223,214
- DB 102,15,56,223,223
- movdqu xmm6,XMMWORD PTR[((-16))+rbx*1+r8]
- movdqu xmm7,XMMWORD PTR[((-16))+rbx*1+r9]
- DB 102,65,15,56,223,224
- DB 102,65,15,56,223,233
- movdqu xmm8,XMMWORD PTR[((-16))+rbx*1+r10]
- movdqu xmm9,XMMWORD PTR[((-16))+rbx*1+r11]
- movups XMMWORD PTR[(-16)+rbx*1+r12],xmm2
- movdqu xmm2,XMMWORD PTR[rbx*1+r8]
- movups XMMWORD PTR[(-16)+rbx*1+r13],xmm3
- movdqu xmm3,XMMWORD PTR[rbx*1+r9]
- pxor xmm2,xmm12
- movups XMMWORD PTR[(-16)+rbx*1+r14],xmm4
- movdqu xmm4,XMMWORD PTR[rbx*1+r10]
- pxor xmm3,xmm12
- movups XMMWORD PTR[(-16)+rbx*1+r15],xmm5
- movdqu xmm5,XMMWORD PTR[rbx*1+r11]
- pxor xmm4,xmm12
- pxor xmm5,xmm12
- dec edx
- jnz $L$oop_dec4x
- mov rax,QWORD PTR[16+rsp]
- mov edx,DWORD PTR[24+rsp]
- lea rdi,QWORD PTR[160+rdi]
- dec edx
- jnz $L$dec4x_loop_grande
- $L$dec4x_done::
- movaps xmm6,XMMWORD PTR[((-216))+rax]
- movaps xmm7,XMMWORD PTR[((-200))+rax]
- movaps xmm8,XMMWORD PTR[((-184))+rax]
- movaps xmm9,XMMWORD PTR[((-168))+rax]
- movaps xmm10,XMMWORD PTR[((-152))+rax]
- movaps xmm11,XMMWORD PTR[((-136))+rax]
- movaps xmm12,XMMWORD PTR[((-120))+rax]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
- $L$dec4x_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
- DB 0F3h,0C3h ;repret
- $L$SEH_end_aesni_multi_cbc_decrypt::
- aesni_multi_cbc_decrypt ENDP
- ALIGN 32
- aesni_multi_cbc_encrypt_avx PROC PRIVATE
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
- mov rax,rsp
- $L$SEH_begin_aesni_multi_cbc_encrypt_avx::
- mov rdi,rcx
- mov rsi,rdx
- mov rdx,r8
- _avx_cbc_enc_shortcut::
- mov rax,rsp
- push rbx
- push rbp
- push r12
- push r13
- push r14
- push r15
- lea rsp,QWORD PTR[((-168))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
- movaps XMMWORD PTR[32+rsp],xmm8
- movaps XMMWORD PTR[48+rsp],xmm9
- movaps XMMWORD PTR[64+rsp],xmm10
- movaps XMMWORD PTR[80+rsp],xmm11
- movaps XMMWORD PTR[(-120)+rax],xmm12
- movaps XMMWORD PTR[(-104)+rax],xmm13
- movaps XMMWORD PTR[(-88)+rax],xmm14
- movaps XMMWORD PTR[(-72)+rax],xmm15
- sub rsp,192
- and rsp,-128
- mov QWORD PTR[16+rsp],rax
- $L$enc8x_body::
- vzeroupper
- vmovdqu xmm15,XMMWORD PTR[rsi]
- lea rsi,QWORD PTR[120+rsi]
- lea rdi,QWORD PTR[160+rdi]
- shr edx,1
- $L$enc8x_loop_grande::
- xor edx,edx
- mov ecx,DWORD PTR[((-144))+rdi]
- mov r8,QWORD PTR[((-160))+rdi]
- cmp ecx,edx
- mov rbx,QWORD PTR[((-152))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm2,XMMWORD PTR[((-136))+rdi]
- mov DWORD PTR[32+rsp],ecx
- cmovle r8,rsp
- sub rbx,r8
- mov QWORD PTR[64+rsp],rbx
- mov ecx,DWORD PTR[((-104))+rdi]
- mov r9,QWORD PTR[((-120))+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[((-112))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm3,XMMWORD PTR[((-96))+rdi]
- mov DWORD PTR[36+rsp],ecx
- cmovle r9,rsp
- sub rbp,r9
- mov QWORD PTR[72+rsp],rbp
- mov ecx,DWORD PTR[((-64))+rdi]
- mov r10,QWORD PTR[((-80))+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[((-72))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm4,XMMWORD PTR[((-56))+rdi]
- mov DWORD PTR[40+rsp],ecx
- cmovle r10,rsp
- sub rbp,r10
- mov QWORD PTR[80+rsp],rbp
- mov ecx,DWORD PTR[((-24))+rdi]
- mov r11,QWORD PTR[((-40))+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[((-32))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm5,XMMWORD PTR[((-16))+rdi]
- mov DWORD PTR[44+rsp],ecx
- cmovle r11,rsp
- sub rbp,r11
- mov QWORD PTR[88+rsp],rbp
- mov ecx,DWORD PTR[16+rdi]
- mov r12,QWORD PTR[rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[8+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm6,XMMWORD PTR[24+rdi]
- mov DWORD PTR[48+rsp],ecx
- cmovle r12,rsp
- sub rbp,r12
- mov QWORD PTR[96+rsp],rbp
- mov ecx,DWORD PTR[56+rdi]
- mov r13,QWORD PTR[40+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[48+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm7,XMMWORD PTR[64+rdi]
- mov DWORD PTR[52+rsp],ecx
- cmovle r13,rsp
- sub rbp,r13
- mov QWORD PTR[104+rsp],rbp
- mov ecx,DWORD PTR[96+rdi]
- mov r14,QWORD PTR[80+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[88+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm8,XMMWORD PTR[104+rdi]
- mov DWORD PTR[56+rsp],ecx
- cmovle r14,rsp
- sub rbp,r14
- mov QWORD PTR[112+rsp],rbp
- mov ecx,DWORD PTR[136+rdi]
- mov r15,QWORD PTR[120+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[128+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm9,XMMWORD PTR[144+rdi]
- mov DWORD PTR[60+rsp],ecx
- cmovle r15,rsp
- sub rbp,r15
- mov QWORD PTR[120+rsp],rbp
- test edx,edx
- jz $L$enc8x_done
- vmovups xmm1,XMMWORD PTR[((16-120))+rsi]
- vmovups xmm0,XMMWORD PTR[((32-120))+rsi]
- mov eax,DWORD PTR[((240-120))+rsi]
- vpxor xmm10,xmm15,XMMWORD PTR[r8]
- lea rbp,QWORD PTR[128+rsp]
- vpxor xmm11,xmm15,XMMWORD PTR[r9]
- vpxor xmm12,xmm15,XMMWORD PTR[r10]
- vpxor xmm13,xmm15,XMMWORD PTR[r11]
- vpxor xmm2,xmm2,xmm10
- vpxor xmm10,xmm15,XMMWORD PTR[r12]
- vpxor xmm3,xmm3,xmm11
- vpxor xmm11,xmm15,XMMWORD PTR[r13]
- vpxor xmm4,xmm4,xmm12
- vpxor xmm12,xmm15,XMMWORD PTR[r14]
- vpxor xmm5,xmm5,xmm13
- vpxor xmm13,xmm15,XMMWORD PTR[r15]
- vpxor xmm6,xmm6,xmm10
- mov ecx,1
- vpxor xmm7,xmm7,xmm11
- vpxor xmm8,xmm8,xmm12
- vpxor xmm9,xmm9,xmm13
- jmp $L$oop_enc8x
- ALIGN 32
- $L$oop_enc8x::
- vaesenc xmm2,xmm2,xmm1
- cmp ecx,DWORD PTR[((32+0))+rsp]
- vaesenc xmm3,xmm3,xmm1
- prefetcht0 [31+r8]
- vaesenc xmm4,xmm4,xmm1
- vaesenc xmm5,xmm5,xmm1
- lea rbx,QWORD PTR[rbx*1+r8]
- cmovge r8,rsp
- vaesenc xmm6,xmm6,xmm1
- cmovg rbx,rsp
- vaesenc xmm7,xmm7,xmm1
- sub rbx,r8
- vaesenc xmm8,xmm8,xmm1
- vpxor xmm10,xmm15,XMMWORD PTR[16+r8]
- mov QWORD PTR[((64+0))+rsp],rbx
- vaesenc xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((-72))+rsi]
- lea r8,QWORD PTR[16+rbx*1+r8]
- vmovdqu XMMWORD PTR[rbp],xmm10
- vaesenc xmm2,xmm2,xmm0
- cmp ecx,DWORD PTR[((32+4))+rsp]
- mov rbx,QWORD PTR[((64+8))+rsp]
- vaesenc xmm3,xmm3,xmm0
- prefetcht0 [31+r9]
- vaesenc xmm4,xmm4,xmm0
- vaesenc xmm5,xmm5,xmm0
- lea rbx,QWORD PTR[rbx*1+r9]
- cmovge r9,rsp
- vaesenc xmm6,xmm6,xmm0
- cmovg rbx,rsp
- vaesenc xmm7,xmm7,xmm0
- sub rbx,r9
- vaesenc xmm8,xmm8,xmm0
- vpxor xmm11,xmm15,XMMWORD PTR[16+r9]
- mov QWORD PTR[((64+8))+rsp],rbx
- vaesenc xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((-56))+rsi]
- lea r9,QWORD PTR[16+rbx*1+r9]
- vmovdqu XMMWORD PTR[16+rbp],xmm11
- vaesenc xmm2,xmm2,xmm1
- cmp ecx,DWORD PTR[((32+8))+rsp]
- mov rbx,QWORD PTR[((64+16))+rsp]
- vaesenc xmm3,xmm3,xmm1
- prefetcht0 [31+r10]
- vaesenc xmm4,xmm4,xmm1
- prefetcht0 [15+r8]
- vaesenc xmm5,xmm5,xmm1
- lea rbx,QWORD PTR[rbx*1+r10]
- cmovge r10,rsp
- vaesenc xmm6,xmm6,xmm1
- cmovg rbx,rsp
- vaesenc xmm7,xmm7,xmm1
- sub rbx,r10
- vaesenc xmm8,xmm8,xmm1
- vpxor xmm12,xmm15,XMMWORD PTR[16+r10]
- mov QWORD PTR[((64+16))+rsp],rbx
- vaesenc xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((-40))+rsi]
- lea r10,QWORD PTR[16+rbx*1+r10]
- vmovdqu XMMWORD PTR[32+rbp],xmm12
- vaesenc xmm2,xmm2,xmm0
- cmp ecx,DWORD PTR[((32+12))+rsp]
- mov rbx,QWORD PTR[((64+24))+rsp]
- vaesenc xmm3,xmm3,xmm0
- prefetcht0 [31+r11]
- vaesenc xmm4,xmm4,xmm0
- prefetcht0 [15+r9]
- vaesenc xmm5,xmm5,xmm0
- lea rbx,QWORD PTR[rbx*1+r11]
- cmovge r11,rsp
- vaesenc xmm6,xmm6,xmm0
- cmovg rbx,rsp
- vaesenc xmm7,xmm7,xmm0
- sub rbx,r11
- vaesenc xmm8,xmm8,xmm0
- vpxor xmm13,xmm15,XMMWORD PTR[16+r11]
- mov QWORD PTR[((64+24))+rsp],rbx
- vaesenc xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((-24))+rsi]
- lea r11,QWORD PTR[16+rbx*1+r11]
- vmovdqu XMMWORD PTR[48+rbp],xmm13
- vaesenc xmm2,xmm2,xmm1
- cmp ecx,DWORD PTR[((32+16))+rsp]
- mov rbx,QWORD PTR[((64+32))+rsp]
- vaesenc xmm3,xmm3,xmm1
- prefetcht0 [31+r12]
- vaesenc xmm4,xmm4,xmm1
- prefetcht0 [15+r10]
- vaesenc xmm5,xmm5,xmm1
- lea rbx,QWORD PTR[rbx*1+r12]
- cmovge r12,rsp
- vaesenc xmm6,xmm6,xmm1
- cmovg rbx,rsp
- vaesenc xmm7,xmm7,xmm1
- sub rbx,r12
- vaesenc xmm8,xmm8,xmm1
- vpxor xmm10,xmm15,XMMWORD PTR[16+r12]
- mov QWORD PTR[((64+32))+rsp],rbx
- vaesenc xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((-8))+rsi]
- lea r12,QWORD PTR[16+rbx*1+r12]
- vaesenc xmm2,xmm2,xmm0
- cmp ecx,DWORD PTR[((32+20))+rsp]
- mov rbx,QWORD PTR[((64+40))+rsp]
- vaesenc xmm3,xmm3,xmm0
- prefetcht0 [31+r13]
- vaesenc xmm4,xmm4,xmm0
- prefetcht0 [15+r11]
- vaesenc xmm5,xmm5,xmm0
- lea rbx,QWORD PTR[r13*1+rbx]
- cmovge r13,rsp
- vaesenc xmm6,xmm6,xmm0
- cmovg rbx,rsp
- vaesenc xmm7,xmm7,xmm0
- sub rbx,r13
- vaesenc xmm8,xmm8,xmm0
- vpxor xmm11,xmm15,XMMWORD PTR[16+r13]
- mov QWORD PTR[((64+40))+rsp],rbx
- vaesenc xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[8+rsi]
- lea r13,QWORD PTR[16+rbx*1+r13]
- vaesenc xmm2,xmm2,xmm1
- cmp ecx,DWORD PTR[((32+24))+rsp]
- mov rbx,QWORD PTR[((64+48))+rsp]
- vaesenc xmm3,xmm3,xmm1
- prefetcht0 [31+r14]
- vaesenc xmm4,xmm4,xmm1
- prefetcht0 [15+r12]
- vaesenc xmm5,xmm5,xmm1
- lea rbx,QWORD PTR[rbx*1+r14]
- cmovge r14,rsp
- vaesenc xmm6,xmm6,xmm1
- cmovg rbx,rsp
- vaesenc xmm7,xmm7,xmm1
- sub rbx,r14
- vaesenc xmm8,xmm8,xmm1
- vpxor xmm12,xmm15,XMMWORD PTR[16+r14]
- mov QWORD PTR[((64+48))+rsp],rbx
- vaesenc xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[24+rsi]
- lea r14,QWORD PTR[16+rbx*1+r14]
- vaesenc xmm2,xmm2,xmm0
- cmp ecx,DWORD PTR[((32+28))+rsp]
- mov rbx,QWORD PTR[((64+56))+rsp]
- vaesenc xmm3,xmm3,xmm0
- prefetcht0 [31+r15]
- vaesenc xmm4,xmm4,xmm0
- prefetcht0 [15+r13]
- vaesenc xmm5,xmm5,xmm0
- lea rbx,QWORD PTR[rbx*1+r15]
- cmovge r15,rsp
- vaesenc xmm6,xmm6,xmm0
- cmovg rbx,rsp
- vaesenc xmm7,xmm7,xmm0
- sub rbx,r15
- vaesenc xmm8,xmm8,xmm0
- vpxor xmm13,xmm15,XMMWORD PTR[16+r15]
- mov QWORD PTR[((64+56))+rsp],rbx
- vaesenc xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[40+rsi]
- lea r15,QWORD PTR[16+rbx*1+r15]
- vmovdqu xmm14,XMMWORD PTR[32+rsp]
- prefetcht0 [15+r14]
- prefetcht0 [15+r15]
- cmp eax,11
- jb $L$enc8x_tail
- vaesenc xmm2,xmm2,xmm1
- vaesenc xmm3,xmm3,xmm1
- vaesenc xmm4,xmm4,xmm1
- vaesenc xmm5,xmm5,xmm1
- vaesenc xmm6,xmm6,xmm1
- vaesenc xmm7,xmm7,xmm1
- vaesenc xmm8,xmm8,xmm1
- vaesenc xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((176-120))+rsi]
- vaesenc xmm2,xmm2,xmm0
- vaesenc xmm3,xmm3,xmm0
- vaesenc xmm4,xmm4,xmm0
- vaesenc xmm5,xmm5,xmm0
- vaesenc xmm6,xmm6,xmm0
- vaesenc xmm7,xmm7,xmm0
- vaesenc xmm8,xmm8,xmm0
- vaesenc xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((192-120))+rsi]
- je $L$enc8x_tail
- vaesenc xmm2,xmm2,xmm1
- vaesenc xmm3,xmm3,xmm1
- vaesenc xmm4,xmm4,xmm1
- vaesenc xmm5,xmm5,xmm1
- vaesenc xmm6,xmm6,xmm1
- vaesenc xmm7,xmm7,xmm1
- vaesenc xmm8,xmm8,xmm1
- vaesenc xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((208-120))+rsi]
- vaesenc xmm2,xmm2,xmm0
- vaesenc xmm3,xmm3,xmm0
- vaesenc xmm4,xmm4,xmm0
- vaesenc xmm5,xmm5,xmm0
- vaesenc xmm6,xmm6,xmm0
- vaesenc xmm7,xmm7,xmm0
- vaesenc xmm8,xmm8,xmm0
- vaesenc xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((224-120))+rsi]
- $L$enc8x_tail::
- vaesenc xmm2,xmm2,xmm1
- vpxor xmm15,xmm15,xmm15
- vaesenc xmm3,xmm3,xmm1
- vaesenc xmm4,xmm4,xmm1
- vpcmpgtd xmm15,xmm14,xmm15
- vaesenc xmm5,xmm5,xmm1
- vaesenc xmm6,xmm6,xmm1
- vpaddd xmm15,xmm15,xmm14
- vmovdqu xmm14,XMMWORD PTR[48+rsp]
- vaesenc xmm7,xmm7,xmm1
- mov rbx,QWORD PTR[64+rsp]
- vaesenc xmm8,xmm8,xmm1
- vaesenc xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((16-120))+rsi]
- vaesenclast xmm2,xmm2,xmm0
- vmovdqa XMMWORD PTR[32+rsp],xmm15
- vpxor xmm15,xmm15,xmm15
- vaesenclast xmm3,xmm3,xmm0
- vaesenclast xmm4,xmm4,xmm0
- vpcmpgtd xmm15,xmm14,xmm15
- vaesenclast xmm5,xmm5,xmm0
- vaesenclast xmm6,xmm6,xmm0
- vpaddd xmm14,xmm14,xmm15
- vmovdqu xmm15,XMMWORD PTR[((-120))+rsi]
- vaesenclast xmm7,xmm7,xmm0
- vaesenclast xmm8,xmm8,xmm0
- vmovdqa XMMWORD PTR[48+rsp],xmm14
- vaesenclast xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((32-120))+rsi]
- vmovups XMMWORD PTR[(-16)+r8],xmm2
- sub r8,rbx
- vpxor xmm2,xmm2,XMMWORD PTR[rbp]
- vmovups XMMWORD PTR[(-16)+r9],xmm3
- sub r9,QWORD PTR[72+rsp]
- vpxor xmm3,xmm3,XMMWORD PTR[16+rbp]
- vmovups XMMWORD PTR[(-16)+r10],xmm4
- sub r10,QWORD PTR[80+rsp]
- vpxor xmm4,xmm4,XMMWORD PTR[32+rbp]
- vmovups XMMWORD PTR[(-16)+r11],xmm5
- sub r11,QWORD PTR[88+rsp]
- vpxor xmm5,xmm5,XMMWORD PTR[48+rbp]
- vmovups XMMWORD PTR[(-16)+r12],xmm6
- sub r12,QWORD PTR[96+rsp]
- vpxor xmm6,xmm6,xmm10
- vmovups XMMWORD PTR[(-16)+r13],xmm7
- sub r13,QWORD PTR[104+rsp]
- vpxor xmm7,xmm7,xmm11
- vmovups XMMWORD PTR[(-16)+r14],xmm8
- sub r14,QWORD PTR[112+rsp]
- vpxor xmm8,xmm8,xmm12
- vmovups XMMWORD PTR[(-16)+r15],xmm9
- sub r15,QWORD PTR[120+rsp]
- vpxor xmm9,xmm9,xmm13
- dec edx
- jnz $L$oop_enc8x
- mov rax,QWORD PTR[16+rsp]
- $L$enc8x_done::
- vzeroupper
- movaps xmm6,XMMWORD PTR[((-216))+rax]
- movaps xmm7,XMMWORD PTR[((-200))+rax]
- movaps xmm8,XMMWORD PTR[((-184))+rax]
- movaps xmm9,XMMWORD PTR[((-168))+rax]
- movaps xmm10,XMMWORD PTR[((-152))+rax]
- movaps xmm11,XMMWORD PTR[((-136))+rax]
- movaps xmm12,XMMWORD PTR[((-120))+rax]
- movaps xmm13,XMMWORD PTR[((-104))+rax]
- movaps xmm14,XMMWORD PTR[((-88))+rax]
- movaps xmm15,XMMWORD PTR[((-72))+rax]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
- $L$enc8x_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
- DB 0F3h,0C3h ;repret
- $L$SEH_end_aesni_multi_cbc_encrypt_avx::
- aesni_multi_cbc_encrypt_avx ENDP
- ALIGN 32
- aesni_multi_cbc_decrypt_avx PROC PRIVATE
- mov QWORD PTR[8+rsp],rdi ;WIN64 prologue
- mov QWORD PTR[16+rsp],rsi
- mov rax,rsp
- $L$SEH_begin_aesni_multi_cbc_decrypt_avx::
- mov rdi,rcx
- mov rsi,rdx
- mov rdx,r8
- _avx_cbc_dec_shortcut::
- mov rax,rsp
- push rbx
- push rbp
- push r12
- push r13
- push r14
- push r15
- lea rsp,QWORD PTR[((-168))+rsp]
- movaps XMMWORD PTR[rsp],xmm6
- movaps XMMWORD PTR[16+rsp],xmm7
- movaps XMMWORD PTR[32+rsp],xmm8
- movaps XMMWORD PTR[48+rsp],xmm9
- movaps XMMWORD PTR[64+rsp],xmm10
- movaps XMMWORD PTR[80+rsp],xmm11
- movaps XMMWORD PTR[(-120)+rax],xmm12
- movaps XMMWORD PTR[(-104)+rax],xmm13
- movaps XMMWORD PTR[(-88)+rax],xmm14
- movaps XMMWORD PTR[(-72)+rax],xmm15
- sub rsp,256
- and rsp,-256
- sub rsp,192
- mov QWORD PTR[16+rsp],rax
- $L$dec8x_body::
- vzeroupper
- vmovdqu xmm15,XMMWORD PTR[rsi]
- lea rsi,QWORD PTR[120+rsi]
- lea rdi,QWORD PTR[160+rdi]
- shr edx,1
- $L$dec8x_loop_grande::
- xor edx,edx
- mov ecx,DWORD PTR[((-144))+rdi]
- mov r8,QWORD PTR[((-160))+rdi]
- cmp ecx,edx
- mov rbx,QWORD PTR[((-152))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm2,XMMWORD PTR[((-136))+rdi]
- mov DWORD PTR[32+rsp],ecx
- cmovle r8,rsp
- sub rbx,r8
- mov QWORD PTR[64+rsp],rbx
- vmovdqu XMMWORD PTR[192+rsp],xmm2
- mov ecx,DWORD PTR[((-104))+rdi]
- mov r9,QWORD PTR[((-120))+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[((-112))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm3,XMMWORD PTR[((-96))+rdi]
- mov DWORD PTR[36+rsp],ecx
- cmovle r9,rsp
- sub rbp,r9
- mov QWORD PTR[72+rsp],rbp
- vmovdqu XMMWORD PTR[208+rsp],xmm3
- mov ecx,DWORD PTR[((-64))+rdi]
- mov r10,QWORD PTR[((-80))+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[((-72))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm4,XMMWORD PTR[((-56))+rdi]
- mov DWORD PTR[40+rsp],ecx
- cmovle r10,rsp
- sub rbp,r10
- mov QWORD PTR[80+rsp],rbp
- vmovdqu XMMWORD PTR[224+rsp],xmm4
- mov ecx,DWORD PTR[((-24))+rdi]
- mov r11,QWORD PTR[((-40))+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[((-32))+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm5,XMMWORD PTR[((-16))+rdi]
- mov DWORD PTR[44+rsp],ecx
- cmovle r11,rsp
- sub rbp,r11
- mov QWORD PTR[88+rsp],rbp
- vmovdqu XMMWORD PTR[240+rsp],xmm5
- mov ecx,DWORD PTR[16+rdi]
- mov r12,QWORD PTR[rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[8+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm6,XMMWORD PTR[24+rdi]
- mov DWORD PTR[48+rsp],ecx
- cmovle r12,rsp
- sub rbp,r12
- mov QWORD PTR[96+rsp],rbp
- vmovdqu XMMWORD PTR[256+rsp],xmm6
- mov ecx,DWORD PTR[56+rdi]
- mov r13,QWORD PTR[40+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[48+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm7,XMMWORD PTR[64+rdi]
- mov DWORD PTR[52+rsp],ecx
- cmovle r13,rsp
- sub rbp,r13
- mov QWORD PTR[104+rsp],rbp
- vmovdqu XMMWORD PTR[272+rsp],xmm7
- mov ecx,DWORD PTR[96+rdi]
- mov r14,QWORD PTR[80+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[88+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm8,XMMWORD PTR[104+rdi]
- mov DWORD PTR[56+rsp],ecx
- cmovle r14,rsp
- sub rbp,r14
- mov QWORD PTR[112+rsp],rbp
- vmovdqu XMMWORD PTR[288+rsp],xmm8
- mov ecx,DWORD PTR[136+rdi]
- mov r15,QWORD PTR[120+rdi]
- cmp ecx,edx
- mov rbp,QWORD PTR[128+rdi]
- cmovg edx,ecx
- test ecx,ecx
- vmovdqu xmm9,XMMWORD PTR[144+rdi]
- mov DWORD PTR[60+rsp],ecx
- cmovle r15,rsp
- sub rbp,r15
- mov QWORD PTR[120+rsp],rbp
- vmovdqu XMMWORD PTR[304+rsp],xmm9
- test edx,edx
- jz $L$dec8x_done
- vmovups xmm1,XMMWORD PTR[((16-120))+rsi]
- vmovups xmm0,XMMWORD PTR[((32-120))+rsi]
- mov eax,DWORD PTR[((240-120))+rsi]
- lea rbp,QWORD PTR[((192+128))+rsp]
- vmovdqu xmm2,XMMWORD PTR[r8]
- vmovdqu xmm3,XMMWORD PTR[r9]
- vmovdqu xmm4,XMMWORD PTR[r10]
- vmovdqu xmm5,XMMWORD PTR[r11]
- vmovdqu xmm6,XMMWORD PTR[r12]
- vmovdqu xmm7,XMMWORD PTR[r13]
- vmovdqu xmm8,XMMWORD PTR[r14]
- vmovdqu xmm9,XMMWORD PTR[r15]
- vmovdqu XMMWORD PTR[rbp],xmm2
- vpxor xmm2,xmm2,xmm15
- vmovdqu XMMWORD PTR[16+rbp],xmm3
- vpxor xmm3,xmm3,xmm15
- vmovdqu XMMWORD PTR[32+rbp],xmm4
- vpxor xmm4,xmm4,xmm15
- vmovdqu XMMWORD PTR[48+rbp],xmm5
- vpxor xmm5,xmm5,xmm15
- vmovdqu XMMWORD PTR[64+rbp],xmm6
- vpxor xmm6,xmm6,xmm15
- vmovdqu XMMWORD PTR[80+rbp],xmm7
- vpxor xmm7,xmm7,xmm15
- vmovdqu XMMWORD PTR[96+rbp],xmm8
- vpxor xmm8,xmm8,xmm15
- vmovdqu XMMWORD PTR[112+rbp],xmm9
- vpxor xmm9,xmm9,xmm15
- xor rbp,080h
- mov ecx,1
- jmp $L$oop_dec8x
- ALIGN 32
- $L$oop_dec8x::
- vaesdec xmm2,xmm2,xmm1
- cmp ecx,DWORD PTR[((32+0))+rsp]
- vaesdec xmm3,xmm3,xmm1
- prefetcht0 [31+r8]
- vaesdec xmm4,xmm4,xmm1
- vaesdec xmm5,xmm5,xmm1
- lea rbx,QWORD PTR[rbx*1+r8]
- cmovge r8,rsp
- vaesdec xmm6,xmm6,xmm1
- cmovg rbx,rsp
- vaesdec xmm7,xmm7,xmm1
- sub rbx,r8
- vaesdec xmm8,xmm8,xmm1
- vmovdqu xmm10,XMMWORD PTR[16+r8]
- mov QWORD PTR[((64+0))+rsp],rbx
- vaesdec xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((-72))+rsi]
- lea r8,QWORD PTR[16+rbx*1+r8]
- vmovdqu XMMWORD PTR[128+rsp],xmm10
- vaesdec xmm2,xmm2,xmm0
- cmp ecx,DWORD PTR[((32+4))+rsp]
- mov rbx,QWORD PTR[((64+8))+rsp]
- vaesdec xmm3,xmm3,xmm0
- prefetcht0 [31+r9]
- vaesdec xmm4,xmm4,xmm0
- vaesdec xmm5,xmm5,xmm0
- lea rbx,QWORD PTR[rbx*1+r9]
- cmovge r9,rsp
- vaesdec xmm6,xmm6,xmm0
- cmovg rbx,rsp
- vaesdec xmm7,xmm7,xmm0
- sub rbx,r9
- vaesdec xmm8,xmm8,xmm0
- vmovdqu xmm11,XMMWORD PTR[16+r9]
- mov QWORD PTR[((64+8))+rsp],rbx
- vaesdec xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((-56))+rsi]
- lea r9,QWORD PTR[16+rbx*1+r9]
- vmovdqu XMMWORD PTR[144+rsp],xmm11
- vaesdec xmm2,xmm2,xmm1
- cmp ecx,DWORD PTR[((32+8))+rsp]
- mov rbx,QWORD PTR[((64+16))+rsp]
- vaesdec xmm3,xmm3,xmm1
- prefetcht0 [31+r10]
- vaesdec xmm4,xmm4,xmm1
- prefetcht0 [15+r8]
- vaesdec xmm5,xmm5,xmm1
- lea rbx,QWORD PTR[rbx*1+r10]
- cmovge r10,rsp
- vaesdec xmm6,xmm6,xmm1
- cmovg rbx,rsp
- vaesdec xmm7,xmm7,xmm1
- sub rbx,r10
- vaesdec xmm8,xmm8,xmm1
- vmovdqu xmm12,XMMWORD PTR[16+r10]
- mov QWORD PTR[((64+16))+rsp],rbx
- vaesdec xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((-40))+rsi]
- lea r10,QWORD PTR[16+rbx*1+r10]
- vmovdqu XMMWORD PTR[160+rsp],xmm12
- vaesdec xmm2,xmm2,xmm0
- cmp ecx,DWORD PTR[((32+12))+rsp]
- mov rbx,QWORD PTR[((64+24))+rsp]
- vaesdec xmm3,xmm3,xmm0
- prefetcht0 [31+r11]
- vaesdec xmm4,xmm4,xmm0
- prefetcht0 [15+r9]
- vaesdec xmm5,xmm5,xmm0
- lea rbx,QWORD PTR[rbx*1+r11]
- cmovge r11,rsp
- vaesdec xmm6,xmm6,xmm0
- cmovg rbx,rsp
- vaesdec xmm7,xmm7,xmm0
- sub rbx,r11
- vaesdec xmm8,xmm8,xmm0
- vmovdqu xmm13,XMMWORD PTR[16+r11]
- mov QWORD PTR[((64+24))+rsp],rbx
- vaesdec xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((-24))+rsi]
- lea r11,QWORD PTR[16+rbx*1+r11]
- vmovdqu XMMWORD PTR[176+rsp],xmm13
- vaesdec xmm2,xmm2,xmm1
- cmp ecx,DWORD PTR[((32+16))+rsp]
- mov rbx,QWORD PTR[((64+32))+rsp]
- vaesdec xmm3,xmm3,xmm1
- prefetcht0 [31+r12]
- vaesdec xmm4,xmm4,xmm1
- prefetcht0 [15+r10]
- vaesdec xmm5,xmm5,xmm1
- lea rbx,QWORD PTR[rbx*1+r12]
- cmovge r12,rsp
- vaesdec xmm6,xmm6,xmm1
- cmovg rbx,rsp
- vaesdec xmm7,xmm7,xmm1
- sub rbx,r12
- vaesdec xmm8,xmm8,xmm1
- vmovdqu xmm10,XMMWORD PTR[16+r12]
- mov QWORD PTR[((64+32))+rsp],rbx
- vaesdec xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((-8))+rsi]
- lea r12,QWORD PTR[16+rbx*1+r12]
- vaesdec xmm2,xmm2,xmm0
- cmp ecx,DWORD PTR[((32+20))+rsp]
- mov rbx,QWORD PTR[((64+40))+rsp]
- vaesdec xmm3,xmm3,xmm0
- prefetcht0 [31+r13]
- vaesdec xmm4,xmm4,xmm0
- prefetcht0 [15+r11]
- vaesdec xmm5,xmm5,xmm0
- lea rbx,QWORD PTR[r13*1+rbx]
- cmovge r13,rsp
- vaesdec xmm6,xmm6,xmm0
- cmovg rbx,rsp
- vaesdec xmm7,xmm7,xmm0
- sub rbx,r13
- vaesdec xmm8,xmm8,xmm0
- vmovdqu xmm11,XMMWORD PTR[16+r13]
- mov QWORD PTR[((64+40))+rsp],rbx
- vaesdec xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[8+rsi]
- lea r13,QWORD PTR[16+rbx*1+r13]
- vaesdec xmm2,xmm2,xmm1
- cmp ecx,DWORD PTR[((32+24))+rsp]
- mov rbx,QWORD PTR[((64+48))+rsp]
- vaesdec xmm3,xmm3,xmm1
- prefetcht0 [31+r14]
- vaesdec xmm4,xmm4,xmm1
- prefetcht0 [15+r12]
- vaesdec xmm5,xmm5,xmm1
- lea rbx,QWORD PTR[rbx*1+r14]
- cmovge r14,rsp
- vaesdec xmm6,xmm6,xmm1
- cmovg rbx,rsp
- vaesdec xmm7,xmm7,xmm1
- sub rbx,r14
- vaesdec xmm8,xmm8,xmm1
- vmovdqu xmm12,XMMWORD PTR[16+r14]
- mov QWORD PTR[((64+48))+rsp],rbx
- vaesdec xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[24+rsi]
- lea r14,QWORD PTR[16+rbx*1+r14]
- vaesdec xmm2,xmm2,xmm0
- cmp ecx,DWORD PTR[((32+28))+rsp]
- mov rbx,QWORD PTR[((64+56))+rsp]
- vaesdec xmm3,xmm3,xmm0
- prefetcht0 [31+r15]
- vaesdec xmm4,xmm4,xmm0
- prefetcht0 [15+r13]
- vaesdec xmm5,xmm5,xmm0
- lea rbx,QWORD PTR[rbx*1+r15]
- cmovge r15,rsp
- vaesdec xmm6,xmm6,xmm0
- cmovg rbx,rsp
- vaesdec xmm7,xmm7,xmm0
- sub rbx,r15
- vaesdec xmm8,xmm8,xmm0
- vmovdqu xmm13,XMMWORD PTR[16+r15]
- mov QWORD PTR[((64+56))+rsp],rbx
- vaesdec xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[40+rsi]
- lea r15,QWORD PTR[16+rbx*1+r15]
- vmovdqu xmm14,XMMWORD PTR[32+rsp]
- prefetcht0 [15+r14]
- prefetcht0 [15+r15]
- cmp eax,11
- jb $L$dec8x_tail
- vaesdec xmm2,xmm2,xmm1
- vaesdec xmm3,xmm3,xmm1
- vaesdec xmm4,xmm4,xmm1
- vaesdec xmm5,xmm5,xmm1
- vaesdec xmm6,xmm6,xmm1
- vaesdec xmm7,xmm7,xmm1
- vaesdec xmm8,xmm8,xmm1
- vaesdec xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((176-120))+rsi]
- vaesdec xmm2,xmm2,xmm0
- vaesdec xmm3,xmm3,xmm0
- vaesdec xmm4,xmm4,xmm0
- vaesdec xmm5,xmm5,xmm0
- vaesdec xmm6,xmm6,xmm0
- vaesdec xmm7,xmm7,xmm0
- vaesdec xmm8,xmm8,xmm0
- vaesdec xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((192-120))+rsi]
- je $L$dec8x_tail
- vaesdec xmm2,xmm2,xmm1
- vaesdec xmm3,xmm3,xmm1
- vaesdec xmm4,xmm4,xmm1
- vaesdec xmm5,xmm5,xmm1
- vaesdec xmm6,xmm6,xmm1
- vaesdec xmm7,xmm7,xmm1
- vaesdec xmm8,xmm8,xmm1
- vaesdec xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((208-120))+rsi]
- vaesdec xmm2,xmm2,xmm0
- vaesdec xmm3,xmm3,xmm0
- vaesdec xmm4,xmm4,xmm0
- vaesdec xmm5,xmm5,xmm0
- vaesdec xmm6,xmm6,xmm0
- vaesdec xmm7,xmm7,xmm0
- vaesdec xmm8,xmm8,xmm0
- vaesdec xmm9,xmm9,xmm0
- vmovups xmm0,XMMWORD PTR[((224-120))+rsi]
- $L$dec8x_tail::
- vaesdec xmm2,xmm2,xmm1
- vpxor xmm15,xmm15,xmm15
- vaesdec xmm3,xmm3,xmm1
- vaesdec xmm4,xmm4,xmm1
- vpcmpgtd xmm15,xmm14,xmm15
- vaesdec xmm5,xmm5,xmm1
- vaesdec xmm6,xmm6,xmm1
- vpaddd xmm15,xmm15,xmm14
- vmovdqu xmm14,XMMWORD PTR[48+rsp]
- vaesdec xmm7,xmm7,xmm1
- mov rbx,QWORD PTR[64+rsp]
- vaesdec xmm8,xmm8,xmm1
- vaesdec xmm9,xmm9,xmm1
- vmovups xmm1,XMMWORD PTR[((16-120))+rsi]
- vaesdeclast xmm2,xmm2,xmm0
- vmovdqa XMMWORD PTR[32+rsp],xmm15
- vpxor xmm15,xmm15,xmm15
- vaesdeclast xmm3,xmm3,xmm0
- vpxor xmm2,xmm2,XMMWORD PTR[rbp]
- vaesdeclast xmm4,xmm4,xmm0
- vpxor xmm3,xmm3,XMMWORD PTR[16+rbp]
- vpcmpgtd xmm15,xmm14,xmm15
- vaesdeclast xmm5,xmm5,xmm0
- vpxor xmm4,xmm4,XMMWORD PTR[32+rbp]
- vaesdeclast xmm6,xmm6,xmm0
- vpxor xmm5,xmm5,XMMWORD PTR[48+rbp]
- vpaddd xmm14,xmm14,xmm15
- vmovdqu xmm15,XMMWORD PTR[((-120))+rsi]
- vaesdeclast xmm7,xmm7,xmm0
- vpxor xmm6,xmm6,XMMWORD PTR[64+rbp]
- vaesdeclast xmm8,xmm8,xmm0
- vpxor xmm7,xmm7,XMMWORD PTR[80+rbp]
- vmovdqa XMMWORD PTR[48+rsp],xmm14
- vaesdeclast xmm9,xmm9,xmm0
- vpxor xmm8,xmm8,XMMWORD PTR[96+rbp]
- vmovups xmm0,XMMWORD PTR[((32-120))+rsi]
- vmovups XMMWORD PTR[(-16)+r8],xmm2
- sub r8,rbx
- vmovdqu xmm2,XMMWORD PTR[((128+0))+rsp]
- vpxor xmm9,xmm9,XMMWORD PTR[112+rbp]
- vmovups XMMWORD PTR[(-16)+r9],xmm3
- sub r9,QWORD PTR[72+rsp]
- vmovdqu XMMWORD PTR[rbp],xmm2
- vpxor xmm2,xmm2,xmm15
- vmovdqu xmm3,XMMWORD PTR[((128+16))+rsp]
- vmovups XMMWORD PTR[(-16)+r10],xmm4
- sub r10,QWORD PTR[80+rsp]
- vmovdqu XMMWORD PTR[16+rbp],xmm3
- vpxor xmm3,xmm3,xmm15
- vmovdqu xmm4,XMMWORD PTR[((128+32))+rsp]
- vmovups XMMWORD PTR[(-16)+r11],xmm5
- sub r11,QWORD PTR[88+rsp]
- vmovdqu XMMWORD PTR[32+rbp],xmm4
- vpxor xmm4,xmm4,xmm15
- vmovdqu xmm5,XMMWORD PTR[((128+48))+rsp]
- vmovups XMMWORD PTR[(-16)+r12],xmm6
- sub r12,QWORD PTR[96+rsp]
- vmovdqu XMMWORD PTR[48+rbp],xmm5
- vpxor xmm5,xmm5,xmm15
- vmovdqu XMMWORD PTR[64+rbp],xmm10
- vpxor xmm6,xmm15,xmm10
- vmovups XMMWORD PTR[(-16)+r13],xmm7
- sub r13,QWORD PTR[104+rsp]
- vmovdqu XMMWORD PTR[80+rbp],xmm11
- vpxor xmm7,xmm15,xmm11
- vmovups XMMWORD PTR[(-16)+r14],xmm8
- sub r14,QWORD PTR[112+rsp]
- vmovdqu XMMWORD PTR[96+rbp],xmm12
- vpxor xmm8,xmm15,xmm12
- vmovups XMMWORD PTR[(-16)+r15],xmm9
- sub r15,QWORD PTR[120+rsp]
- vmovdqu XMMWORD PTR[112+rbp],xmm13
- vpxor xmm9,xmm15,xmm13
- xor rbp,128
- dec edx
- jnz $L$oop_dec8x
- mov rax,QWORD PTR[16+rsp]
- $L$dec8x_done::
- vzeroupper
- movaps xmm6,XMMWORD PTR[((-216))+rax]
- movaps xmm7,XMMWORD PTR[((-200))+rax]
- movaps xmm8,XMMWORD PTR[((-184))+rax]
- movaps xmm9,XMMWORD PTR[((-168))+rax]
- movaps xmm10,XMMWORD PTR[((-152))+rax]
- movaps xmm11,XMMWORD PTR[((-136))+rax]
- movaps xmm12,XMMWORD PTR[((-120))+rax]
- movaps xmm13,XMMWORD PTR[((-104))+rax]
- movaps xmm14,XMMWORD PTR[((-88))+rax]
- movaps xmm15,XMMWORD PTR[((-72))+rax]
- mov r15,QWORD PTR[((-48))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- lea rsp,QWORD PTR[rax]
- $L$dec8x_epilogue::
- mov rdi,QWORD PTR[8+rsp] ;WIN64 epilogue
- mov rsi,QWORD PTR[16+rsp]
- DB 0F3h,0C3h ;repret
- $L$SEH_end_aesni_multi_cbc_decrypt_avx::
- aesni_multi_cbc_decrypt_avx ENDP
- EXTERN __imp_RtlVirtualUnwind:NEAR
- ALIGN 16
- se_handler PROC PRIVATE
- push rsi
- push rdi
- push rbx
- push rbp
- push r12
- push r13
- push r14
- push r15
- pushfq
- sub rsp,64
- mov rax,QWORD PTR[120+r8]
- mov rbx,QWORD PTR[248+r8]
- mov rsi,QWORD PTR[8+r9]
- mov r11,QWORD PTR[56+r9]
- mov r10d,DWORD PTR[r11]
- lea r10,QWORD PTR[r10*1+rsi]
- cmp rbx,r10
- jb $L$in_prologue
- mov rax,QWORD PTR[152+r8]
- mov r10d,DWORD PTR[4+r11]
- lea r10,QWORD PTR[r10*1+rsi]
- cmp rbx,r10
- jae $L$in_prologue
- mov rax,QWORD PTR[16+rax]
- mov rbx,QWORD PTR[((-8))+rax]
- mov rbp,QWORD PTR[((-16))+rax]
- mov r12,QWORD PTR[((-24))+rax]
- mov r13,QWORD PTR[((-32))+rax]
- mov r14,QWORD PTR[((-40))+rax]
- mov r15,QWORD PTR[((-48))+rax]
- mov QWORD PTR[144+r8],rbx
- mov QWORD PTR[160+r8],rbp
- mov QWORD PTR[216+r8],r12
- mov QWORD PTR[224+r8],r13
- mov QWORD PTR[232+r8],r14
- mov QWORD PTR[240+r8],r15
- lea rsi,QWORD PTR[((-56-160))+rax]
- lea rdi,QWORD PTR[512+r8]
- mov ecx,20
- DD 0a548f3fch
- $L$in_prologue::
- mov rdi,QWORD PTR[8+rax]
- mov rsi,QWORD PTR[16+rax]
- mov QWORD PTR[152+r8],rax
- mov QWORD PTR[168+r8],rsi
- mov QWORD PTR[176+r8],rdi
- mov rdi,QWORD PTR[40+r9]
- mov rsi,r8
- mov ecx,154
- DD 0a548f3fch
- mov rsi,r9
- xor rcx,rcx
- mov rdx,QWORD PTR[8+rsi]
- mov r8,QWORD PTR[rsi]
- mov r9,QWORD PTR[16+rsi]
- mov r10,QWORD PTR[40+rsi]
- lea r11,QWORD PTR[56+rsi]
- lea r12,QWORD PTR[24+rsi]
- mov QWORD PTR[32+rsp],r10
- mov QWORD PTR[40+rsp],r11
- mov QWORD PTR[48+rsp],r12
- mov QWORD PTR[56+rsp],rcx
- call QWORD PTR[__imp_RtlVirtualUnwind]
- mov eax,1
- add rsp,64
- popfq
- pop r15
- pop r14
- pop r13
- pop r12
- pop rbp
- pop rbx
- pop rdi
- pop rsi
- DB 0F3h,0C3h ;repret
- se_handler ENDP
- .text$ ENDS
- .pdata SEGMENT READONLY ALIGN(4)
- ALIGN 4
- DD imagerel $L$SEH_begin_aesni_multi_cbc_encrypt
- DD imagerel $L$SEH_end_aesni_multi_cbc_encrypt
- DD imagerel $L$SEH_info_aesni_multi_cbc_encrypt
- DD imagerel $L$SEH_begin_aesni_multi_cbc_decrypt
- DD imagerel $L$SEH_end_aesni_multi_cbc_decrypt
- DD imagerel $L$SEH_info_aesni_multi_cbc_decrypt
- DD imagerel $L$SEH_begin_aesni_multi_cbc_encrypt_avx
- DD imagerel $L$SEH_end_aesni_multi_cbc_encrypt_avx
- DD imagerel $L$SEH_info_aesni_multi_cbc_encrypt_avx
- DD imagerel $L$SEH_begin_aesni_multi_cbc_decrypt_avx
- DD imagerel $L$SEH_end_aesni_multi_cbc_decrypt_avx
- DD imagerel $L$SEH_info_aesni_multi_cbc_decrypt_avx
- .pdata ENDS
- .xdata SEGMENT READONLY ALIGN(8)
- ALIGN 8
- $L$SEH_info_aesni_multi_cbc_encrypt::
- DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$enc4x_body,imagerel $L$enc4x_epilogue
- $L$SEH_info_aesni_multi_cbc_decrypt::
- DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$dec4x_body,imagerel $L$dec4x_epilogue
- $L$SEH_info_aesni_multi_cbc_encrypt_avx::
- DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$enc8x_body,imagerel $L$enc8x_epilogue
- $L$SEH_info_aesni_multi_cbc_decrypt_avx::
- DB 9,0,0,0
- DD imagerel se_handler
- DD imagerel $L$dec8x_body,imagerel $L$dec8x_epilogue
- .xdata ENDS
- END
|