rendered paste bodyseg000:00899BD0 ; int __cdecl EncryptString(LPCSTR lpString)
seg000:00899BD0 EncryptString proc near ; CODE XREF: sub_892720+B16p
seg000:00899BD0 ; sub_892720+13B7p
seg000:00899BD0
seg000:00899BD0 lpString = dword ptr 8
seg000:00899BD0
seg000:00899BD0 push edi
seg000:00899BD1 mov edi, [esp+lpString] ; edi = [esp+lpString];
seg000:00899BD5 push edi
seg000:00899BD6 call ds:lstrlenA ; ds:lstrlenA(edi);
seg000:00899BDC test eax, eax
seg000:00899BDE jz loc_899C67 ; if (eax == 0) goto loc_899C67;
seg000:00899BE4 mov ecx, edi ; ecx = edi;
seg000:00899BE6 push ebx
seg000:00899BE7 and ecx, 0FFh
seg000:00899BED push esi
seg000:00899BEE mov ds:byte_C67B19, cl ; ds:byte_C67B19 = cl;
seg000:00899BF4 mov ds:byte_C67B18, 1 ; ds:byte_C67B18 = 1;
seg000:00899BFB lea edx, [ecx+ecx*2+65h] ; edx = &[ecx+ecx*2+65h];
seg000:00899BFF lea ecx, [ecx+ecx*2+1] ; ecx = &[ecx+ecx*2+1];
seg000:00899C03 mov [esp+8+lpString], edx ; [esp+8+lpString] = edx;
seg000:00899C07 mov esi, 4 ; esi = 4;
seg000:00899C0C lea ecx, [ecx+ecx*2] ; ecx = &[ecx+ecx*2];
seg000:00899C0F lea edx, [ecx+65h] ; edx = &[ecx+65h];
seg000:00899C12 inc ecx ; ecx++;
seg000:00899C13 test eax, eax
seg000:00899C15 jle short loc_899C3C
seg000:00899C17 push ebp
seg000:00899C18 sub edi, offset unk_C67B1C ; edi -= offset unk_C67B1C;
seg000:00899C1E mov ebp, eax ; ebp = eax;
seg000:00899C20
seg000:00899C20 loc_899C20: ; CODE XREF: EncryptString+69j
seg000:00899C20 mov bl, ds:byte_C67B18[edi+esi] ; bl = ds:byte_C67B18[edi+esi];
seg000:00899C27 lea ecx, [ecx+ecx*2] ; ecx = &[ecx+ecx*2];
seg000:00899C2A mov al, cl ; al = cl;
seg000:00899C2C add al, 65h ; al += 65h;
seg000:00899C2E xor bl, al ; bl ^= al;
seg000:00899C30 mov ds:byte_C67B18[esi], bl ; ds:byte_C67B18[esi] = bl;
seg000:00899C36 inc esi ; esi++;
seg000:00899C37 inc ecx ; ecx++;
seg000:00899C38 dec ebp ; ebp--;
seg000:00899C39 jnz short loc_899C20
seg000:00899C3B pop ebp
seg000:00899C3C
seg000:00899C3C loc_899C3C: ; CODE XREF: EncryptString+45j
seg000:00899C3C mov bl, byte ptr [esp+8+lpString] ; bl = byte ptr [esp+8+lpString];
seg000:00899C40 lea ecx, [esi-4] ; ecx = &[esi-4];
seg000:00899C43 mov eax, ecx ; eax = ecx;
seg000:00899C45 mov ds:byte_C67B18[esi], 0 ; ds:byte_C67B18[esi] = 0;
seg000:00899C4C sar eax, 8
seg000:00899C4F xor al, bl ; al ^= bl;
seg000:00899C51 xor dl, cl ; dl ^= cl;
seg000:00899C53 pop esi
seg000:00899C54 mov ds:byte_C67B1A, al ; ds:byte_C67B1A = al;
seg000:00899C59 pop ebx
seg000:00899C5A mov ds:byte_C67B1B, dl ; ds:byte_C67B1B = dl;
seg000:00899C60 mov eax, offset byte_C67B18 ; eax = offset byte_C67B18;
seg000:00899C65 pop edi
seg000:00899C66 retn ; return;
seg000:00899C67 ; ---------------------------------------------------------------------------
seg000:00899C67
seg000:00899C67 loc_899C67: ; CODE XREF: EncryptString+Ej
seg000:00899C67 mov eax, offset byte_C67B18 ; eax = offset byte_C67B18;
seg000:00899C6C pop edi
seg000:00899C6D retn ; return;
seg000:00899C6D EncryptString endp