Обсуждения событий в Украине (БФ) - Part 15

ЭКСКЛЮЗИВ! Медик хунты испытывает отравляющее вещество на бабушке. ;)

Br4ZxL6IMAAYWxy.jpg
 
Уважаю Макаревича, Шевчука...
Хутин пуйло!!!!
 
Ну.. сейчас уже поздно.. кровь пролилась.
Да, Аннушка, блять, таки снова разлила масло. И теперь вя эта хуйня будет мотать нам нервы ещё долго, а сколько наших люде погибнет - и всё из-за галимых пидоров, орущих "расияспаси".
 
какие в Харькове от неё последствия?
Никаких?
Ну.. если не считать людей с пробитыми во время беспорядков черепами.. если не считать денег, потраченых на ремонт зданий.. если не считать средств, которые тратятся из городского боджета на поддержание порядка.. если не считать людей, которые теряют работу (на том же Барабане, к примеру).. то никаких.

А если не учитывать того, что стране после войны ещё много лет восстанавливаться, то вообще всё замечательно.

Главное- в окно не смотреть. И чтобы еду в щёлочку под дверью просовывали.
Тогда вот такие вопросы можно регулярно задавать.
 
Это всё сейчас про сторонников ДНР вместе с ХНРами и прочими эРами?
Я уверен, что они точно также объясняют свои действия.

Выход есть всегда. И выход без убийств.

В Польше была революция? В Венгрии? Формально была. Но это не та революция, которой потом надо искать оправдание в ленинском стиле "Верхи не могут, низы не хотят".
А у нас что ни революция- море кровищи и такое же море оправданий.

В какой то мере. Просто там воспользовались давними причинами + добавили шор.А дальше только подстегивай. Вот они и помчались, свято поверив, что они правее всех на свете. Ошиблись. Но причины то были. Ну вот представьте ходил себе работяга на завод, пил в меру, воровал как и вся страна, ну может чуть меньше. Везде слышал - Рабочий класс это круто. И тут вдруг - иди гуляй. Ему бы ноги в руки да уезжать, так нет семья дом Да и окружение такое же. А как так может чтобы все кого он знал и неправы? Не может. Значит нужно найти врага. Нашли ....
 
Предатель Украины Царёв говорит сволочь спасибо русским за ополченцев.И вся ёбань шо там собралась как всегда несёт хуйню.Иногда нужно и эту хуету посмотреть,врага надо знать из нутри.

На такую херню иногда натыкаюсь по твц (эту гадость по кабельному не отключили).
Соглашусь что врага нужно знать. Но долго такое невозможно слушать.
 
Sbox = array{
0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76,
0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0,
0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15,
0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75,
0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84,
0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf,
0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8,
0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2,
0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73,
0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb,
0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79,
0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08,
0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a,
0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e,
0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf,
0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16

Шо ты мне рыжендалями тут пихаешь. На тебе RC6 на асме.

Код:
.686 
.model flat,stdcall 
option casemap:none 
 
RC6Init       PROTO :DWORD,:DWORD 
RC6Encrypt    PROTO :DWORD,:DWORD 
RC6Decrypt    PROTO :DWORD,:DWORD 
 
.const 
RC6ROUNDS equ 20 
RC6KR equ ((RC6ROUNDS+2)*2) 
RC6_P equ 0B7E15163h 
RC6_Q equ 09E3779B9h 
 
.data? 
RC6_KEY dd RC6KR dup(?) 
 
.code 
 
; uses ecx 
RC6SETUP macro A,B,kEy,_L 
	add A,B 
	add A,kEy 
	rol A,3 
	lea ecx,[A+B] 
	mov kEy,A 
	add B,A 
	add B,_L 
	rol B,cl 
	mov _L,B 
endm 
 
RC6Init proc pKey:DWORD,dwKeyLen:DWORD 
LOCAL RC6L[8]:dword 
LOCAL SaveEsi,SaveEdi,SaveEbx 
 	shr dwKeyLen,2 
    mov SaveEsi,esi 
    mov SaveEdi,edi 
    mov SaveEbx,ebx 
 	xor edx,edx 
	mov eax,pKey 
	.repeat 
		mov ecx,[eax][edx*4][0*4] 
		mov ebx,[eax][edx*4][1*4] 
		mov RC6L[edx*4][0*4],ecx 
		mov RC6L[edx*4][1*4],ebx 
		add edx,2	 
	.until edx >= dwKeyLen 
    mov eax,RC6_P 
    xor edx,edx 
    mov edi,offset RC6_KEY 
	mov ecx,RC6_P+RC6_Q 
    .repeat 
	    mov [edi][edx*4][0*4],eax 
	    mov [edi][edx*4][1*4],ecx 
		add edx,2 
		lea eax,[ecx+RC6_Q] 
		cmp edx,RC6KR 
		lea ecx,[eax+RC6_Q]	 
    .until zero? 
	xor eax,eax 
	xor ebx,ebx 
	xor edx,edx 
	xor edi,edi 
	xor esi,esi 
	.repeat 
		RC6SETUP eax,ebx,RC6_KEY[edi*4][0*4],RC6L[esi*4][0*4] 
		RC6SETUP eax,ebx,RC6_KEY[edi*4][1*4],RC6L[esi*4][1*4] 
		add edx,2 
		add edi,2 
		add esi,2 
		cmp edi,RC6KR 
		sbb ecx,ecx 
		and edi,ecx 
		cmp esi,dwKeyLen 
		sbb ecx,ecx 
		and esi,ecx 
	.until edx >= RC6KR*3 
    mov eax,offset RC6_KEY 
    mov esi,SaveEsi 
    mov edi,SaveEdi 
    mov ebx,SaveEbx 
	ret 
RC6Init endp 
 
OPTION PROLOGUE:NONE 
OPTION EPILOGUE:NONE 
 
RC6ENCRND macro _I,_A,_B,_C,_D 
	lea eax,[_B+_B+1] 
	lea ecx,[_D+_D+1] 
	imul eax,_B 
	imul ecx,_D 
	rol eax,5 
	rol ecx,5 
	xor _A,eax 
	xor _C,ecx 
	rol _A,cl 
	mov cl,al 
	rol _C,cl 
	add _A,RC6_KEY[_I*4+0*4] 
	add _C,RC6_KEY[_I*4+1*4] 
endm 
 
RC6Encrypt proc pPlainText:DWORD,pCipherText:DWORD 
	push ebp 
	push esi 
	push edi 
	push ebx 
	mov eax,[esp][1*4][4*4];pPlainText 
	mov esi,[eax][0*4] 
	mov ebx,[eax][1*4] 
	mov edi,[eax][2*4] 
	mov ebp,[eax][3*4] 
	add ebx,RC6_KEY[0*4] 
	add ebp,RC6_KEY[1*4] 
    RC6ENCRND 02,esi,ebx,edi,ebp 
    RC6ENCRND 04,ebx,edi,ebp,esi 
    RC6ENCRND 06,edi,ebp,esi,ebx 
    RC6ENCRND 08,ebp,esi,ebx,edi 
    RC6ENCRND 10,esi,ebx,edi,ebp 
    RC6ENCRND 12,ebx,edi,ebp,esi 
    RC6ENCRND 14,edi,ebp,esi,ebx 
    RC6ENCRND 16,ebp,esi,ebx,edi 
    RC6ENCRND 18,esi,ebx,edi,ebp 
    RC6ENCRND 20,ebx,edi,ebp,esi 
    RC6ENCRND 22,edi,ebp,esi,ebx 
    RC6ENCRND 24,ebp,esi,ebx,edi 
    RC6ENCRND 26,esi,ebx,edi,ebp 
    RC6ENCRND 28,ebx,edi,ebp,esi 
    RC6ENCRND 30,edi,ebp,esi,ebx 
    RC6ENCRND 32,ebp,esi,ebx,edi 
    RC6ENCRND 34,esi,ebx,edi,ebp 
    RC6ENCRND 36,ebx,edi,ebp,esi 
    RC6ENCRND 38,edi,ebp,esi,ebx 
    RC6ENCRND 40,ebp,esi,ebx,edi 
	mov eax,[esp][2*4][4*4];pCipherText 
	add esi,RC6_KEY[42*4] 
	add edi,RC6_KEY[43*4] 
	mov [eax][0*4],esi 
	mov [eax][1*4],ebx 
	mov [eax][2*4],edi 
	mov [eax][3*4],ebp 
	pop ebx 
	pop edi 
	pop esi 
	pop ebp 
	ret 2*4 
RC6Encrypt endp 
 
RC6DECRND macro  _I,_A,_B,_C,_D 
	sub _C,RC6_KEY[_I*4+1*4] 
	lea eax,[_D+_D+1] 
	sub _A,RC6_KEY[_I*4+0*4] 
	lea edx,[_B+_B+1] 
	imul eax,_D 
	imul edx,_B 
	rol eax,5 
	rol edx,5 
	mov cl,dl 
	ror _C,cl 
	mov cl,al 
	ror _A,cl 
	xor _C,eax 
	xor _A,edx 
endm 
 
RC6Decrypt proc pCipherText:DWORD,pPlainText:DWORD 
	push ebp 
	push esi 
	push edi 
	push ebx 
	mov edx,[esp][1*4][4*4];pCipherText 
	mov esi,[edx][0*4] 
	mov ebx,[edx][1*4] 
	mov edi,[edx][2*4] 
	mov ebp,[edx][3*4] 
	sub esi,RC6_KEY[42*4] 
	sub edi,RC6_KEY[43*4] 
	RC6DECRND 40,ebp,esi,ebx,edi 
	RC6DECRND 38,edi,ebp,esi,ebx 
	RC6DECRND 36,ebx,edi,ebp,esi 
	RC6DECRND 34,esi,ebx,edi,ebp 
	RC6DECRND 32,ebp,esi,ebx,edi 
	RC6DECRND 30,edi,ebp,esi,ebx 
	RC6DECRND 28,ebx,edi,ebp,esi 
	RC6DECRND 26,esi,ebx,edi,ebp 
	RC6DECRND 24,ebp,esi,ebx,edi 
	RC6DECRND 22,edi,ebp,esi,ebx 
	RC6DECRND 20,ebx,edi,ebp,esi 
	RC6DECRND 18,esi,ebx,edi,ebp 
	RC6DECRND 16,ebp,esi,ebx,edi 
	RC6DECRND 14,edi,ebp,esi,ebx 
	RC6DECRND 12,ebx,edi,ebp,esi 
	RC6DECRND 10,esi,ebx,edi,ebp 
	RC6DECRND 08,ebp,esi,ebx,edi 
	RC6DECRND 06,edi,ebp,esi,ebx 
	RC6DECRND 04,ebx,edi,ebp,esi 
	RC6DECRND 02,esi,ebx,edi,ebp 
	mov edx,[esp][2*4][4*4];pPlainText 
	sub ebp,RC6_KEY[1*4] 
	sub ebx,RC6_KEY[0*4] 
	mov [edx][0*4],esi 
	mov [edx][1*4],ebx 
	mov [edx][2*4],edi 
	mov [edx][3*4],ebp 
	pop ebx 
	pop edi 
	pop esi 
	pop ebp 
	ret 2*4 
RC6Decrypt endp 
 
OPTION PROLOGUE:PROLOGUEDEF 
OPTION EPILOGUE:EPILOGUEDEF 
 
end
 
Спер с форума Славянска:
Итак, здравствуй ПО, на связи спецкор Макеевка-кун. Как и обещал запилю небольшую простыню. Ко мне седня приехал старинный друг ***, который состоит в НОД забирал свои вещи. Настроение у него было не очень. Насколько я понял, назревает ЗРАДА. Постараюсь все обрисовать вкратце:

*1. Неделю назад был серьезный конфликт, его отделение заблокировало разведку укров, запросили подмогу, но вместо этого с ними связался "Кречет" (правая рука Стрелка) и приказал сделать коридор разведке. Делать нечего бойцы подчинились, а когда укры выходили, на прощанье дали залп из подствольников по нодовцам (у отделения 2-200). Когда те вернулись устроили разборку, дело дошло до выстрелов, еле замяли, но осадок остался.

*2) Славянск покидали в спешке, Кирюха возмущался, что пришлось оставить почти все боеприпасы, охуенные укрепления, бросили все птрк, почти все пзрк, 8 зушек (из 12), почти все боеприпасы к стрелковке, все ящики с гранатами. Оставили даже склад с сухпаем и мало того на днях к ним привезли 4 газельки с новыми брониками (в них кстати большой недостаток (в его отделении было всего 2, хотя они на самом передовом рубеже), тепловизоры, коллиматоры, аптечки,лазерные дальномеры, бинокли ночные, гпс защищенная связь все досталось украм.

Но и это еще не все... Кум Кирюхи главмех, в его ведении бронетехника и транспортные средства. На состояние 3-4 июля у нода было 18 танков (вместе с памятниками), около 30 бмп-бтр-брдм-бмд и 12 зушек. Танки проебали ВСЕ: вывезли только один, но он походу не добрался донецка. Арьергард укры раздолбали из артиллерии (танк, несколько бмп и брдм)+ накрыли в броню, которая должна была отвлечь укров, но ее бездарно просрали вместе с экипажами, ИС кстати сломался почти сразу когда его стащили с памятника, бросили его во дворе рембазы под навесом, бмд, бтр и брдм раздолбали в поле. Накрыли газель со снайперами-спецами из Империи. 4 танка бросили во дворе там же остались 2 ноны из 4. Одна в состоянии металлолома, одна с разбитым шасси, но ее вроде подлатали (хотя толку с остальных немного), почти все мины бросили. Зато вместо эвакуации раненых и боеприпасов, нагрузили 3 камаза рефрижератора с прицепами барахлом из дома штепы и сына Азарова: картины, антиквар и еще что-то. *Кстати Мозговой очень зол на Стрелка, так как тот проебал 3 танка 2 бмп и бмд, который Мозговой ему передал. Проебались кстати и ИМР. (в кол-ве 1 исправная штука)

*Итак выезжали 2 колонны и одна по полям: арьергард и та что по полям рас***асило (там была броня и немного легковых). На основную колонну не упал ни один снаряд, 2 штурмовика сопровождали их до горловки, там оставили роту, забрали людей и 1бмп. Всего из Славянска и Крамахи выехало больше 1000 человек, не считая 2 роты прикрытия (они почти сразу посдавались-расбежались). До Донецка добралось меньше 700 (рота в Горловке) + почти вся проебанная броня и боеприпасы. У Стрелковцев осталось точно: 1-2 брдм, 3бмп, 3бмд, 2ноны, 2-3 бтр, 1тягач с зу 1 танк( но его никто е видел, по ходу сломался по дороге), 3 грузовика с ЗУ), 2 града из 4 (забрали из Крамахи). Ополченцы недовольны, в спешке или специально оставили "кассу" (многие не доверяют картам и предпочитают нал). Стрелку дали 5 дней чтобы найти деньги. Мозговой теперь с ним не в ладах из -за проеба брони и опасности его позиций (+ он просил птуры, что привезли из Империи недавно, но Стрелок не дал почему то). В итоге все досталось воякам. На ополченца осталось всего по паре боекомплектов. (3 боекомплекта на "ноны").

3) По приезду из примерно 700 бойцов, часть поехала в Макеевку, часть скрылась в неизвестном направлении (скорее всего Луганск-Краснодон, а где то 300-400 осела в Донецке в СБУ и захваченной ВЧ, надеялись пополнить боекомплект и людей в "Востоке", но там послали на***. У Востока завались патронов, но нет мин, минометов, птуров-пзрк. Из техники: 7бтр-брдм (часть неисправна) и 5 зушек с ограниченым боекомплектом, нет мин лля минирования и хреновая структура управления. Помимо группы стрелка в Донецке около 1200 бойцов Востока, РПА, Оплота и прочих, причем у все отношения весьма напряженные. Стрелку тут не рады. Скоро должны подойти группа Торез-снежное их вроде сильно потрепало и они тоже недовольны, что стрелков просрал часть их брони. В Горловке ( где до утра и был Стрелков) осталось около 300 +100 стрелка бойцов Беса (он тоже недавно понес потери авиация попала в их лагерь и взорвала склад боеприпасов). Во вторник будет большой сход полевых командиров в Донецке, подробности не знаю, но

Макевка-кун на связи. Как и обещал позвонил нодовцу, немножко поговорили задал ему пару вопросов от политачеров бочку он не делает. Короче:
1) Гиркину дали 5 дней чтоб найти деньги на зарплату, пока деньги не получат, будут сидеть на жопе и никуда не лезть.
2) Вчера в Донецке пытались взять аэропорт, участвовали необучаемые РПА и восток, проебали людей, танк и камаз с зу. Главный из Снежного (а танк оттуда пообещал прищемить яйца тому, кто послал его ебашить туда прямой наводкой. Теперь у снежного осталось 0 танков, будут просить у луганска, но у них всего 4 и один в краснодоне, а в очереди еще Мозговой, который отдал свои Гиркину зря конечно
3) Сейчас в Донецке пытаются договориться с тюремщиками, сдать им стволы, те идут в отказ.
4) Назревает ЗРАДА. Ходаковский реально свалил, о "Востоке" и РПА, нодовец отзывался очень презрительно, дескать тупые позеры. Им хронически не везет, вступили с разведдозором в огневой контакт под Донецком, рассчитывали на легкую победу, подтянули резервы, а укры их всех накрыли артиллерией и ушли без потерь. Из РПА уехали сегодня снайперы наемники, сказали что с дебилами работать не будут, и з/п недовольны.
4. У гиркина осталось 2 подчиненных командира из 8: Моторолла (он кстати и передал Гиркину заявку отряда на бабло) и Кречет. Остальные слиняли.
5. Ждали, большой подкреп, запчасти, полезный груз, но их слили на границе и накрыли артой.
6. Северодонецк прислал немного людей в Луганск, оттуда потихоньку будут валить.
7. По савур работала арта, явязи с ними нет. В между снежным и торезом были РДГ укров, вроде засады на колонны делали. Кстати, ополченцы неприятно удивлены, укры начали задействовать спецуру, причем последние используют интересную тактику, косят под ополченцев и делают засады и расстреливают блоки.

Пока все, с уважением Макеевка-кун
 
Шо ты мне рыжендалями тут пихаешь. На тебе RC6 на асме.

Код:
.686 
.model flat,stdcall 
option casemap:none 
 
RC6Init       PROTO :DWORD,:DWORD 
RC6Encrypt    PROTO :DWORD,:DWORD 
RC6Decrypt    PROTO :DWORD,:DWORD 
 
.const 
RC6ROUNDS equ 20 
RC6KR equ ((RC6ROUNDS+2)*2) 
RC6_P equ 0B7E15163h 
RC6_Q equ 09E3779B9h 
 
.data? 
RC6_KEY dd RC6KR dup(?) 
 
.code 
 
; uses ecx 
RC6SETUP macro A,B,kEy,_L 
	add A,B 
	add A,kEy 
	rol A,3 
	lea ecx,[A+B] 
	mov kEy,A 
	add B,A 
	add B,_L 
	rol B,cl 
	mov _L,B 
endm 
 
RC6Init proc pKey:DWORD,dwKeyLen:DWORD 
LOCAL RC6L[8]:dword 
LOCAL SaveEsi,SaveEdi,SaveEbx 
 	shr dwKeyLen,2 
    mov SaveEsi,esi 
    mov SaveEdi,edi 
    mov SaveEbx,ebx 
 	xor edx,edx 
	mov eax,pKey 
	.repeat 
		mov ecx,[eax][edx*4][0*4] 
		mov ebx,[eax][edx*4][1*4] 
		mov RC6L[edx*4][0*4],ecx 
		mov RC6L[edx*4][1*4],ebx 
		add edx,2	 
	.until edx >= dwKeyLen 
    mov eax,RC6_P 
    xor edx,edx 
    mov edi,offset RC6_KEY 
	mov ecx,RC6_P+RC6_Q 
    .repeat 
	    mov [edi][edx*4][0*4],eax 
	    mov [edi][edx*4][1*4],ecx 
		add edx,2 
		lea eax,[ecx+RC6_Q] 
		cmp edx,RC6KR 
		lea ecx,[eax+RC6_Q]	 
    .until zero? 
	xor eax,eax 
	xor ebx,ebx 
	xor edx,edx 
	xor edi,edi 
	xor esi,esi 
	.repeat 
		RC6SETUP eax,ebx,RC6_KEY[edi*4][0*4],RC6L[esi*4][0*4] 
		RC6SETUP eax,ebx,RC6_KEY[edi*4][1*4],RC6L[esi*4][1*4] 
		add edx,2 
		add edi,2 
		add esi,2 
		cmp edi,RC6KR 
		sbb ecx,ecx 
		and edi,ecx 
		cmp esi,dwKeyLen 
		sbb ecx,ecx 
		and esi,ecx 
	.until edx >= RC6KR*3 
    mov eax,offset RC6_KEY 
    mov esi,SaveEsi 
    mov edi,SaveEdi 
    mov ebx,SaveEbx 
	ret 
RC6Init endp 
 
OPTION PROLOGUE:NONE 
OPTION EPILOGUE:NONE 
 
RC6ENCRND macro _I,_A,_B,_C,_D 
	lea eax,[_B+_B+1] 
	lea ecx,[_D+_D+1] 
	imul eax,_B 
	imul ecx,_D 
	rol eax,5 
	rol ecx,5 
	xor _A,eax 
	xor _C,ecx 
	rol _A,cl 
	mov cl,al 
	rol _C,cl 
	add _A,RC6_KEY[_I*4+0*4] 
	add _C,RC6_KEY[_I*4+1*4] 
endm 
 
RC6Encrypt proc pPlainText:DWORD,pCipherText:DWORD 
	push ebp 
	push esi 
	push edi 
	push ebx 
	mov eax,[esp][1*4][4*4];pPlainText 
	mov esi,[eax][0*4] 
	mov ebx,[eax][1*4] 
	mov edi,[eax][2*4] 
	mov ebp,[eax][3*4] 
	add ebx,RC6_KEY[0*4] 
	add ebp,RC6_KEY[1*4] 
    RC6ENCRND 02,esi,ebx,edi,ebp 
    RC6ENCRND 04,ebx,edi,ebp,esi 
    RC6ENCRND 06,edi,ebp,esi,ebx 
    RC6ENCRND 08,ebp,esi,ebx,edi 
    RC6ENCRND 10,esi,ebx,edi,ebp 
    RC6ENCRND 12,ebx,edi,ebp,esi 
    RC6ENCRND 14,edi,ebp,esi,ebx 
    RC6ENCRND 16,ebp,esi,ebx,edi 
    RC6ENCRND 18,esi,ebx,edi,ebp 
    RC6ENCRND 20,ebx,edi,ebp,esi 
    RC6ENCRND 22,edi,ebp,esi,ebx 
    RC6ENCRND 24,ebp,esi,ebx,edi 
    RC6ENCRND 26,esi,ebx,edi,ebp 
    RC6ENCRND 28,ebx,edi,ebp,esi 
    RC6ENCRND 30,edi,ebp,esi,ebx 
    RC6ENCRND 32,ebp,esi,ebx,edi 
    RC6ENCRND 34,esi,ebx,edi,ebp 
    RC6ENCRND 36,ebx,edi,ebp,esi 
    RC6ENCRND 38,edi,ebp,esi,ebx 
    RC6ENCRND 40,ebp,esi,ebx,edi 
	mov eax,[esp][2*4][4*4];pCipherText 
	add esi,RC6_KEY[42*4] 
	add edi,RC6_KEY[43*4] 
	mov [eax][0*4],esi 
	mov [eax][1*4],ebx 
	mov [eax][2*4],edi 
	mov [eax][3*4],ebp 
	pop ebx 
	pop edi 
	pop esi 
	pop ebp 
	ret 2*4 
