Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 364F19:
- mov eax,dword ptr ss:[esp+30040]
- mov ecx,dword ptr ss:[esp+30044]
- sub eax,edi
- sbb ecx,ebp
- cmp ebp,ebx
- jl 364F65
- jg 364F39
- cmp edi,4000000
- jb 364F65
- mov ebp,dword ptr ss:[esp+30044]
- xorps xmm0,xmm0
- mov edi,dword ptr ss:[esp+30040]
- mov ecx,dword ptr ss:[esp+38]
- push ebp
- push edi
- movlpd qword ptr ss:[esp+28],xmm0
- call <SeekFilePos>
- mov eax,dword ptr ss:[esp+28]
- pop ecx
- pop ecx
- mov ecx,dword ptr ss:[esp+24]
- cmp ecx,ebx
- ja 364F7E
- cmp eax,ebx
- ja 364F71
- mov esi,ebx
- jmp 364F94
- cmp ecx,ebx
- ja 364F7E
- jb 364F83
- cmp eax,8000
- jb 364F83
- mov eax,8000
- push ebp
- push edi
- push eax
- lea ecx,dword ptr ss:[esp+44]
- call <ReadBuffer>
- add esp,C
- mov esi,eax
- test esi,esi
- js 3650DB
- je 364FD7
- mov eax,393EC0
- mov ecx,39E1E0
- push esi
- push eax
- mov edx,eax
- call <ChaChaEncrypt>
- push ebp
- push edi
- push esi
- mov edx,393EC0
- lea ecx,dword ptr ss:[esp+4C]
- call <WriteCiphertext>
- add esp,14
- test eax,eax
- js 3650DB
- cdq
- add edi,eax
- adc ebp,edx
- jmp 364F19
- 36BBE1: ChaChaEncrypt:
- push ecx
- push ebp
- push esi
- mov esi,dword ptr ss:[esp+14]
- mov ebp,edx
- push edi
- mov edi,ecx
- test esi,esi
- je 36BC82
- mov eax,dword ptr ds:[edi+80]
- lea ecx,dword ptr ds:[edi+40]
- push ebx
- mov ebx,dword ptr ss:[esp+18]
- test eax,eax
- je 36BC35
- cmp esi,eax
- mov edx,eax
- cmovb edx,esi
- sub ecx,eax
- add ecx,40
- lea eax,dword ptr ds:[ecx+edx]
- mov esi,eax
- mov al,byte ptr ds:[ecx]
- xor al,byte ptr ss:[ebp]
- mov byte ptr ds:[ebx],al
- inc ebx
- inc ecx
- inc ebp
- cmp ecx,esi
- jb 36BC18
- mov esi,dword ptr ss:[esp+1C]
- lea ecx,dword ptr ds:[edi+40]
- sub dword ptr ds:[edi+80],edx
- sub esi,edx
- test esi,esi
- je 36BC81
- push 40
- pop eax
- cmp esi,eax
- mov edx,ecx
- mov ecx,edi
- cmovb eax,esi
- mov dword ptr ss:[esp+1C],eax
- call <ChaChaDblRound>
- lea eax,dword ptr ds:[edi+40]
- mov ecx,eax
- add eax,dword ptr ss:[esp+1C]
- mov dword ptr ss:[esp+10],eax
- mov edx,eax
- mov al,byte ptr ds:[ecx]
- xor al,byte ptr ss:[ebp]
- mov byte ptr ds:[ebx],al
- inc ebx
- inc ecx
- inc ebp
- cmp ecx,edx
- jb 36BC5D
- push 40
- pop eax
- sub eax,dword ptr ss:[esp+1C]
- lea ecx,dword ptr ds:[edi+40]
- mov dword ptr ds:[edi+80],eax
- sub esi,dword ptr ss:[esp+1C]
- jne 36BC39
- pop ebx
- pop edi
- pop esi
- pop ebp
- pop ecx
- ret
- 36B8E2: ChaChaDblRound:
- sub esp,38
- push ebx
- push ebp
- push esi
- push edi
- mov ebx,ecx
- mov dword ptr ss:[esp+38],edx
- push 10
- pop ecx
- mov esi,ebx
- mov dword ptr ss:[esp+44],ebx
- mov edi,edx
- rep movsd dword ptr es:[edi],dword ptr ds:[esi]
- mov eax,dword ptr ds:[edx+20]
- mov ebx,dword ptr ds:[edx+10]
- mov esi,dword ptr ds:[edx+30]
- mov ecx,dword ptr ds:[edx+14]
- mov edi,dword ptr ds:[edx+38]
- mov ebp,dword ptr ds:[edx+3C]
- mov dword ptr ss:[esp+18],eax
- mov eax,dword ptr ds:[edx+4]
- mov dword ptr ss:[esp+28],eax
- mov eax,dword ptr ds:[edx+34]
- mov dword ptr ss:[esp+10],eax
- mov eax,dword ptr ds:[edx+24]
- mov dword ptr ss:[esp+2C],eax
- mov eax,dword ptr ds:[edx+18]
- mov dword ptr ss:[esp+1C],eax
- mov eax,dword ptr ds:[edx+8]
- mov dword ptr ss:[esp+30],eax
- mov eax,dword ptr ds:[edx+28]
- mov dword ptr ss:[esp+24],eax
- mov eax,dword ptr ds:[edx+1C]
- mov dword ptr ss:[esp+20],eax
- mov eax,dword ptr ds:[edx+C]
- mov dword ptr ss:[esp+34],eax
- mov eax,dword ptr ds:[edx+2C]
- push A
- mov dword ptr ss:[esp+18],eax
- pop eax
- add dword ptr ds:[edx],ebx
- dec eax
- xor esi,dword ptr ds:[edx]
- mov dword ptr ss:[esp+40],eax
- mov eax,dword ptr ss:[esp+18]
- rol esi,10
- add eax,esi
- mov dword ptr ss:[esp+18],eax
- xor eax,ebx
- mov ebx,dword ptr ss:[esp+18]
- rol eax,C
- add dword ptr ds:[edx],eax
- xor esi,dword ptr ds:[edx]
- mov edx,dword ptr ss:[esp+2C]
- rol esi,8
- add ebx,esi
- mov dword ptr ss:[esp+18],ebx
- xor ebx,eax
- mov eax,dword ptr ss:[esp+28]
- add eax,ecx
- rol ebx,7
- mov dword ptr ss:[esp+28],eax
- xor eax,dword ptr ss:[esp+10]
- rol eax,10
- add edx,eax
- xor ecx,edx
- mov dword ptr ss:[esp+2C],edx
- mov edx,dword ptr ss:[esp+28]
- rol ecx,C
- add edx,ecx
- mov dword ptr ss:[esp+10],edx
- xor dword ptr ss:[esp+10],eax
- mov eax,dword ptr ss:[esp+10]
- mov dword ptr ss:[esp+28],edx
- mov edx,dword ptr ss:[esp+2C]
- rol eax,8
- add edx,eax
- mov dword ptr ss:[esp+10],eax
- mov eax,dword ptr ss:[esp+24]
- xor ecx,edx
- mov dword ptr ss:[esp+2C],edx
- mov edx,dword ptr ss:[esp+30]
- add edx,dword ptr ss:[esp+1C]
- xor edi,edx
- rol ecx,7
- rol edi,10
- add eax,edi
- mov dword ptr ss:[esp+24],eax
- xor eax,dword ptr ss:[esp+1C]
- rol eax,C
- add edx,eax
- xor edi,edx
- mov dword ptr ss:[esp+30],edx
- mov edx,dword ptr ss:[esp+24]
- rol edi,8
- add edx,edi
- mov dword ptr ss:[esp+1C],edx
- xor dword ptr ss:[esp+1C],eax
- mov eax,dword ptr ss:[esp+20]
- mov dword ptr ss:[esp+24],edx
- mov edx,dword ptr ss:[esp+34]
- add edx,eax
- rol dword ptr ss:[esp+1C],7
- xor ebp,edx
- rol ebp,10
- add dword ptr ss:[esp+14],ebp
- xor eax,dword ptr ss:[esp+14]
- rol eax,C
- add edx,eax
- xor ebp,edx
- mov dword ptr ss:[esp+34],edx
- mov edx,dword ptr ss:[esp+14]
- rol ebp,8
- add edx,ebp
- xor eax,edx
- mov dword ptr ss:[esp+14],edx
- mov edx,dword ptr ss:[esp+38]
- rol eax,7
- mov dword ptr ss:[esp+20],eax
- add dword ptr ds:[edx],ecx
- xor ebp,dword ptr ds:[edx]
- mov eax,dword ptr ss:[esp+24]
- rol ebp,10
- add eax,ebp
- mov dword ptr ss:[esp+24],eax
- xor eax,ecx
- mov ecx,eax
- mov dword ptr ss:[esp+3C],eax
- mov eax,dword ptr ss:[esp+24]
- rol ecx,C
- add dword ptr ds:[edx],ecx
- xor ebp,dword ptr ds:[edx]
- mov edx,dword ptr ss:[esp+28]
- rol ebp,8
- add eax,ebp
- xor ecx,eax
- mov dword ptr ss:[esp+24],eax
- mov eax,dword ptr ss:[esp+1C]
- add edx,eax
- xor esi,edx
- rol ecx,7
- rol esi,10
- add dword ptr ss:[esp+14],esi
- xor eax,dword ptr ss:[esp+14]
- rol eax,C
- add edx,eax
- xor esi,edx
- mov dword ptr ss:[esp+28],edx
- mov edx,dword ptr ss:[esp+14]
- rol esi,8
- add edx,esi
- xor eax,edx
- mov dword ptr ss:[esp+14],edx
- mov edx,dword ptr ss:[esp+30]
- add edx,dword ptr ss:[esp+20]
- rol eax,7
- mov dword ptr ss:[esp+1C],eax
- mov eax,dword ptr ss:[esp+10]
- xor eax,edx
- rol eax,10
- add dword ptr ss:[esp+18],eax
- mov dword ptr ss:[esp+10],eax
- mov eax,dword ptr ss:[esp+18]
- xor eax,dword ptr ss:[esp+20]
- rol eax,C
- add edx,eax
- xor dword ptr ss:[esp+10],edx
- rol dword ptr ss:[esp+10],8
- mov dword ptr ss:[esp+30],edx
- mov edx,dword ptr ss:[esp+18]
- add edx,dword ptr ss:[esp+10]
- mov dword ptr ss:[esp+20],edx
- xor dword ptr ss:[esp+20],eax
- mov eax,dword ptr ss:[esp+2C]
- rol dword ptr ss:[esp+20],7
- mov dword ptr ss:[esp+18],edx
- mov edx,dword ptr ss:[esp+34]
- add edx,ebx
- xor edi,edx
- rol edi,10
- add eax,edi
- xor ebx,eax
- rol ebx,C
- add edx,ebx
- xor edi,edx
- mov dword ptr ss:[esp+34],edx
- mov edx,dword ptr ss:[esp+38]
- rol edi,8
- add eax,edi
- xor ebx,eax
- mov dword ptr ss:[esp+2C],eax
- mov eax,dword ptr ss:[esp+40]
- rol ebx,7
- test eax,eax
- jne 36B954
- mov eax,dword ptr ss:[esp+18]
- mov dword ptr ds:[edx+20],eax
- mov eax,dword ptr ss:[esp+28]
- mov dword ptr ds:[edx+4],eax
- mov eax,dword ptr ss:[esp+10]
- mov dword ptr ds:[edx+34],eax
- mov eax,dword ptr ss:[esp+2C]
- mov dword ptr ds:[edx+24],eax
- mov eax,dword ptr ss:[esp+1C]
- mov dword ptr ds:[edx+18],eax
- mov eax,dword ptr ss:[esp+30]
- mov dword ptr ds:[edx+8],eax
- mov eax,dword ptr ss:[esp+24]
- mov dword ptr ds:[edx+28],eax
- mov eax,dword ptr ss:[esp+20]
- mov dword ptr ds:[edx+1C],eax
- mov eax,dword ptr ss:[esp+34]
- mov dword ptr ds:[edx+C],eax
- mov eax,dword ptr ss:[esp+14]
- mov dword ptr ds:[edx+30],esi
- xor esi,esi
- mov dword ptr ds:[edx+10],ebx
- mov ebx,dword ptr ss:[esp+44]
- mov dword ptr ds:[edx+14],ecx
- mov dword ptr ds:[edx+38],edi
- mov dword ptr ds:[edx+3C],ebp
- mov dword ptr ds:[edx+2C],eax
- add edx,2
- mov ecx,dword ptr ds:[ebx+esi*4]
- add ecx,dword ptr ds:[edx-2]
- mov eax,ecx
- mov byte ptr ds:[edx-2],cl
- shr eax,8
- mov byte ptr ds:[edx-1],al
- mov eax,ecx
- shr eax,10
- shr ecx,18
- inc esi
- mov byte ptr ds:[edx],al
- lea edx,dword ptr ds:[edx+4]
- mov byte ptr ds:[edx-3],cl
- cmp esi,10
- jl 36BB9D
- add dword ptr ds:[ebx+30],1
- jne 36BBD9
- add dword ptr ds:[ebx+34],1
- jne 36BBD9
- add dword ptr ds:[ebx+38],1
- jne 36BBD9
- inc dword ptr ds:[ebx+3C]
- pop edi
- pop esi
- pop ebp
- pop ebx
- add esp,38
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement