Function at 0x40f500
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x10
push ebx
push esi
mov esi, ecx
push edi
mov dword [ebp - 0x10], esi
xor edi, edi
mov eax, dword [esi]
lea esi, [edi + eax]
mov ah, 0x1b
mov cl, byte [esi]
mov al, byte [esi + 3]
mov byte [ebp - 3], al
mov al, cl
shr al, 7
imul ah
mov byte [ebp - 8], cl
mov ah, 0x1b
add cl, cl
mov bl, byte [esi + 1]
xor cl, al
mov byte [ebp - 0xa], al
mov al, cl
mov byte [ebp - 2], cl
shr al, 7
add cl, cl
imul ah
mov dl, byte [esi + 2]
mov ch, al
mov byte [ebp - 6], bl
xor ch, cl
mov byte [ebp - 5], dl
mov al, bl
mov cl, 0x1b
shr al, 7
imul cl
mov cl, bl
mov bl, 0x1b
add cl, cl
mov dh, al
xor cl, dh
mov al, cl
mov byte [ebp - 1], cl
shr al, 7
add cl, cl
imul bl
mov bl, al
mov al, dl
xor bl, cl
shr al, 7
mov cl, 0x1b
imul cl
mov cl, dl
mov dl, 0x1b
add cl, cl
mov bh, al
xor cl, bh
mov al, cl
mov byte [ebp - 7], cl
shr al, 7
add cl, cl
imul dl
mov ah, 0x1b
mov dl, al
xor dl, cl
mov cl, byte [ebp - 3]
mov al, cl
add cl, cl
shr al, 7
imul ah
mov ah, 0x1b
xor cl, al
mov byte [ebp - 9], al
mov al, cl
mov byte [ebp - 4], cl
shr al, 7
add cl, cl
imul ah
xor al, cl
mov cl, al
xor cl, dl
xor cl, byte [ebp - 7]
xor cl, bl
xor cl, ch
xor cl, byte [ebp - 2]
xor cl, byte [ebp - 6]
xor cl, byte [ebp - 8]
add cl, cl
shr al, 7
mov ah, 0x1b
imul ah
shr dl, 7
xor cl, al
shr bl, 7
mov al, dl
shr ch, 7
mov dl, 0x1b
imul dl
xor cl, al
mov al, byte [ebp - 7]
shr al, 7
imul dl
xor cl, al
mov al, bl
imul dl
mov bl, 0x1b
xor cl, al
mov al, ch
imul dl
mov dl, byte [ebp - 2]
xor cl, al
mov al, dl
shr al, 7
imul bl
xor cl, al
mov al, dl
xor cl, dh
shr al, 7
xor cl, byte [ebp - 0xa]
xor cl, byte [ebp - 3]
xor cl, byte [ebp - 5]
xor cl, byte [ebp - 6]
mov byte [esi], cl
mov cl, bl
imul cl
mov cl, dl
mov dl, bl
add cl, cl
mov ch, al
xor ch, cl
mov cl, byte [ebp - 1]
mov al, cl
add cl, cl
shr al, 7
imul dl
mov bl, al
xor bl, cl
mov cl, byte [ebp - 7]
mov al, cl
add cl, cl
shr al, 7
imul dl
mov ah, 0x1b
mov dl, al
xor dl, cl
mov cl, byte [ebp - 4]
mov al, cl
add cl, cl
shr al, 7
imul ah
mov ah, 0x1b
xor al, cl
mov cl, al
shr al, 7
xor cl, byte [ebp - 4]
xor cl, dl
xor cl, bl
xor cl, byte [ebp - 1]
xor cl, ch
xor cl, byte [ebp - 5]
xor cl, byte [ebp - 6]
imul ah
add cl, cl
mov ah, 0x1b
xor cl, al
mov al, byte [ebp - 4]
shr al, 7
imul ah
xor cl, al
shr dl, 7
mov al, dl
shr bl, 7
mov dl, 0x1b
mov esi, dword [ebp - 0x10]
imul dl
shr ch, 7
xor cl, al
mov al, bl
imul dl
mov dl, byte [ebp - 1]
mov bl, 0x1b
xor cl, al
mov al, dl
shr al, 7
imul bl
xor cl, al
mov al, ch
imul bl
xor cl, al
mov eax, dword [esi]
xor cl, bh
xor cl, dh
mov dh, byte [ebp - 7]
xor cl, byte [ebp - 3]
xor cl, byte [ebp - 5]
xor cl, byte [ebp - 8]
mov byte [edi + eax + 1], cl
mov cl, byte [ebp - 2]
mov al, cl
add cl, cl
shr al, 7
imul bl
mov ch, al
mov al, dl
xor ch, cl
shr al, 7
mov cl, bl
imul cl
mov cl, dl
add cl, cl
mov bl, al
xor bl, cl
mov al, dh
shr al, 7
mov cl, 0x1b
imul cl
mov cl, dh
mov ah, 0x1b
add cl, cl
mov dl, al
xor dl, cl
mov cl, byte [ebp - 4]
mov al, cl
add cl, cl
shr al, 7
imul ah
mov ah, 0x1b
xor al, cl
mov cl, al
shr al, 7
xor cl, dl
shr dl, 7
xor cl, dh
xor cl, bl
xor cl, ch
xor cl, byte [ebp - 2]
xor cl, byte [ebp - 3]
xor cl, byte [ebp - 5]
imul ah
add cl, cl
xor cl, al
mov al, dl
mov dl, 0x1b
imul dl
xor cl, al
mov al, dh
shr al, 7
imul dl
xor cl, al
shr bl, 7
mov al, bl
shr ch, 7
imul dl
mov bl, 0x1b
xor cl, al
mov al, ch
imul dl
mov dl, byte [ebp - 2]
xor cl, al
mov al, dl
shr al, 7
imul bl
xor cl, al
mov eax, dword [esi]
xor cl, byte [ebp - 9]
xor cl, bh
xor cl, byte [ebp - 3]
xor cl, byte [ebp - 6]
xor cl, byte [ebp - 8]
mov byte [edi + eax + 2], cl
mov al, dl
shr al, 7
mov cl, bl
imul cl
mov cl, byte [ebp - 1]
add dl, dl
mov ch, al
mov al, cl
shr al, 7
add cl, cl
xor ch, dl
mov dl, bl
imul dl
mov bl, al
mov al, dh
xor bl, cl
shr al, 7
mov cl, dl
add dh, dh
imul cl
mov dl, al
xor dl, dh
mov dh, byte [ebp - 4]
mov al, dh
shr al, 7
imul cl
mov cl, dh
mov ah, 0x1b
add cl, cl
xor al, cl
mov cl, al
shr al, 7
xor cl, dh
shr dh, 7
xor cl, dl
shr dl, 7
xor cl, bl
shr bl, 7
xor cl, byte [ebp - 1]
imul ah
xor cl, ch
mov ah, 0x1b
xor cl, byte [ebp - 3]
xor cl, byte [ebp - 8]
add cl, cl
xor cl, al
mov al, dh
imul ah
xor cl, al
mov al, dl
mov dl, 0x1b
imul dl
xor cl, al
mov al, bl
imul dl
xor cl, al
mov al, byte [ebp - 1]
shr al, 7
imul dl
xor cl, al
shr ch, 7
mov al, ch
imul dl
xor cl, al
mov eax, dword [esi]
xor cl, byte [ebp - 9]
xor cl, byte [ebp - 0xa]
xor cl, byte [ebp - 5]
xor cl, byte [ebp - 6]
xor cl, byte [ebp - 8]
mov byte [edi + eax + 3], cl
add edi, 4
cmp edi, 0x10
jl 0x40f510
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret