From 88f17a5e989b1ba64a9ea3b1cc80eaef2aa266f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bodo=20M=C3=B6ller?= Date: Mon, 13 Mar 2000 08:04:20 +0000 Subject: Remove Win32 assembler files. They are always rebuilt (with some choice of parameters) when they are needed. --- crypto/cast/asm/c-win32.asm | 953 -------------------------------------------- 1 file changed, 953 deletions(-) delete mode 100644 crypto/cast/asm/c-win32.asm (limited to 'crypto/cast/asm') diff --git a/crypto/cast/asm/c-win32.asm b/crypto/cast/asm/c-win32.asm deleted file mode 100644 index ba78a3c69c..0000000000 --- a/crypto/cast/asm/c-win32.asm +++ /dev/null @@ -1,953 +0,0 @@ - ; Don't even think of reading this code - ; It was automatically generated by cast-586.pl - ; Which is a perl program used to generate the x86 assember for - ; any of elf, a.out, BSDI,Win32, or Solaris - ; eric - ; - TITLE cast-586.asm - .486 -.model FLAT -_TEXT SEGMENT -PUBLIC _CAST_encrypt -EXTERN _CAST_S_table0:DWORD -EXTERN _CAST_S_table1:DWORD -EXTERN _CAST_S_table2:DWORD -EXTERN _CAST_S_table3:DWORD - -_CAST_encrypt PROC NEAR - ; - push ebp - push ebx - mov ebx, DWORD PTR 12[esp] - mov ebp, DWORD PTR 16[esp] - push esi - push edi - ; Load the 2 words - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - ; Get short key flag - mov eax, DWORD PTR 128[ebp] - push eax - xor eax, eax - ; round 0 - mov edx, DWORD PTR [ebp] - mov ecx, DWORD PTR 4[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 1 - mov edx, DWORD PTR 8[ebp] - mov ecx, DWORD PTR 12[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 2 - mov edx, DWORD PTR 16[ebp] - mov ecx, DWORD PTR 20[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 3 - mov edx, DWORD PTR 24[ebp] - mov ecx, DWORD PTR 28[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx - ; round 4 - mov edx, DWORD PTR 32[ebp] - mov ecx, DWORD PTR 36[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 5 - mov edx, DWORD PTR 40[ebp] - mov ecx, DWORD PTR 44[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; round 6 - mov edx, DWORD PTR 48[ebp] - mov ecx, DWORD PTR 52[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 7 - mov edx, DWORD PTR 56[ebp] - mov ecx, DWORD PTR 60[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 8 - mov edx, DWORD PTR 64[ebp] - mov ecx, DWORD PTR 68[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 9 - mov edx, DWORD PTR 72[ebp] - mov ecx, DWORD PTR 76[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx - ; round 10 - mov edx, DWORD PTR 80[ebp] - mov ecx, DWORD PTR 84[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 11 - mov edx, DWORD PTR 88[ebp] - mov ecx, DWORD PTR 92[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; test short key flag - pop edx - or edx, edx - jnz $L000cast_enc_done - ; round 12 - mov edx, DWORD PTR 96[ebp] - mov ecx, DWORD PTR 100[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 13 - mov edx, DWORD PTR 104[ebp] - mov ecx, DWORD PTR 108[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 14 - mov edx, DWORD PTR 112[ebp] - mov ecx, DWORD PTR 116[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 15 - mov edx, DWORD PTR 120[ebp] - mov ecx, DWORD PTR 124[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx -$L000cast_enc_done: - nop - mov eax, DWORD PTR 20[esp] - mov DWORD PTR 4[eax],edi - mov DWORD PTR [eax],esi - pop edi - pop esi - pop ebx - pop ebp - ret -_CAST_encrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _CAST_decrypt -EXTERN _CAST_S_table0:DWORD -EXTERN _CAST_S_table1:DWORD -EXTERN _CAST_S_table2:DWORD -EXTERN _CAST_S_table3:DWORD - -_CAST_decrypt PROC NEAR - ; - push ebp - push ebx - mov ebx, DWORD PTR 12[esp] - mov ebp, DWORD PTR 16[esp] - push esi - push edi - ; Load the 2 words - mov edi, DWORD PTR [ebx] - mov esi, DWORD PTR 4[ebx] - ; Get short key flag - mov eax, DWORD PTR 128[ebp] - or eax, eax - jnz $L001cast_dec_skip - xor eax, eax - ; round 15 - mov edx, DWORD PTR 120[ebp] - mov ecx, DWORD PTR 124[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 14 - mov edx, DWORD PTR 112[ebp] - mov ecx, DWORD PTR 116[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; round 13 - mov edx, DWORD PTR 104[ebp] - mov ecx, DWORD PTR 108[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 12 - mov edx, DWORD PTR 96[ebp] - mov ecx, DWORD PTR 100[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx -$L001cast_dec_skip: - ; round 11 - mov edx, DWORD PTR 88[ebp] - mov ecx, DWORD PTR 92[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 10 - mov edx, DWORD PTR 80[ebp] - mov ecx, DWORD PTR 84[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 9 - mov edx, DWORD PTR 72[ebp] - mov ecx, DWORD PTR 76[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 8 - mov edx, DWORD PTR 64[ebp] - mov ecx, DWORD PTR 68[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; round 7 - mov edx, DWORD PTR 56[ebp] - mov ecx, DWORD PTR 60[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 6 - mov edx, DWORD PTR 48[ebp] - mov ecx, DWORD PTR 52[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx - ; round 5 - mov edx, DWORD PTR 40[ebp] - mov ecx, DWORD PTR 44[ebp] - sub edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor edi, ecx - ; round 4 - mov edx, DWORD PTR 32[ebp] - mov ecx, DWORD PTR 36[ebp] - xor edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor esi, ecx - ; round 3 - mov edx, DWORD PTR 24[ebp] - mov ecx, DWORD PTR 28[ebp] - add edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor edi, ecx - ; round 2 - mov edx, DWORD PTR 16[ebp] - mov ecx, DWORD PTR 20[ebp] - sub edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - sub ecx, ebx - xor esi, ecx - ; round 1 - mov edx, DWORD PTR 8[ebp] - mov ecx, DWORD PTR 12[ebp] - xor edx, esi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - add ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - xor ecx, ebx - xor edi, ecx - ; round 0 - mov edx, DWORD PTR [ebp] - mov ecx, DWORD PTR 4[ebp] - add edx, edi - rol edx, cl - mov ebx, edx - xor ecx, ecx - mov cl, dh - and ebx, 255 - shr edx, 16 - xor eax, eax - mov al, dh - and edx, 255 - mov ecx, DWORD PTR _CAST_S_table0[ecx*4] - mov ebx, DWORD PTR _CAST_S_table1[ebx*4] - xor ecx, ebx - mov ebx, DWORD PTR _CAST_S_table2[eax*4] - sub ecx, ebx - mov ebx, DWORD PTR _CAST_S_table3[edx*4] - add ecx, ebx - xor esi, ecx - nop - mov eax, DWORD PTR 20[esp] - mov DWORD PTR 4[eax],edi - mov DWORD PTR [eax],esi - pop edi - pop esi - pop ebx - pop ebp - ret -_CAST_decrypt ENDP -_TEXT ENDS -_TEXT SEGMENT -PUBLIC _CAST_cbc_encrypt - -_CAST_cbc_encrypt PROC NEAR - ; - push ebp - push ebx - push esi - push edi - mov ebp, DWORD PTR 28[esp] - ; getting iv ptr from parameter 4 - mov ebx, DWORD PTR 36[esp] - mov esi, DWORD PTR [ebx] - mov edi, DWORD PTR 4[ebx] - push edi - push esi - push edi - push esi - mov ebx, esp - mov esi, DWORD PTR 36[esp] - mov edi, DWORD PTR 40[esp] - ; getting encrypt flag from parameter 5 - mov ecx, DWORD PTR 56[esp] - ; get and push parameter 3 - mov eax, DWORD PTR 48[esp] - push eax - push ebx - cmp ecx, 0 - jz $L002decrypt - and ebp, 4294967288 - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - jz $L003encrypt_finish -L004encrypt_loop: - mov ecx, DWORD PTR [esi] - mov edx, DWORD PTR 4[esi] - xor eax, ecx - xor ebx, edx - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _CAST_encrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L004encrypt_loop -$L003encrypt_finish: - mov ebp, DWORD PTR 52[esp] - and ebp, 7 - jz $L005finish - xor ecx, ecx - xor edx, edx - mov ebp, DWORD PTR $L006cbc_enc_jmp_table[ebp*4] - jmp ebp -L007ej7: - xor edx, edx - mov dh, BYTE PTR 6[esi] - shl edx, 8 -L008ej6: - mov dh, BYTE PTR 5[esi] -L009ej5: - mov dl, BYTE PTR 4[esi] -L010ej4: - mov ecx, DWORD PTR [esi] - jmp $L011ejend -L012ej3: - mov ch, BYTE PTR 2[esi] - xor ecx, ecx - shl ecx, 8 -L013ej2: - mov ch, BYTE PTR 1[esi] -L014ej1: - mov cl, BYTE PTR [esi] -$L011ejend: - xor eax, ecx - xor ebx, edx - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _CAST_encrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov DWORD PTR [edi],eax - mov DWORD PTR 4[edi],ebx - jmp $L005finish -$L002decrypt: - and ebp, 4294967288 - mov eax, DWORD PTR 16[esp] - mov ebx, DWORD PTR 20[esp] - jz $L015decrypt_finish -L016decrypt_loop: - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _CAST_decrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov ecx, DWORD PTR 16[esp] - mov edx, DWORD PTR 20[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - mov DWORD PTR [edi],ecx - mov DWORD PTR 4[edi],edx - mov DWORD PTR 16[esp],eax - mov DWORD PTR 20[esp],ebx - add esi, 8 - add edi, 8 - sub ebp, 8 - jnz L016decrypt_loop -$L015decrypt_finish: - mov ebp, DWORD PTR 52[esp] - and ebp, 7 - jz $L005finish - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] - bswap eax - bswap ebx - mov DWORD PTR 8[esp],eax - mov DWORD PTR 12[esp],ebx - call _CAST_decrypt - mov eax, DWORD PTR 8[esp] - mov ebx, DWORD PTR 12[esp] - bswap eax - bswap ebx - mov ecx, DWORD PTR 16[esp] - mov edx, DWORD PTR 20[esp] - xor ecx, eax - xor edx, ebx - mov eax, DWORD PTR [esi] - mov ebx, DWORD PTR 4[esi] -L017dj7: - ror edx, 16 - mov BYTE PTR 6[edi],dl - shr edx, 16 -L018dj6: - mov BYTE PTR 5[edi],dh -L019dj5: - mov BYTE PTR 4[edi],dl -L020dj4: - mov DWORD PTR [edi],ecx - jmp $L021djend -L022dj3: - ror ecx, 16 - mov BYTE PTR 2[edi],cl - shl ecx, 16 -L023dj2: - mov BYTE PTR 1[esi],ch -L024dj1: - mov BYTE PTR [esi], cl -$L021djend: - jmp $L005finish -$L005finish: - mov ecx, DWORD PTR 60[esp] - add esp, 24 - mov DWORD PTR [ecx],eax - mov DWORD PTR 4[ecx],ebx - pop edi - pop esi - pop ebx - pop ebp - ret -$L006cbc_enc_jmp_table: - DD 0 - DD L014ej1 - DD L013ej2 - DD L012ej3 - DD L010ej4 - DD L009ej5 - DD L008ej6 - DD L007ej7 -L025cbc_dec_jmp_table: - DD 0 - DD L024dj1 - DD L023dj2 - DD L022dj3 - DD L020dj4 - DD L019dj5 - DD L018dj6 - DD L017dj7 -_CAST_cbc_encrypt ENDP -_TEXT ENDS -END -- cgit v1.2.3