Function at 0x463e44
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe0
mov word [ebp - 0x1e], cx
mov dword [ebp - 8], edx
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
call fcn.004049d8
xor eax, eax
push ebp
push 0x4640ed
push dword fs:[eax]
mov dword fs:[eax], esp
mov word [ebp - 0x16], 0
mov eax, dword [ebp - 4]
call fcn.004047e8
test eax, eax
jns 0x463e7f
add eax, 3
sar eax, 2
mov word [ebp - 0x18], ax
mov eax, dword [ebp - 4]
call fcn.004047e8
cmp eax, 3
jle 0x463f98
mov ax, word [ebp - 0x18]
dec eax
test ax, ax
jb 0x463f98
inc eax
mov word [ebp - 0x1c], ax
mov word [ebp - 0x14], 0
movzx eax, word [ebp - 0x14]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax]
sub al, 0x3b
mov byte [ebp - 0xe], al
movzx eax, word [ebp - 0x14]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax + 1]
sub al, 0x3b
mov byte [ebp - 0xf], al
movzx eax, word [ebp - 0x14]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax + 2]
sub al, 0x3b
mov byte [ebp - 0x10], al
movzx eax, word [ebp - 0x14]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax + 3]
sub al, 0x3b
mov byte [ebp - 0x11], al
mov al, byte [ebp - 0xe]
and al, 0xfc
shl eax, 2
mov byte [ebp - 0xb], al
mov al, byte [ebp - 0xe]
and al, 3
mov byte [ebp - 0xc], al
mov al, byte [ebp - 0x11]
and al, 0xc
mov byte [ebp - 0xd], al
movzx eax, word [ebp - 0x16]
mov edx, dword [ebp - 8]
mov cl, byte [ebp - 0xb]
or cl, byte [ebp - 0xc]
or cl, byte [ebp - 0xd]
xor cl, 0xeb
mov byte [edx + eax], cl
inc word [ebp - 0x16]
mov al, byte [ebp - 0xf]
and al, 0xfc
shl eax, 2
mov byte [ebp - 0xb], al
mov al, byte [ebp - 0xf]
and al, 3
mov byte [ebp - 0xc], al
mov al, byte [ebp - 0x11]
and al, 3
shl eax, 2
mov byte [ebp - 0xd], al
movzx eax, word [ebp - 0x16]
mov edx, dword [ebp - 8]
mov cl, byte [ebp - 0xb]
or cl, byte [ebp - 0xc]
or cl, byte [ebp - 0xd]
xor cl, 0xeb
mov byte [edx + eax], cl
inc word [ebp - 0x16]
mov al, byte [ebp - 0x11]
and al, 0x30
shl eax, 2
mov byte [ebp - 0xb], al
movzx eax, word [ebp - 0x16]
mov edx, dword [ebp - 8]
mov cl, byte [ebp - 0x10]
or cl, byte [ebp - 0xb]
xor cl, 0xeb
mov byte [edx + eax], cl
inc word [ebp - 0x16]
inc word [ebp - 0x14]
dec word [ebp - 0x1c]
jne 0x463eb0
mov eax, dword [ebp - 4]
call fcn.004047e8
and eax, 0x80000003
jns 0x463fac
dec eax
or eax, 0xfffffffc
inc eax
mov word [ebp - 0x1a], ax
cmp word [ebp - 0x1a], 2
jne 0x464014
movzx eax, word [ebp - 0x18]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax]
sub al, 0x3b
mov byte [ebp - 0xe], al
movzx eax, word [ebp - 0x18]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax + 1]
sub al, 0x3b
mov byte [ebp - 0xf], al
mov al, byte [ebp - 0xe]
and al, 0xfc
shl eax, 2
mov byte [ebp - 0xb], al
mov al, byte [ebp - 0xe]
and al, 3
mov byte [ebp - 0xc], al
mov al, byte [ebp - 0xf]
and al, 3
shl eax, 2
mov byte [ebp - 0xd], al
movzx eax, word [ebp - 0x16]
mov edx, dword [ebp - 8]
mov cl, byte [ebp - 0xb]
or cl, byte [ebp - 0xc]
or cl, byte [ebp - 0xd]
xor cl, 0xeb
mov byte [edx + eax], cl
inc word [ebp - 0x16]
cmp word [ebp - 0x1a], 3
jne 0x4640c4
movzx eax, word [ebp - 0x18]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax]
sub al, 0x3b
mov byte [ebp - 0xe], al
movzx eax, word [ebp - 0x18]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax + 1]
sub al, 0x3b
mov byte [ebp - 0xf], al
movzx eax, word [ebp - 0x18]
shl eax, 2
mov edx, dword [ebp - 4]
mov al, byte [edx + eax + 2]
sub al, 0x3b
mov byte [ebp - 0x11], al
mov al, byte [ebp - 0xe]
and al, 0xfc
shl eax, 2
mov byte [ebp - 0xb], al
mov al, byte [ebp - 0xe]
and al, 3
mov byte [ebp - 0xc], al
mov al, byte [ebp - 0x11]
and al, 0xc
mov byte [ebp - 0xd], al
movzx eax, word [ebp - 0x16]
mov edx, dword [ebp - 8]
mov cl, byte [ebp - 0xb]
or cl, byte [ebp - 0xc]
or cl, byte [ebp - 0xd]
xor cl, 0xeb
mov byte [edx + eax], cl
inc word [ebp - 0x16]
mov al, byte [ebp - 0xf]
and al, 0xfc
shl eax, 2
mov byte [ebp - 0xb], al
mov al, byte [ebp - 0xf]
and al, 3
mov byte [ebp - 0xc], al
mov al, byte [ebp - 0x11]
and al, 3
shl eax, 2
mov byte [ebp - 0xd], al
movzx eax, word [ebp - 0x16]
mov edx, dword [ebp - 8]
mov cl, byte [ebp - 0xb]
or cl, byte [ebp - 0xc]
or cl, byte [ebp - 0xd]
xor cl, 0xeb
mov byte [edx + eax], cl
inc word [ebp - 0x16]
movzx eax, word [ebp - 0x16]
mov edx, dword [ebp - 8]
mov byte [edx + eax], 0
mov ax, word [ebp - 0x16]
mov word [ebp - 0xa], ax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4640f4
lea eax, [ebp - 4]
call fcn.00404528
ret