RC6Encrypt endp 
 
RC6DECRND macro  _I,_A,_B,_C,_D 
	sub _C,RC6_KEY[_I*4+1*4] 
	lea eax,[_D+_D+1] 
	sub _A,RC6_KEY[_I*4+0*4] 
	lea edx,[_B+_B+1] 
	imul eax,_D 
	imul edx,_B 
	rol eax,5 
	rol edx,5 
	mov cl,dl 
	ror _C,cl 
	mov cl,al 
	ror _A,cl 
	xor _C,eax 
	xor _A,edx 
endm 
 
RC6Decrypt proc pCipherText:DWORD,pPlainText:DWORD 
	push ebp 
	push esi 
	push edi 
	push ebx 
	mov edx,[esp][1*4][4*4];pCipherText 
	mov esi,[edx][0*4] 
	mov ebx,[edx][1*4] 
	mov edi,[edx][2*4] 
	mov ebp,[edx][3*4] 
	sub esi,RC6_KEY[42*4] 
	sub edi,RC6_KEY[43*4] 
	RC6DECRND 40,ebp,esi,ebx,edi 
	RC6DECRND 38,edi,ebp,esi,ebx 
	RC6DECRND 36,ebx,edi,ebp,esi 
	RC6DECRND 34,esi,ebx,edi,ebp 
	RC6DECRND 32,ebp,esi,ebx,edi 
	RC6DECRND 30,edi,ebp,esi,ebx 
	RC6DECRND 28,ebx,edi,ebp,esi 
	RC6DECRND 26,esi,ebx,edi,ebp 
	RC6DECRND 24,ebp,esi,ebx,edi 
	RC6DECRND 22,edi,ebp,esi,ebx 
	RC6DECRND 20,ebx,edi,ebp,esi 
	RC6DECRND 18,esi,ebx,edi,ebp 
	RC6DECRND 16,ebp,esi,ebx,edi 
	RC6DECRND 14,edi,ebp,esi,ebx 
	RC6DECRND 12,ebx,edi,ebp,esi 
	RC6DECRND 10,esi,ebx,edi,ebp 
	RC6DECRND 08,ebp,esi,ebx,edi 
	RC6DECRND 06,edi,ebp,esi,ebx 
	RC6DECRND 04,ebx,edi,ebp,esi 
	RC6DECRND 02,esi,ebx,edi,ebp 
	mov edx,[esp][2*4][4*4];pPlainText 
	sub ebp,RC6_KEY[1*4] 
	sub ebx,RC6_KEY[0*4] 
	mov [edx][0*4],esi 
	mov [edx][1*4],ebx 
	mov [edx][2*4],edi 
	mov [edx][3*4],ebp 
	pop ebx 
	pop edi 
	pop esi 
	pop ebp 
	ret 2*4 
RC6Decrypt endp 
 
OPTION PROLOGUE:PROLOGUEDEF 
OPTION EPILOGUE:EPILOGUEDEF 
 
end

;; RC6.ASM -- Implementation of RC6 in MASM


;; P2 533MHz
;; -----------------------------------------
;; RC6Init: 1463 cycles
;; RC6Encrypt: 248 cycles
;; RC6Decrypt: 226 cycles
;; -----------------------------------------

.686
.model flat,stdcall
option casemap:none

RC6Init PROTO :DWORD,:DWORD
RC6Encrypt PROTO :DWORD,:DWORD
RC6Decrypt PROTO :DWORD,:DWORD

.const
RC6ROUNDS equ 20
RC6KR equ ((RC6ROUNDS+2)*2)
RC6_P equ 0B7E15163h
RC6_Q equ 09E3779B9h

.data?
RC6_KEY dd RC6KR dup(?)

.code

; uses ecx
RC6SETUP macro A,B,kEy,_L
add A,B
add A,kEy
rol A,3
lea ecx,[A+B]
mov kEy,A
add B,A
add B,_L
rol B,cl
mov _L,B
endm

RC6Init proc pKey:DWORD,dwKeyLen:DWORD
LOCAL RC6L[8]:dword
LOCAL SaveEsi,SaveEdi,SaveEbx
shr dwKeyLen,2
mov SaveEsi,esi
mov SaveEdi,edi
mov SaveEbx,ebx
xor edx,edx
mov eax,pKey
.repeat
mov ecx,[eax][edx*4][0*4]
mov ebx,[eax][edx*4][1*4]
mov RC6L[edx*4][0*4],ecx
mov RC6L[edx*4][1*4],ebx
add edx,2
.until edx >= dwKeyLen
mov eax,RC6_P
xor edx,edx
mov edi,offset RC6_KEY
mov ecx,RC6_P+RC6_Q
.repeat
mov [edi][edx*4][0*4],eax
mov [edi][edx*4][1*4],ecx
add edx,2
lea eax,[ecx+RC6_Q]
cmp edx,RC6KR
lea ecx,[eax+RC6_Q]
.until zero?
xor eax,eax
xor ebx,ebx
xor edx,edx
xor edi,edi
xor esi,esi
.repeat
RC6SETUP eax,ebx,RC6_KEY[edi*4][0*4],RC6L[esi*4][0*4]
RC6SETUP eax,ebx,RC6_KEY[edi*4][1*4],RC6L[esi*4][1*4]
add edx,2
add edi,2
add esi,2
cmp edi,RC6KR
sbb ecx,ecx
and edi,ecx
cmp esi,dwKeyLen
sbb ecx,ecx
and esi,ecx
.until edx >= RC6KR*3
mov eax,offset RC6_KEY
mov esi,SaveEsi
mov edi,SaveEdi
mov ebx,SaveEbx
ret
RC6Init endp

OPTION PROLOGUE:NONE
OPTION EPILOGUE:NONE

RC6ENCRND macro _I,_A,_B,_C,_D
lea eax,[_B+_B+1]
lea ecx,[_D+_D+1]
imul eax,_B
imul ecx,_D
rol eax,5
rol ecx,5
xor _A,eax
xor _C,ecx
rol _A,cl
mov cl,al
rol _C,cl
add _A,RC6_KEY[_I*4+0*4]
add _C,RC6_KEY[_I*4+1*4]
endm

