Function at 0x40a530
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
add esi, 2
mov edi, 4
movzx eax, byte [esi]
mov dl, byte [esi - 2]
mov byte [ebp - 3], al
mov al, dl
shr al, 7
mov cl, 0x1b
imul cl
mov byte [ebp - 0x10], al
mov bl, byte [esi - 1]
mov byte [ebp - 5], dl
add dl, dl
xor dl, al
mov al, dl
shr al, 7
mov byte [ebp - 0xd], al
imul cl
mov byte [ebp - 4], bl
mov cl, dl
add cl, cl
mov byte [ebp + 0xb], cl
mov cl, al
movzx eax, byte [ebp + 0xb]
xor cl, al
mov al, bl
shr al, 7
mov bl, 0x1b
imul bl
mov byte [ebp - 6], al
mov al, byte [ebp - 4]
add al, al
xor al, byte [ebp - 6]
mov byte [ebp - 0x11], dl
mov byte [ebp - 0xa], al
shr al, 7
mov byte [ebp - 0xf], al
imul bl
movzx ebx, byte [ebp - 0xa]
add bl, bl
xor al, bl
mov byte [ebp - 1], al
movzx eax, byte [ebp - 3]
shr al, 7
mov bl, 0x1b
imul bl
mov byte [ebp - 8], al
mov al, byte [ebp - 3]
add al, al
xor al, byte [ebp - 8]
mov byte [ebp - 7], al
shr al, 7
mov byte [ebp - 0xc], al
imul bl
movzx ebx, byte [ebp - 7]
add bl, bl
xor al, bl
mov byte [ebp + 0xb], al
movzx eax, byte [esi + 1]
shr al, 7
mov bl, 0x1b
imul bl
mov byte [ebp - 0xb], al
mov al, byte [esi + 1]
add al, al
xor al, byte [ebp - 0xb]
mov byte [ebp - 9], al
shr al, 7
mov byte [ebp - 0xe], al
imul bl
movzx ebx, byte [ebp - 9]
add bl, bl
xor al, bl
movzx ebx, byte [ebp - 7]
xor bl, dl
xor bl, al
xor bl, byte [ebp + 0xb]
mov byte [ebp - 2], al
xor bl, byte [ebp - 1]
xor bl, cl
xor bl, byte [ebp - 4]
xor bl, byte [ebp - 5]
add bl, bl
shr al, 7
mov dl, 0x1b
imul dl
xor bl, al
movzx eax, byte [ebp + 0xb]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [ebp - 1]
shr al, 7
imul dl
xor bl, al
mov al, cl
shr al, 7
imul dl
xor bl, al
movzx eax, byte [ebp - 0xc]
imul dl
xor bl, al
movzx eax, byte [ebp - 0xd]
imul dl
xor bl, al
xor bl, byte [ebp - 6]
mov al, byte [ebp - 3]
xor bl, byte [ebp - 0x10]
mov dl, byte [ebp - 4]
xor bl, byte [esi + 1]
xor bl, al
xor bl, dl
mov byte [esi - 2], bl
movzx ebx, byte [ebp - 2]
xor bl, byte [ebp + 0xb]
xor bl, byte [ebp - 1]
xor bl, cl
xor bl, byte [ebp - 9]
xor bl, byte [ebp - 0xa]
xor bl, al
movzx eax, byte [ebp - 2]
shr al, 7
xor bl, dl
mov dl, 0x1b
imul dl
add bl, bl
xor bl, al
movzx eax, byte [ebp + 0xb]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [ebp - 1]
shr al, 7
imul dl
xor bl, al
mov al, cl
shr al, 7
imul dl
xor bl, al
movzx eax, byte [ebp - 0xe]
imul dl
xor bl, al
movzx eax, byte [ebp - 0xf]
imul dl
mov dl, byte [esi + 1]
xor bl, al
xor bl, byte [ebp - 8]
xor bl, byte [ebp - 6]
xor bl, dl
movzx eax, bl
mov bl, byte [ebp - 3]
xor al, bl
xor al, byte [ebp - 5]
mov byte [esi - 1], al
movzx eax, byte [ebp - 2]
xor al, byte [ebp + 0xb]
xor al, byte [ebp - 1]
xor al, cl
xor al, byte [ebp - 7]
xor al, byte [ebp - 0x11]
xor al, dl
xor al, bl
add al, al
mov byte [ebp - 0x11], al
movzx eax, byte [ebp - 2]
shr al, 7
mov dl, 0x1b
imul dl
movzx edx, byte [ebp - 0x11]
xor dl, al
movzx eax, byte [ebp + 0xb]
shr al, 7
mov bl, 0x1b
imul bl
xor dl, al
movzx eax, byte [ebp - 1]
shr al, 7
imul bl
xor dl, al
mov al, cl
shr al, 7
imul bl
xor dl, al
movzx eax, byte [ebp - 0xc]
imul bl
xor dl, al
movzx eax, byte [ebp - 0xd]
imul bl
xor dl, al
xor dl, byte [ebp - 0xb]
mov bl, byte [ebp - 5]
xor dl, byte [ebp - 8]
add esi, 4
mov byte [ebp - 0x11], dl
mov dl, byte [esi - 3]
movzx eax, byte [ebp - 0x11]
xor al, dl
xor al, byte [ebp - 4]
xor al, bl
mov byte [esi - 4], al
movzx eax, byte [ebp - 2]
xor al, byte [ebp + 0xb]
xor al, byte [ebp - 1]
xor al, cl
xor al, byte [ebp - 9]
xor al, byte [ebp - 0xa]
xor al, dl
xor al, bl
add al, al
mov byte [ebp - 0x11], al
movzx eax, byte [ebp - 2]
shr al, 7
mov dl, 0x1b
imul dl
movzx edx, byte [ebp - 0x11]
xor dl, al
movzx eax, byte [ebp + 0xb]
shr al, 7
mov bl, 0x1b
imul bl
xor dl, al
movzx eax, byte [ebp - 1]
shr al, 7
imul bl
xor dl, al
mov al, cl
shr al, 7
mov cl, bl
imul cl
xor dl, al
movzx eax, byte [ebp - 0xe]
imul cl
xor dl, al
movzx eax, byte [ebp - 0xf]
imul cl
xor dl, al
xor dl, byte [ebp - 0xb]
xor dl, byte [ebp - 0x10]
xor dl, byte [ebp - 3]
xor dl, byte [ebp - 4]
xor dl, byte [ebp - 5]
dec edi
mov byte [esi - 3], dl
jne 0x40a544
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4