Function at 0x4589b0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
push ebx
push esi
push edi
lea esi, [ecx + 2]
mov edi, 4
mov dl, byte [esi - 2]
mov cl, byte [esi - 1]
mov al, dl
shr al, 7
movzx eax, al
imul eax, eax, 0x1b
mov byte [ebp - 5], dl
add dl, dl
mov ch, byte [esi]
mov byte [ebp - 4], cl
mov dh, byte [esi + 1]
xor dl, al
mov dword [ebp - 0x34], eax
mov al, dl
mov byte [ebp - 3], ch
shr al, 7
mov bh, dl
movzx eax, al
add bh, bh
imul eax, eax, 0x1b
mov byte [ebp - 6], dh
xor bh, al
mov dword [ebp - 0x24], eax
mov al, cl
mov byte [ebp - 7], bh
shr al, 7
add cl, cl
movzx eax, al
imul eax, eax, 0x1b
xor cl, al
mov dword [ebp - 0x18], eax
mov al, cl
mov byte [ebp - 9], cl
shr al, 7
mov bl, cl
movzx eax, al
add bl, bl
imul eax, eax, 0x1b
mov cl, ch
add cl, cl
xor bl, al
mov dword [ebp - 0x30], eax
mov al, ch
mov byte [ebp - 8], bl
shr al, 7
movzx eax, al
imul eax, eax, 0x1b
xor cl, al
mov dword [ebp - 0x20], eax
mov al, cl
mov byte [ebp - 2], cl
shr al, 7
mov ch, cl
movzx eax, al
add ch, ch
imul eax, eax, 0x1b
mov cl, dh
add cl, cl
mov dword [ebp - 0x1c], eax
xor ch, al
mov al, dh
shr al, 7
movzx eax, al
imul eax, eax, 0x1b
xor cl, al
mov dword [ebp - 0x2c], eax
mov al, cl
mov dh, cl
shr al, 7
add dh, dh
movzx eax, al
imul eax, eax, 0x1b
xor dh, al
mov dword [ebp - 0x28], eax
mov al, byte [ebp - 2]
xor al, dl
mov byte [ebp - 1], dh
xor al, dh
xor al, ch
xor al, bl
xor al, bh
mov byte [ebp - 2], al
mov al, dh
shr al, 7
movzx eax, al
imul eax, eax, 0x1b
mov dword [ebp - 0x10], eax
mov al, ch
shr al, 7
movzx eax, al
imul eax, eax, 0x1b
mov dword [ebp - 0x14], eax
mov al, bl
shr al, 7
movzx eax, al
imul ebx, eax, 0x1b
mov al, byte [ebp - 7]
shr al, 7
movzx eax, al
imul edx, eax, 0x1b
mov ah, byte [ebp - 2]
mov al, ah
xor ah, byte [ebp - 6]
xor al, byte [ebp - 4]
xor al, byte [ebp - 5]
add al, al
xor ah, byte [ebp - 3]
xor al, dl
add ah, ah
xor al, bl
xor ah, dl
xor al, byte [ebp - 0x14]
xor ah, bl
xor al, byte [ebp - 0x10]
xor al, byte [ebp - 0x1c]
xor al, byte [ebp - 0x18]
xor al, byte [ebp - 0x24]
xor al, byte [ebp - 0x34]
xor al, byte [ebp - 6]
xor al, byte [ebp - 3]
xor al, byte [ebp - 4]
mov byte [esi - 2], al
mov al, byte [ebp - 1]
xor al, cl
xor al, ch
mov ecx, dword [ebp - 0x14]
xor al, byte [ebp - 8]
xor ah, cl
xor al, byte [ebp - 9]
xor al, byte [ebp - 7]
mov byte [ebp - 1], al
xor al, byte [ebp - 3]
xor al, byte [ebp - 4]
add al, al
mov ch, byte [ebp - 6]
xor al, dl
xor byte [ebp - 1], ch
xor al, bl
mov byte [ebp - 2], ah
xor al, cl
mov cl, byte [ebp - 2]
xor al, byte [ebp - 0x10]
xor al, byte [ebp - 0x28]
xor al, byte [ebp - 0x20]
xor al, byte [ebp - 0x30]
xor al, byte [ebp - 0x18]
xor al, byte [ebp - 6]
xor al, byte [ebp - 3]
xor al, byte [ebp - 5]
mov byte [esi - 1], al
mov eax, dword [ebp - 0x10]
xor cl, al
xor cl, byte [ebp - 0x2c]
xor cl, byte [ebp - 0x1c]
xor cl, byte [ebp - 0x20]
xor cl, byte [ebp - 0x24]
xor cl, ch
xor cl, byte [ebp - 4]
xor cl, byte [ebp - 5]
mov byte [esi], cl
mov cl, byte [ebp - 5]
xor byte [ebp - 1], cl
shl byte [ebp - 1], 1
lea esi, [esi + 4]
xor byte [ebp - 1], dl
mov dl, byte [ebp - 1]
mov ecx, dword [ebp - 0x14]
xor dl, bl
xor dl, cl
xor dl, al
xor dl, byte [ebp - 0x28]
xor dl, byte [ebp - 0x2c]
xor dl, byte [ebp - 0x30]
xor dl, byte [ebp - 0x34]
xor dl, byte [ebp - 3]
xor dl, byte [ebp - 4]
xor dl, byte [ebp - 5]
mov byte [esi - 3], dl
sub edi, 1
jne 0x4589c1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret