Function at 0x401380
Capabilities:
Encode data using xor

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