bf-686.s revision 95967
195967Speter # $FreeBSD: head/secure/lib/libcrypto/i386/bf-686.s 95967 2002-05-03 00:14:39Z peter $ 295967Speter # Dont even think of reading this code 395967Speter # It was automatically generated by bf-686.pl 495967Speter # Which is a perl program used to generate the x86 assember for 595967Speter # any of elf, a.out, BSDI, Win32, gaswin (for GNU as on Win32) or Solaris 695967Speter # eric <eay@cryptsoft.com> 795967Speter 895967Speter .file "bf-686.s" 995967Speter .version "01.01" 1095967Spetergcc2_compiled.: 1195967Speter.text 1295967Speter .align 16 1395967Speter.globl BF_encrypt 1495967Speter .type BF_encrypt,@function 1595967SpeterBF_encrypt: 1695967Speter pushl %ebp 1795967Speter pushl %ebx 1895967Speter pushl %esi 1995967Speter pushl %edi 2095967Speter 2195967Speter 2295967Speter # Load the 2 words 2395967Speter movl 20(%esp), %eax 2495967Speter movl (%eax), %ecx 2595967Speter movl 4(%eax), %edx 2695967Speter 2795967Speter # P pointer, s and enc flag 2895967Speter movl 24(%esp), %edi 2995967Speter xorl %eax, %eax 3095967Speter xorl %ebx, %ebx 3195967Speter xorl (%edi), %ecx 3295967Speter 3395967Speter # Round 0 3495967Speter rorl $16, %ecx 3595967Speter movl 4(%edi), %esi 3695967Speter movb %ch, %al 3795967Speter movb %cl, %bl 3895967Speter rorl $16, %ecx 3995967Speter xorl %esi, %edx 4095967Speter movl 72(%edi,%eax,4),%esi 4195967Speter movl 1096(%edi,%ebx,4),%ebp 4295967Speter movb %ch, %al 4395967Speter movb %cl, %bl 4495967Speter addl %ebp, %esi 4595967Speter movl 2120(%edi,%eax,4),%eax 4695967Speter xorl %eax, %esi 4795967Speter movl 3144(%edi,%ebx,4),%ebp 4895967Speter addl %ebp, %esi 4995967Speter xorl %eax, %eax 5095967Speter xorl %esi, %edx 5195967Speter 5295967Speter # Round 1 5395967Speter rorl $16, %edx 5495967Speter movl 8(%edi), %esi 5595967Speter movb %dh, %al 5695967Speter movb %dl, %bl 5795967Speter rorl $16, %edx 5895967Speter xorl %esi, %ecx 5995967Speter movl 72(%edi,%eax,4),%esi 6095967Speter movl 1096(%edi,%ebx,4),%ebp 6195967Speter movb %dh, %al 6295967Speter movb %dl, %bl 6395967Speter addl %ebp, %esi 6495967Speter movl 2120(%edi,%eax,4),%eax 6595967Speter xorl %eax, %esi 6695967Speter movl 3144(%edi,%ebx,4),%ebp 6795967Speter addl %ebp, %esi 6895967Speter xorl %eax, %eax 6995967Speter xorl %esi, %ecx 7095967Speter 7195967Speter # Round 2 7295967Speter rorl $16, %ecx 7395967Speter movl 12(%edi), %esi 7495967Speter movb %ch, %al 7595967Speter movb %cl, %bl 7695967Speter rorl $16, %ecx 7795967Speter xorl %esi, %edx 7895967Speter movl 72(%edi,%eax,4),%esi 7995967Speter movl 1096(%edi,%ebx,4),%ebp 8095967Speter movb %ch, %al 8195967Speter movb %cl, %bl 8295967Speter addl %ebp, %esi 8395967Speter movl 2120(%edi,%eax,4),%eax 8495967Speter xorl %eax, %esi 8595967Speter movl 3144(%edi,%ebx,4),%ebp 8695967Speter addl %ebp, %esi 8795967Speter xorl %eax, %eax 8895967Speter xorl %esi, %edx 8995967Speter 9095967Speter # Round 3 9195967Speter rorl $16, %edx 9295967Speter movl 16(%edi), %esi 9395967Speter movb %dh, %al 9495967Speter movb %dl, %bl 9595967Speter rorl $16, %edx 9695967Speter xorl %esi, %ecx 9795967Speter movl 72(%edi,%eax,4),%esi 9895967Speter movl 1096(%edi,%ebx,4),%ebp 9995967Speter movb %dh, %al 10095967Speter movb %dl, %bl 10195967Speter addl %ebp, %esi 10295967Speter movl 2120(%edi,%eax,4),%eax 10395967Speter xorl %eax, %esi 10495967Speter movl 3144(%edi,%ebx,4),%ebp 10595967Speter addl %ebp, %esi 10695967Speter xorl %eax, %eax 10795967Speter xorl %esi, %ecx 10895967Speter 10995967Speter # Round 4 11095967Speter rorl $16, %ecx 11195967Speter movl 20(%edi), %esi 11295967Speter movb %ch, %al 11395967Speter movb %cl, %bl 11495967Speter rorl $16, %ecx 11595967Speter xorl %esi, %edx 11695967Speter movl 72(%edi,%eax,4),%esi 11795967Speter movl 1096(%edi,%ebx,4),%ebp 11895967Speter movb %ch, %al 11995967Speter movb %cl, %bl 12095967Speter addl %ebp, %esi 12195967Speter movl 2120(%edi,%eax,4),%eax 12295967Speter xorl %eax, %esi 12395967Speter movl 3144(%edi,%ebx,4),%ebp 12495967Speter addl %ebp, %esi 12595967Speter xorl %eax, %eax 12695967Speter xorl %esi, %edx 12795967Speter 12895967Speter # Round 5 12995967Speter rorl $16, %edx 13095967Speter movl 24(%edi), %esi 13195967Speter movb %dh, %al 13295967Speter movb %dl, %bl 13395967Speter rorl $16, %edx 13495967Speter xorl %esi, %ecx 13595967Speter movl 72(%edi,%eax,4),%esi 13695967Speter movl 1096(%edi,%ebx,4),%ebp 13795967Speter movb %dh, %al 13895967Speter movb %dl, %bl 13995967Speter addl %ebp, %esi 14095967Speter movl 2120(%edi,%eax,4),%eax 14195967Speter xorl %eax, %esi 14295967Speter movl 3144(%edi,%ebx,4),%ebp 14395967Speter addl %ebp, %esi 14495967Speter xorl %eax, %eax 14595967Speter xorl %esi, %ecx 14695967Speter 14795967Speter # Round 6 14895967Speter rorl $16, %ecx 14995967Speter movl 28(%edi), %esi 15095967Speter movb %ch, %al 15195967Speter movb %cl, %bl 15295967Speter rorl $16, %ecx 15395967Speter xorl %esi, %edx 15495967Speter movl 72(%edi,%eax,4),%esi 15595967Speter movl 1096(%edi,%ebx,4),%ebp 15695967Speter movb %ch, %al 15795967Speter movb %cl, %bl 15895967Speter addl %ebp, %esi 15995967Speter movl 2120(%edi,%eax,4),%eax 16095967Speter xorl %eax, %esi 16195967Speter movl 3144(%edi,%ebx,4),%ebp 16295967Speter addl %ebp, %esi 16395967Speter xorl %eax, %eax 16495967Speter xorl %esi, %edx 16595967Speter 16695967Speter # Round 7 16795967Speter rorl $16, %edx 16895967Speter movl 32(%edi), %esi 16995967Speter movb %dh, %al 17095967Speter movb %dl, %bl 17195967Speter rorl $16, %edx 17295967Speter xorl %esi, %ecx 17395967Speter movl 72(%edi,%eax,4),%esi 17495967Speter movl 1096(%edi,%ebx,4),%ebp 17595967Speter movb %dh, %al 17695967Speter movb %dl, %bl 17795967Speter addl %ebp, %esi 17895967Speter movl 2120(%edi,%eax,4),%eax 17995967Speter xorl %eax, %esi 18095967Speter movl 3144(%edi,%ebx,4),%ebp 18195967Speter addl %ebp, %esi 18295967Speter xorl %eax, %eax 18395967Speter xorl %esi, %ecx 18495967Speter 18595967Speter # Round 8 18695967Speter rorl $16, %ecx 18795967Speter movl 36(%edi), %esi 18895967Speter movb %ch, %al 18995967Speter movb %cl, %bl 19095967Speter rorl $16, %ecx 19195967Speter xorl %esi, %edx 19295967Speter movl 72(%edi,%eax,4),%esi 19395967Speter movl 1096(%edi,%ebx,4),%ebp 19495967Speter movb %ch, %al 19595967Speter movb %cl, %bl 19695967Speter addl %ebp, %esi 19795967Speter movl 2120(%edi,%eax,4),%eax 19895967Speter xorl %eax, %esi 19995967Speter movl 3144(%edi,%ebx,4),%ebp 20095967Speter addl %ebp, %esi 20195967Speter xorl %eax, %eax 20295967Speter xorl %esi, %edx 20395967Speter 20495967Speter # Round 9 20595967Speter rorl $16, %edx 20695967Speter movl 40(%edi), %esi 20795967Speter movb %dh, %al 20895967Speter movb %dl, %bl 20995967Speter rorl $16, %edx 21095967Speter xorl %esi, %ecx 21195967Speter movl 72(%edi,%eax,4),%esi 21295967Speter movl 1096(%edi,%ebx,4),%ebp 21395967Speter movb %dh, %al 21495967Speter movb %dl, %bl 21595967Speter addl %ebp, %esi 21695967Speter movl 2120(%edi,%eax,4),%eax 21795967Speter xorl %eax, %esi 21895967Speter movl 3144(%edi,%ebx,4),%ebp 21995967Speter addl %ebp, %esi 22095967Speter xorl %eax, %eax 22195967Speter xorl %esi, %ecx 22295967Speter 22395967Speter # Round 10 22495967Speter rorl $16, %ecx 22595967Speter movl 44(%edi), %esi 22695967Speter movb %ch, %al 22795967Speter movb %cl, %bl 22895967Speter rorl $16, %ecx 22995967Speter xorl %esi, %edx 23095967Speter movl 72(%edi,%eax,4),%esi 23195967Speter movl 1096(%edi,%ebx,4),%ebp 23295967Speter movb %ch, %al 23395967Speter movb %cl, %bl 23495967Speter addl %ebp, %esi 23595967Speter movl 2120(%edi,%eax,4),%eax 23695967Speter xorl %eax, %esi 23795967Speter movl 3144(%edi,%ebx,4),%ebp 23895967Speter addl %ebp, %esi 23995967Speter xorl %eax, %eax 24095967Speter xorl %esi, %edx 24195967Speter 24295967Speter # Round 11 24395967Speter rorl $16, %edx 24495967Speter movl 48(%edi), %esi 24595967Speter movb %dh, %al 24695967Speter movb %dl, %bl 24795967Speter rorl $16, %edx 24895967Speter xorl %esi, %ecx 24995967Speter movl 72(%edi,%eax,4),%esi 25095967Speter movl 1096(%edi,%ebx,4),%ebp 25195967Speter movb %dh, %al 25295967Speter movb %dl, %bl 25395967Speter addl %ebp, %esi 25495967Speter movl 2120(%edi,%eax,4),%eax 25595967Speter xorl %eax, %esi 25695967Speter movl 3144(%edi,%ebx,4),%ebp 25795967Speter addl %ebp, %esi 25895967Speter xorl %eax, %eax 25995967Speter xorl %esi, %ecx 26095967Speter 26195967Speter # Round 12 26295967Speter rorl $16, %ecx 26395967Speter movl 52(%edi), %esi 26495967Speter movb %ch, %al 26595967Speter movb %cl, %bl 26695967Speter rorl $16, %ecx 26795967Speter xorl %esi, %edx 26895967Speter movl 72(%edi,%eax,4),%esi 26995967Speter movl 1096(%edi,%ebx,4),%ebp 27095967Speter movb %ch, %al 27195967Speter movb %cl, %bl 27295967Speter addl %ebp, %esi 27395967Speter movl 2120(%edi,%eax,4),%eax 27495967Speter xorl %eax, %esi 27595967Speter movl 3144(%edi,%ebx,4),%ebp 27695967Speter addl %ebp, %esi 27795967Speter xorl %eax, %eax 27895967Speter xorl %esi, %edx 27995967Speter 28095967Speter # Round 13 28195967Speter rorl $16, %edx 28295967Speter movl 56(%edi), %esi 28395967Speter movb %dh, %al 28495967Speter movb %dl, %bl 28595967Speter rorl $16, %edx 28695967Speter xorl %esi, %ecx 28795967Speter movl 72(%edi,%eax,4),%esi 28895967Speter movl 1096(%edi,%ebx,4),%ebp 28995967Speter movb %dh, %al 29095967Speter movb %dl, %bl 29195967Speter addl %ebp, %esi 29295967Speter movl 2120(%edi,%eax,4),%eax 29395967Speter xorl %eax, %esi 29495967Speter movl 3144(%edi,%ebx,4),%ebp 29595967Speter addl %ebp, %esi 29695967Speter xorl %eax, %eax 29795967Speter xorl %esi, %ecx 29895967Speter 29995967Speter # Round 14 30095967Speter rorl $16, %ecx 30195967Speter movl 60(%edi), %esi 30295967Speter movb %ch, %al 30395967Speter movb %cl, %bl 30495967Speter rorl $16, %ecx 30595967Speter xorl %esi, %edx 30695967Speter movl 72(%edi,%eax,4),%esi 30795967Speter movl 1096(%edi,%ebx,4),%ebp 30895967Speter movb %ch, %al 30995967Speter movb %cl, %bl 31095967Speter addl %ebp, %esi 31195967Speter movl 2120(%edi,%eax,4),%eax 31295967Speter xorl %eax, %esi 31395967Speter movl 3144(%edi,%ebx,4),%ebp 31495967Speter addl %ebp, %esi 31595967Speter xorl %eax, %eax 31695967Speter xorl %esi, %edx 31795967Speter 31895967Speter # Round 15 31995967Speter rorl $16, %edx 32095967Speter movl 64(%edi), %esi 32195967Speter movb %dh, %al 32295967Speter movb %dl, %bl 32395967Speter rorl $16, %edx 32495967Speter xorl %esi, %ecx 32595967Speter movl 72(%edi,%eax,4),%esi 32695967Speter movl 1096(%edi,%ebx,4),%ebp 32795967Speter movb %dh, %al 32895967Speter movb %dl, %bl 32995967Speter addl %ebp, %esi 33095967Speter movl 2120(%edi,%eax,4),%eax 33195967Speter xorl %eax, %esi 33295967Speter movl 3144(%edi,%ebx,4),%ebp 33395967Speter addl %ebp, %esi 33495967Speter xorl %eax, %eax 33595967Speter xorl %esi, %ecx 33695967Speter xorl 68(%edi), %edx 33795967Speter movl 20(%esp), %eax 33895967Speter movl %edx, (%eax) 33995967Speter movl %ecx, 4(%eax) 34095967Speter popl %edi 34195967Speter popl %esi 34295967Speter popl %ebx 34395967Speter popl %ebp 34495967Speter ret 34595967Speter.L_BF_encrypt_end: 34695967Speter .size BF_encrypt,.L_BF_encrypt_end-BF_encrypt 34795967Speter.ident "desasm.pl" 34895967Speter.text 34995967Speter .align 16 35095967Speter.globl BF_decrypt 35195967Speter .type BF_decrypt,@function 35295967SpeterBF_decrypt: 35395967Speter pushl %ebp 35495967Speter pushl %ebx 35595967Speter pushl %esi 35695967Speter pushl %edi 35795967Speter 35895967Speter 35995967Speter # Load the 2 words 36095967Speter movl 20(%esp), %eax 36195967Speter movl (%eax), %ecx 36295967Speter movl 4(%eax), %edx 36395967Speter 36495967Speter # P pointer, s and enc flag 36595967Speter movl 24(%esp), %edi 36695967Speter xorl %eax, %eax 36795967Speter xorl %ebx, %ebx 36895967Speter xorl 68(%edi), %ecx 36995967Speter 37095967Speter # Round 16 37195967Speter rorl $16, %ecx 37295967Speter movl 64(%edi), %esi 37395967Speter movb %ch, %al 37495967Speter movb %cl, %bl 37595967Speter rorl $16, %ecx 37695967Speter xorl %esi, %edx 37795967Speter movl 72(%edi,%eax,4),%esi 37895967Speter movl 1096(%edi,%ebx,4),%ebp 37995967Speter movb %ch, %al 38095967Speter movb %cl, %bl 38195967Speter addl %ebp, %esi 38295967Speter movl 2120(%edi,%eax,4),%eax 38395967Speter xorl %eax, %esi 38495967Speter movl 3144(%edi,%ebx,4),%ebp 38595967Speter addl %ebp, %esi 38695967Speter xorl %eax, %eax 38795967Speter xorl %esi, %edx 38895967Speter 38995967Speter # Round 15 39095967Speter rorl $16, %edx 39195967Speter movl 60(%edi), %esi 39295967Speter movb %dh, %al 39395967Speter movb %dl, %bl 39495967Speter rorl $16, %edx 39595967Speter xorl %esi, %ecx 39695967Speter movl 72(%edi,%eax,4),%esi 39795967Speter movl 1096(%edi,%ebx,4),%ebp 39895967Speter movb %dh, %al 39995967Speter movb %dl, %bl 40095967Speter addl %ebp, %esi 40195967Speter movl 2120(%edi,%eax,4),%eax 40295967Speter xorl %eax, %esi 40395967Speter movl 3144(%edi,%ebx,4),%ebp 40495967Speter addl %ebp, %esi 40595967Speter xorl %eax, %eax 40695967Speter xorl %esi, %ecx 40795967Speter 40895967Speter # Round 14 40995967Speter rorl $16, %ecx 41095967Speter movl 56(%edi), %esi 41195967Speter movb %ch, %al 41295967Speter movb %cl, %bl 41395967Speter rorl $16, %ecx 41495967Speter xorl %esi, %edx 41595967Speter movl 72(%edi,%eax,4),%esi 41695967Speter movl 1096(%edi,%ebx,4),%ebp 41795967Speter movb %ch, %al 41895967Speter movb %cl, %bl 41995967Speter addl %ebp, %esi 42095967Speter movl 2120(%edi,%eax,4),%eax 42195967Speter xorl %eax, %esi 42295967Speter movl 3144(%edi,%ebx,4),%ebp 42395967Speter addl %ebp, %esi 42495967Speter xorl %eax, %eax 42595967Speter xorl %esi, %edx 42695967Speter 42795967Speter # Round 13 42895967Speter rorl $16, %edx 42995967Speter movl 52(%edi), %esi 43095967Speter movb %dh, %al 43195967Speter movb %dl, %bl 43295967Speter rorl $16, %edx 43395967Speter xorl %esi, %ecx 43495967Speter movl 72(%edi,%eax,4),%esi 43595967Speter movl 1096(%edi,%ebx,4),%ebp 43695967Speter movb %dh, %al 43795967Speter movb %dl, %bl 43895967Speter addl %ebp, %esi 43995967Speter movl 2120(%edi,%eax,4),%eax 44095967Speter xorl %eax, %esi 44195967Speter movl 3144(%edi,%ebx,4),%ebp 44295967Speter addl %ebp, %esi 44395967Speter xorl %eax, %eax 44495967Speter xorl %esi, %ecx 44595967Speter 44695967Speter # Round 12 44795967Speter rorl $16, %ecx 44895967Speter movl 48(%edi), %esi 44995967Speter movb %ch, %al 45095967Speter movb %cl, %bl 45195967Speter rorl $16, %ecx 45295967Speter xorl %esi, %edx 45395967Speter movl 72(%edi,%eax,4),%esi 45495967Speter movl 1096(%edi,%ebx,4),%ebp 45595967Speter movb %ch, %al 45695967Speter movb %cl, %bl 45795967Speter addl %ebp, %esi 45895967Speter movl 2120(%edi,%eax,4),%eax 45995967Speter xorl %eax, %esi 46095967Speter movl 3144(%edi,%ebx,4),%ebp 46195967Speter addl %ebp, %esi 46295967Speter xorl %eax, %eax 46395967Speter xorl %esi, %edx 46495967Speter 46595967Speter # Round 11 46695967Speter rorl $16, %edx 46795967Speter movl 44(%edi), %esi 46895967Speter movb %dh, %al 46995967Speter movb %dl, %bl 47095967Speter rorl $16, %edx 47195967Speter xorl %esi, %ecx 47295967Speter movl 72(%edi,%eax,4),%esi 47395967Speter movl 1096(%edi,%ebx,4),%ebp 47495967Speter movb %dh, %al 47595967Speter movb %dl, %bl 47695967Speter addl %ebp, %esi 47795967Speter movl 2120(%edi,%eax,4),%eax 47895967Speter xorl %eax, %esi 47995967Speter movl 3144(%edi,%ebx,4),%ebp 48095967Speter addl %ebp, %esi 48195967Speter xorl %eax, %eax 48295967Speter xorl %esi, %ecx 48395967Speter 48495967Speter # Round 10 48595967Speter rorl $16, %ecx 48695967Speter movl 40(%edi), %esi 48795967Speter movb %ch, %al 48895967Speter movb %cl, %bl 48995967Speter rorl $16, %ecx 49095967Speter xorl %esi, %edx 49195967Speter movl 72(%edi,%eax,4),%esi 49295967Speter movl 1096(%edi,%ebx,4),%ebp 49395967Speter movb %ch, %al 49495967Speter movb %cl, %bl 49595967Speter addl %ebp, %esi 49695967Speter movl 2120(%edi,%eax,4),%eax 49795967Speter xorl %eax, %esi 49895967Speter movl 3144(%edi,%ebx,4),%ebp 49995967Speter addl %ebp, %esi 50095967Speter xorl %eax, %eax 50195967Speter xorl %esi, %edx 50295967Speter 50395967Speter # Round 9 50495967Speter rorl $16, %edx 50595967Speter movl 36(%edi), %esi 50695967Speter movb %dh, %al 50795967Speter movb %dl, %bl 50895967Speter rorl $16, %edx 50995967Speter xorl %esi, %ecx 51095967Speter movl 72(%edi,%eax,4),%esi 51195967Speter movl 1096(%edi,%ebx,4),%ebp 51295967Speter movb %dh, %al 51395967Speter movb %dl, %bl 51495967Speter addl %ebp, %esi 51595967Speter movl 2120(%edi,%eax,4),%eax 51695967Speter xorl %eax, %esi 51795967Speter movl 3144(%edi,%ebx,4),%ebp 51895967Speter addl %ebp, %esi 51995967Speter xorl %eax, %eax 52095967Speter xorl %esi, %ecx 52195967Speter 52295967Speter # Round 8 52395967Speter rorl $16, %ecx 52495967Speter movl 32(%edi), %esi 52595967Speter movb %ch, %al 52695967Speter movb %cl, %bl 52795967Speter rorl $16, %ecx 52895967Speter xorl %esi, %edx 52995967Speter movl 72(%edi,%eax,4),%esi 53095967Speter movl 1096(%edi,%ebx,4),%ebp 53195967Speter movb %ch, %al 53295967Speter movb %cl, %bl 53395967Speter addl %ebp, %esi 53495967Speter movl 2120(%edi,%eax,4),%eax 53595967Speter xorl %eax, %esi 53695967Speter movl 3144(%edi,%ebx,4),%ebp 53795967Speter addl %ebp, %esi 53895967Speter xorl %eax, %eax 53995967Speter xorl %esi, %edx 54095967Speter 54195967Speter # Round 7 54295967Speter rorl $16, %edx 54395967Speter movl 28(%edi), %esi 54495967Speter movb %dh, %al 54595967Speter movb %dl, %bl 54695967Speter rorl $16, %edx 54795967Speter xorl %esi, %ecx 54895967Speter movl 72(%edi,%eax,4),%esi 54995967Speter movl 1096(%edi,%ebx,4),%ebp 55095967Speter movb %dh, %al 55195967Speter movb %dl, %bl 55295967Speter addl %ebp, %esi 55395967Speter movl 2120(%edi,%eax,4),%eax 55495967Speter xorl %eax, %esi 55595967Speter movl 3144(%edi,%ebx,4),%ebp 55695967Speter addl %ebp, %esi 55795967Speter xorl %eax, %eax 55895967Speter xorl %esi, %ecx 55995967Speter 56095967Speter # Round 6 56195967Speter rorl $16, %ecx 56295967Speter movl 24(%edi), %esi 56395967Speter movb %ch, %al 56495967Speter movb %cl, %bl 56595967Speter rorl $16, %ecx 56695967Speter xorl %esi, %edx 56795967Speter movl 72(%edi,%eax,4),%esi 56895967Speter movl 1096(%edi,%ebx,4),%ebp 56995967Speter movb %ch, %al 57095967Speter movb %cl, %bl 57195967Speter addl %ebp, %esi 57295967Speter movl 2120(%edi,%eax,4),%eax 57395967Speter xorl %eax, %esi 57495967Speter movl 3144(%edi,%ebx,4),%ebp 57595967Speter addl %ebp, %esi 57695967Speter xorl %eax, %eax 57795967Speter xorl %esi, %edx 57895967Speter 57995967Speter # Round 5 58095967Speter rorl $16, %edx 58195967Speter movl 20(%edi), %esi 58295967Speter movb %dh, %al 58395967Speter movb %dl, %bl 58495967Speter rorl $16, %edx 58595967Speter xorl %esi, %ecx 58695967Speter movl 72(%edi,%eax,4),%esi 58795967Speter movl 1096(%edi,%ebx,4),%ebp 58895967Speter movb %dh, %al 58995967Speter movb %dl, %bl 59095967Speter addl %ebp, %esi 59195967Speter movl 2120(%edi,%eax,4),%eax 59295967Speter xorl %eax, %esi 59395967Speter movl 3144(%edi,%ebx,4),%ebp 59495967Speter addl %ebp, %esi 59595967Speter xorl %eax, %eax 59695967Speter xorl %esi, %ecx 59795967Speter 59895967Speter # Round 4 59995967Speter rorl $16, %ecx 60095967Speter movl 16(%edi), %esi 60195967Speter movb %ch, %al 60295967Speter movb %cl, %bl 60395967Speter rorl $16, %ecx 60495967Speter xorl %esi, %edx 60595967Speter movl 72(%edi,%eax,4),%esi 60695967Speter movl 1096(%edi,%ebx,4),%ebp 60795967Speter movb %ch, %al 60895967Speter movb %cl, %bl 60995967Speter addl %ebp, %esi 61095967Speter movl 2120(%edi,%eax,4),%eax 61195967Speter xorl %eax, %esi 61295967Speter movl 3144(%edi,%ebx,4),%ebp 61395967Speter addl %ebp, %esi 61495967Speter xorl %eax, %eax 61595967Speter xorl %esi, %edx 61695967Speter 61795967Speter # Round 3 61895967Speter rorl $16, %edx 61995967Speter movl 12(%edi), %esi 62095967Speter movb %dh, %al 62195967Speter movb %dl, %bl 62295967Speter rorl $16, %edx 62395967Speter xorl %esi, %ecx 62495967Speter movl 72(%edi,%eax,4),%esi 62595967Speter movl 1096(%edi,%ebx,4),%ebp 62695967Speter movb %dh, %al 62795967Speter movb %dl, %bl 62895967Speter addl %ebp, %esi 62995967Speter movl 2120(%edi,%eax,4),%eax 63095967Speter xorl %eax, %esi 63195967Speter movl 3144(%edi,%ebx,4),%ebp 63295967Speter addl %ebp, %esi 63395967Speter xorl %eax, %eax 63495967Speter xorl %esi, %ecx 63595967Speter 63695967Speter # Round 2 63795967Speter rorl $16, %ecx 63895967Speter movl 8(%edi), %esi 63995967Speter movb %ch, %al 64095967Speter movb %cl, %bl 64195967Speter rorl $16, %ecx 64295967Speter xorl %esi, %edx 64395967Speter movl 72(%edi,%eax,4),%esi 64495967Speter movl 1096(%edi,%ebx,4),%ebp 64595967Speter movb %ch, %al 64695967Speter movb %cl, %bl 64795967Speter addl %ebp, %esi 64895967Speter movl 2120(%edi,%eax,4),%eax 64995967Speter xorl %eax, %esi 65095967Speter movl 3144(%edi,%ebx,4),%ebp 65195967Speter addl %ebp, %esi 65295967Speter xorl %eax, %eax 65395967Speter xorl %esi, %edx 65495967Speter 65595967Speter # Round 1 65695967Speter rorl $16, %edx 65795967Speter movl 4(%edi), %esi 65895967Speter movb %dh, %al 65995967Speter movb %dl, %bl 66095967Speter rorl $16, %edx 66195967Speter xorl %esi, %ecx 66295967Speter movl 72(%edi,%eax,4),%esi 66395967Speter movl 1096(%edi,%ebx,4),%ebp 66495967Speter movb %dh, %al 66595967Speter movb %dl, %bl 66695967Speter addl %ebp, %esi 66795967Speter movl 2120(%edi,%eax,4),%eax 66895967Speter xorl %eax, %esi 66995967Speter movl 3144(%edi,%ebx,4),%ebp 67095967Speter addl %ebp, %esi 67195967Speter xorl %eax, %eax 67295967Speter xorl %esi, %ecx 67395967Speter xorl (%edi), %edx 67495967Speter movl 20(%esp), %eax 67595967Speter movl %edx, (%eax) 67695967Speter movl %ecx, 4(%eax) 67795967Speter popl %edi 67895967Speter popl %esi 67995967Speter popl %ebx 68095967Speter popl %ebp 68195967Speter ret 68295967Speter.L_BF_decrypt_end: 68395967Speter .size BF_decrypt,.L_BF_decrypt_end-BF_decrypt 68495967Speter.ident "desasm.pl" 68595967Speter.text 68695967Speter .align 16 68795967Speter.globl BF_cbc_encrypt 68895967Speter .type BF_cbc_encrypt,@function 68995967SpeterBF_cbc_encrypt: 69095967Speter 69195967Speter pushl %ebp 69295967Speter pushl %ebx 69395967Speter pushl %esi 69495967Speter pushl %edi 69595967Speter movl 28(%esp), %ebp 69695967Speter # getting iv ptr from parameter 4 69795967Speter movl 36(%esp), %ebx 69895967Speter movl (%ebx), %esi 69995967Speter movl 4(%ebx), %edi 70095967Speter pushl %edi 70195967Speter pushl %esi 70295967Speter pushl %edi 70395967Speter pushl %esi 70495967Speter movl %esp, %ebx 70595967Speter movl 36(%esp), %esi 70695967Speter movl 40(%esp), %edi 70795967Speter # getting encrypt flag from parameter 5 70895967Speter movl 56(%esp), %ecx 70995967Speter # get and push parameter 3 71095967Speter movl 48(%esp), %eax 71195967Speter pushl %eax 71295967Speter pushl %ebx 71395967Speter cmpl $0, %ecx 71495967Speter jz .L000decrypt 71595967Speter andl $4294967288, %ebp 71695967Speter movl 8(%esp), %eax 71795967Speter movl 12(%esp), %ebx 71895967Speter jz .L001encrypt_finish 71995967Speter.L002encrypt_loop: 72095967Speter movl (%esi), %ecx 72195967Speter movl 4(%esi), %edx 72295967Speter xorl %ecx, %eax 72395967Speter xorl %edx, %ebx 72495967Speter.byte 15 72595967Speter.byte 200 # bswapl %eax 72695967Speter.byte 15 72795967Speter.byte 203 # bswapl %ebx 72895967Speter movl %eax, 8(%esp) 72995967Speter movl %ebx, 12(%esp) 73095967Speter call BF_encrypt 73195967Speter movl 8(%esp), %eax 73295967Speter movl 12(%esp), %ebx 73395967Speter.byte 15 73495967Speter.byte 200 # bswapl %eax 73595967Speter.byte 15 73695967Speter.byte 203 # bswapl %ebx 73795967Speter movl %eax, (%edi) 73895967Speter movl %ebx, 4(%edi) 73995967Speter addl $8, %esi 74095967Speter addl $8, %edi 74195967Speter subl $8, %ebp 74295967Speter jnz .L002encrypt_loop 74395967Speter.L001encrypt_finish: 74495967Speter movl 52(%esp), %ebp 74595967Speter andl $7, %ebp 74695967Speter jz .L003finish 74795967Speter xorl %ecx, %ecx 74895967Speter xorl %edx, %edx 74995967Speter movl .L004cbc_enc_jmp_table(,%ebp,4),%ebp 75095967Speter jmp *%ebp 75195967Speter.L005ej7: 75295967Speter movb 6(%esi), %dh 75395967Speter sall $8, %edx 75495967Speter.L006ej6: 75595967Speter movb 5(%esi), %dh 75695967Speter.L007ej5: 75795967Speter movb 4(%esi), %dl 75895967Speter.L008ej4: 75995967Speter movl (%esi), %ecx 76095967Speter jmp .L009ejend 76195967Speter.L010ej3: 76295967Speter movb 2(%esi), %ch 76395967Speter sall $8, %ecx 76495967Speter.L011ej2: 76595967Speter movb 1(%esi), %ch 76695967Speter.L012ej1: 76795967Speter movb (%esi), %cl 76895967Speter.L009ejend: 76995967Speter xorl %ecx, %eax 77095967Speter xorl %edx, %ebx 77195967Speter.byte 15 77295967Speter.byte 200 # bswapl %eax 77395967Speter.byte 15 77495967Speter.byte 203 # bswapl %ebx 77595967Speter movl %eax, 8(%esp) 77695967Speter movl %ebx, 12(%esp) 77795967Speter call BF_encrypt 77895967Speter movl 8(%esp), %eax 77995967Speter movl 12(%esp), %ebx 78095967Speter.byte 15 78195967Speter.byte 200 # bswapl %eax 78295967Speter.byte 15 78395967Speter.byte 203 # bswapl %ebx 78495967Speter movl %eax, (%edi) 78595967Speter movl %ebx, 4(%edi) 78695967Speter jmp .L003finish 78795967Speter.align 16 78895967Speter.L000decrypt: 78995967Speter andl $4294967288, %ebp 79095967Speter movl 16(%esp), %eax 79195967Speter movl 20(%esp), %ebx 79295967Speter jz .L013decrypt_finish 79395967Speter.L014decrypt_loop: 79495967Speter movl (%esi), %eax 79595967Speter movl 4(%esi), %ebx 79695967Speter.byte 15 79795967Speter.byte 200 # bswapl %eax 79895967Speter.byte 15 79995967Speter.byte 203 # bswapl %ebx 80095967Speter movl %eax, 8(%esp) 80195967Speter movl %ebx, 12(%esp) 80295967Speter call BF_decrypt 80395967Speter movl 8(%esp), %eax 80495967Speter movl 12(%esp), %ebx 80595967Speter.byte 15 80695967Speter.byte 200 # bswapl %eax 80795967Speter.byte 15 80895967Speter.byte 203 # bswapl %ebx 80995967Speter movl 16(%esp), %ecx 81095967Speter movl 20(%esp), %edx 81195967Speter xorl %eax, %ecx 81295967Speter xorl %ebx, %edx 81395967Speter movl (%esi), %eax 81495967Speter movl 4(%esi), %ebx 81595967Speter movl %ecx, (%edi) 81695967Speter movl %edx, 4(%edi) 81795967Speter movl %eax, 16(%esp) 81895967Speter movl %ebx, 20(%esp) 81995967Speter addl $8, %esi 82095967Speter addl $8, %edi 82195967Speter subl $8, %ebp 82295967Speter jnz .L014decrypt_loop 82395967Speter.L013decrypt_finish: 82495967Speter movl 52(%esp), %ebp 82595967Speter andl $7, %ebp 82695967Speter jz .L003finish 82795967Speter movl (%esi), %eax 82895967Speter movl 4(%esi), %ebx 82995967Speter.byte 15 83095967Speter.byte 200 # bswapl %eax 83195967Speter.byte 15 83295967Speter.byte 203 # bswapl %ebx 83395967Speter movl %eax, 8(%esp) 83495967Speter movl %ebx, 12(%esp) 83595967Speter call BF_decrypt 83695967Speter movl 8(%esp), %eax 83795967Speter movl 12(%esp), %ebx 83895967Speter.byte 15 83995967Speter.byte 200 # bswapl %eax 84095967Speter.byte 15 84195967Speter.byte 203 # bswapl %ebx 84295967Speter movl 16(%esp), %ecx 84395967Speter movl 20(%esp), %edx 84495967Speter xorl %eax, %ecx 84595967Speter xorl %ebx, %edx 84695967Speter movl (%esi), %eax 84795967Speter movl 4(%esi), %ebx 84895967Speter.L015dj7: 84995967Speter rorl $16, %edx 85095967Speter movb %dl, 6(%edi) 85195967Speter shrl $16, %edx 85295967Speter.L016dj6: 85395967Speter movb %dh, 5(%edi) 85495967Speter.L017dj5: 85595967Speter movb %dl, 4(%edi) 85695967Speter.L018dj4: 85795967Speter movl %ecx, (%edi) 85895967Speter jmp .L019djend 85995967Speter.L020dj3: 86095967Speter rorl $16, %ecx 86195967Speter movb %cl, 2(%edi) 86295967Speter sall $16, %ecx 86395967Speter.L021dj2: 86495967Speter movb %ch, 1(%esi) 86595967Speter.L022dj1: 86695967Speter movb %cl, (%esi) 86795967Speter.L019djend: 86895967Speter jmp .L003finish 86995967Speter.align 16 87095967Speter.L003finish: 87195967Speter movl 60(%esp), %ecx 87295967Speter addl $24, %esp 87395967Speter movl %eax, (%ecx) 87495967Speter movl %ebx, 4(%ecx) 87595967Speter popl %edi 87695967Speter popl %esi 87795967Speter popl %ebx 87895967Speter popl %ebp 87995967Speter ret 88095967Speter.align 16 88195967Speter.L004cbc_enc_jmp_table: 88295967Speter .long 0 88395967Speter .long .L012ej1 88495967Speter .long .L011ej2 88595967Speter .long .L010ej3 88695967Speter .long .L008ej4 88795967Speter .long .L007ej5 88895967Speter .long .L006ej6 88995967Speter .long .L005ej7 89095967Speter.align 16 89195967Speter.L023cbc_dec_jmp_table: 89295967Speter .long 0 89395967Speter .long .L022dj1 89495967Speter .long .L021dj2 89595967Speter .long .L020dj3 89695967Speter .long .L018dj4 89795967Speter .long .L017dj5 89895967Speter .long .L016dj6 89995967Speter .long .L015dj7 90095967Speter.L_BF_cbc_encrypt_end: 90195967Speter .size BF_cbc_encrypt,.L_BF_cbc_encrypt_end-BF_cbc_encrypt 90295967Speter.ident "desasm.pl" 903