RC6Encrypt proc pPlainText:DWORD,pCipherText:DWORD
push ebp
push esi
push edi
push ebx
mov eax,[esp][1*4][4*4];pPlainText
mov esi,[eax][0*4]
mov ebx,[eax][1*4]
mov edi,[eax][2*4]
mov ebp,[eax][3*4]
add ebx,RC6_KEY[0*4]
add ebp,RC6_KEY[1*4]
RC6ENCRND 02,esi,ebx,edi,ebp
RC6ENCRND 04,ebx,edi,ebp,esi
RC6ENCRND 06,edi,ebp,esi,ebx
RC6ENCRND 08,ebp,esi,ebx,edi
RC6ENCRND 10,esi,ebx,edi,ebp
RC6ENCRND 12,ebx,edi,ebp,esi
RC6ENCRND 14,edi,ebp,esi,ebx
RC6ENCRND 16,ebp,esi,ebx,edi
RC6ENCRND 18,esi,ebx,edi,ebp
RC6ENCRND 20,ebx,edi,ebp,esi
RC6ENCRND 22,edi,ebp,esi,ebx
RC6ENCRND 24,ebp,esi,ebx,edi
RC6ENCRND 26,esi,ebx,edi,ebp
RC6ENCRND 28,ebx,edi,ebp,esi
RC6ENCRND 30,edi,ebp,esi,ebx
RC6ENCRND 32,ebp,esi,ebx,edi
RC6ENCRND 34,esi,ebx,edi,ebp
RC6ENCRND 36,ebx,edi,ebp,esi
RC6ENCRND 38,edi,ebp,esi,ebx
RC6ENCRND 40,ebp,esi,ebx,edi
mov eax,[esp][2*4][4*4];pCipherText
add esi,RC6_KEY[42*4]
add edi,RC6_KEY[43*4]
mov [eax][0*4],esi
mov [eax][1*4],ebx
mov [eax][2*4],edi
mov [eax][3*4],ebp
pop ebx
pop edi
pop esi
pop ebp
ret 2*4
RC6Encrypt endp

RC6DECRND macro _I,_A,_B,_C,_D
sub _C,RC6_KEY[_I*4+1*4]
lea eax,[_D+_D+1]
sub _A,RC6_KEY[_I*4+0*4]
lea edx,[_B+_B+1]
imul eax,_D
imul edx,_B
rol eax,5
rol edx,5
mov cl,dl
ror _C,cl
mov cl,al
ror _A,cl
xor _C,eax
xor _A,edx
endm

RC6Decrypt proc pCipherText:DWORD,pPlainText:DWORD
push ebp
push esi
push edi
push ebx
mov edx,[esp][1*4][4*4];pCipherText
mov esi,[edx][0*4]
mov ebx,[edx][1*4]
mov edi,[edx][2*4]
mov ebp,[edx][3*4]
sub esi,RC6_KEY[42*4]
sub edi,RC6_KEY[43*4]
RC6DECRND 40,ebp,esi,ebx,edi
RC6DECRND 38,edi,ebp,esi,ebx
RC6DECRND 36,ebx,edi,ebp,esi
RC6DECRND 34,esi,ebx,edi,ebp
RC6DECRND 32,ebp,esi,ebx,edi
RC6DECRND 30,edi,ebp,esi,ebx
RC6DECRND 28,ebx,edi,ebp,esi
RC6DECRND 26,esi,ebx,edi,ebp
RC6DECRND 24,ebp,esi,ebx,edi
RC6DECRND 22,edi,ebp,esi,ebx
RC6DECRND 20,ebx,edi,ebp,esi
RC6DECRND 18,esi,ebx,edi,ebp
RC6DECRND 16,ebp,esi,ebx,edi
RC6DECRND 14,edi,ebp,esi,ebx
RC6DECRND 12,ebx,edi,ebp,esi
RC6DECRND 10,esi,ebx,edi,ebp
RC6DECRND 08,ebp,esi,ebx,edi
RC6DECRND 06,edi,ebp,esi,ebx
RC6DECRND 04,ebx,edi,ebp,esi
RC6DECRND 02,esi,ebx,edi,ebp
mov edx,[esp][2*4][4*4];pPlainText
sub ebp,RC6_KEY[1*4]
sub ebx,RC6_KEY[0*4]
mov [edx][0*4],esi
mov [edx][1*4],ebx
mov [edx][2*4],edi
mov [edx][3*4],ebp
pop ebx
pop edi
pop esi
pop ebp
ret 2*4
RC6Decrypt endp

OPTION PROLOGUE:PROLOGUEDEF
OPTION EPILOGUE:EPILOGUEDEF

end:D
 
Назад
Зверху Знизу