Function at 0x405d00
Capabilities:
Encode data using xor

Disassembly:
sub esp, 0x24
push ebx
push esi
mov esi, eax
push edi
add esi, 2
mov edi, 4
movzx eax, byte [esi]
mov cl, byte [esi - 2]
mov byte [esp + 0x10], al
mov al, cl
shr al, 7
mov bl, byte [esi - 1]
mov dl, 0x1b
imul dl
mov byte [esp + 0x2b], al
mov byte [esp + 0x12], cl
add cl, cl
xor cl, al
mov al, cl
shr al, 7
imul dl
mov dl, cl
add dl, dl
xor al, dl
mov byte [esp + 0x1c], al
mov al, bl
shr al, 7
mov byte [esp + 0x11], bl
add bl, bl
mov dl, 0x1b
imul dl
xor bl, al
mov byte [esp + 0x20], al
mov al, bl
shr al, 7
imul dl
mov dl, byte [esp + 0x10]
mov byte [esp + 0xf], bl
add bl, bl
xor al, bl
mov byte [esp + 0x18], al
mov al, dl
shr al, 7
mov bl, 0x1b
imul bl
mov byte [esp + 0x24], al
add dl, dl
xor dl, al
mov al, dl
shr al, 7
imul bl
mov bl, dl
add bl, bl
xor al, bl
mov byte [esp + 0x14], al
movzx eax, byte [esi + 1]
shr al, 7
mov bl, 0x1b
imul bl
mov byte [esp + 0x13], al
mov al, byte [esi + 1]
add al, al
xor al, byte [esp + 0x13]
mov byte [esp + 0xe], dl
mov byte [esp + 0xd], al
shr al, 7
imul bl
movzx ebx, byte [esp + 0xd]
add bl, bl
xor al, bl
mov bl, al
xor bl, byte [esp + 0x14]
mov byte [esp + 0x2c], al
xor bl, dl
xor bl, byte [esp + 0x18]
movzx eax, al
xor bl, byte [esp + 0x1c]
shr al, 7
xor bl, cl
xor bl, byte [esp + 0x11]
mov dl, 0x1b
xor bl, byte [esp + 0x12]
imul dl
add bl, bl
xor bl, al
movzx eax, byte [esp + 0x14]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0xe]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0x18]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0x1c]
shr al, 7
imul dl
xor bl, al
mov al, cl
shr al, 7
imul dl
xor bl, al
xor bl, byte [esp + 0x20]
mov al, cl
xor bl, byte [esp + 0x2b]
shr al, 7
xor bl, byte [esi + 1]
imul dl
xor bl, byte [esp + 0x10]
mov dl, al
xor bl, byte [esp + 0x11]
mov al, cl
add al, al
xor dl, al
mov al, byte [esp + 0xf]
mov byte [esi - 2], bl
shr al, 7
mov bl, 0x1b
imul bl
movzx ebx, byte [esp + 0xf]
add bl, bl
xor al, bl
mov byte [esp + 0x18], al
mov al, byte [esp + 0xe]
shr al, 7
mov bl, 0x1b
imul bl
movzx ebx, byte [esp + 0xe]
add bl, bl
xor al, bl
mov byte [esp + 0x1c], al
mov al, byte [esp + 0xd]
shr al, 7
mov bl, 0x1b
imul bl
movzx ebx, byte [esp + 0xd]
add bl, bl
xor al, bl
mov bl, al
xor bl, byte [esp + 0xd]
mov byte [esp + 0x2c], al
xor bl, byte [esp + 0x1c]
movzx eax, al
xor bl, byte [esp + 0x18]
shr al, 7
xor bl, byte [esp + 0xf]
mov byte [esp + 0x14], dl
xor bl, dl
xor bl, byte [esp + 0x10]
mov dl, 0x1b
xor bl, byte [esp + 0x11]
imul dl
add bl, bl
xor bl, al
movzx eax, byte [esp + 0xd]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0x1c]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0x18]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0xf]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0x14]
shr al, 7
imul dl
xor bl, al
xor bl, byte [esp + 0x24]
mov al, cl
xor bl, byte [esp + 0x20]
shr al, 7
xor bl, byte [esi + 1]
imul dl
xor bl, byte [esp + 0x10]
mov dl, al
xor bl, byte [esp + 0x12]
mov al, cl
add al, al
xor dl, al
mov al, byte [esp + 0xf]
shr al, 7
mov byte [esi - 1], bl
mov bl, 0x1b
imul bl
movzx ebx, byte [esp + 0xf]
add bl, bl
xor al, bl
mov byte [esp + 0x1c], al
mov al, byte [esp + 0xe]
shr al, 7
mov bl, 0x1b
imul bl
movzx ebx, byte [esp + 0xe]
add bl, bl
xor al, bl
mov byte [esp + 0x20], al
mov al, byte [esp + 0xd]
shr al, 7
mov bl, 0x1b
imul bl
movzx ebx, byte [esp + 0xd]
add bl, bl
xor al, bl
mov bl, al
xor bl, byte [esp + 0x20]
mov byte [esp + 0x2c], al
xor bl, byte [esp + 0xe]
movzx eax, al
xor bl, byte [esp + 0x1c]
shr al, 7
xor bl, dl
xor bl, cl
xor bl, byte [esi + 1]
mov byte [esp + 0x18], dl
xor bl, byte [esp + 0x10]
mov dl, 0x1b
imul dl
add bl, bl
xor bl, al
movzx eax, byte [esp + 0x20]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0xe]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0x1c]
shr al, 7
imul dl
xor bl, al
movzx eax, byte [esp + 0x18]
shr al, 7
imul dl
xor bl, al
mov al, cl
shr al, 7
imul dl
xor bl, al
xor bl, byte [esp + 0x13]
mov al, cl
shr al, 7
imul dl
xor bl, byte [esp + 0x24]
add cl, cl
xor al, cl
mov cl, byte [esp + 0xf]
xor bl, byte [esi + 1]
mov byte [esp + 0x20], al
xor bl, byte [esp + 0x11]
mov al, cl
shr al, 7
imul dl
xor bl, byte [esp + 0x12]
mov dl, cl
add dl, dl
xor al, dl
mov dl, byte [esp + 0xe]
mov byte [esp + 0x24], al
mov al, dl
shr al, 7
add dl, dl
mov byte [esi], bl
mov bl, 0x1b
imul bl
mov bl, al
mov al, byte [esp + 0xd]
xor bl, dl
shr al, 7
mov dl, 0x1b
imul dl
movzx edx, byte [esp + 0xd]
add dl, dl
xor al, dl
mov dl, al
xor dl, byte [esp + 0xd]
mov byte [esp + 0x2c], al
xor dl, bl
xor dl, byte [esp + 0x24]
movzx eax, al
xor dl, cl
xor dl, byte [esp + 0x20]
shr al, 7
xor dl, byte [esi + 1]
mov byte [esp + 0x1c], bl
xor dl, byte [esp + 0x12]
mov bl, 0x1b
imul bl
add dl, dl
xor dl, al
movzx eax, byte [esp + 0xd]
shr al, 7
imul bl
xor dl, al
movzx eax, byte [esp + 0x1c]
shr al, 7
imul bl
xor dl, al
movzx eax, byte [esp + 0x24]
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 [esp + 0x20]
shr al, 7
imul cl
xor dl, al
xor dl, byte [esp + 0x13]
add esi, 4
xor dl, byte [esp + 0x2b]
xor dl, byte [esp + 0x10]
xor dl, byte [esp + 0x11]
xor dl, byte [esp + 0x12]
sub edi, 1
mov byte [esi - 3], dl
jne 0x405d10
pop edi
pop esi
pop ebx
add esp, 0x24
ret