Function at 0x4c0bd0
Capabilities:
Encode data using xor
Encrypt data using twofish

Disassembly:
sub esp, 0xc
push ebx
xor eax, eax
push esi
jmp 0x4c0be0
mov bl, byte [eax + 0x5e3d70]
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
mov dl, bl
and dl, 1
mov byte [esp + 0xb], dl
and ecx, 0xb4
neg dl
sbb dl, dl
and edx, 0x5a
mov byte [esp + 9], dl
mov dl, bl
shr dl, 2
xor dl, byte [esp + 9]
xor dl, cl
xor dl, bl
mov byte [esp + 0xc], dl
mov dl, bl
shr dl, 1
xor dl, bl
mov bl, byte [esp + 0xb]
shr dl, 1
neg bl
sbb bl, bl
and ebx, 0xb4
xor dl, bl
xor dl, byte [esp + 9]
mov bl, byte [eax + 0x5e3e70]
xor dl, cl
xor dl, byte [eax + 0x5e3d70]
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
and ecx, 0xb4
mov byte [esp + 0xa], cl
mov cl, bl
and cl, 1
mov byte [esp + 0xb], cl
neg cl
sbb cl, cl
and ecx, 0x5a
mov byte [esp + 9], cl
mov cl, bl
shr cl, 2
xor cl, byte [esp + 9]
xor cl, byte [esp + 0xa]
xor cl, bl
mov byte [esp + 0xd], cl
mov cl, bl
shr cl, 1
xor cl, bl
mov bl, byte [esp + 0xb]
shr cl, 1
neg bl
sbb bl, bl
and ebx, 0xb4
xor cl, bl
xor cl, byte [esp + 9]
mov bl, byte [eax + 0x5e3e70]
xor cl, byte [esp + 0xa]
mov byte [esp + 0x10], bl
xor cl, bl
movzx ebx, byte [esp + 0xd]
mov byte [esp + 0x11], bl
movzx ebx, byte [esp + 0xc]
mov byte [esp + 0x12], cl
mov byte [esp + 0x13], cl
mov esi, dword [esp + 0x10]
mov byte [esp + 0x12], bl
mov bl, byte [eax + 0x5e3d70]
mov byte [esp + 0x13], bl
movzx ebx, byte [esp + 0xd]
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], dl
mov dword [eax*4 + 0x5eb460], esi
mov esi, dword [esp + 0x10]
mov dword [eax*4 + 0x5eb860], esi
mov byte [esp + 0x10], bl
mov bl, byte [eax + 0x5e3e70]
mov byte [esp + 0x11], cl
mov byte [esp + 0x13], cl
mov byte [esp + 0x12], bl
mov ecx, dword [esp + 0x10]
mov bl, byte [esp + 0xc]
mov dword [eax*4 + 0x5ebc60], ecx
mov cl, byte [eax + 0x5e3d70]
mov byte [esp + 0x11], cl
mov cl, byte [eax + 0x5e3d71]
mov byte [esp + 0x12], dl
mov byte [esp + 0x10], bl
mov byte [esp + 0x13], bl
mov edx, dword [esp + 0x10]
mov dword [eax*4 + 0x5ec060], edx
mov dl, cl
and dl, 2
neg dl
sbb dl, dl
and edx, 0xb4
mov byte [esp + 0xa], dl
mov dl, cl
and dl, 1
mov byte [esp + 0xb], dl
neg dl
sbb dl, dl
mov bl, byte [esp + 0xb]
and edx, 0x5a
mov byte [esp + 9], dl
mov dl, cl
shr dl, 2
xor dl, byte [esp + 9]
xor dl, byte [esp + 0xa]
xor dl, cl
mov byte [esp + 0xc], dl
mov dl, cl
shr dl, 1
xor dl, cl
shr dl, 1
neg bl
sbb bl, bl
and ebx, 0xb4
xor dl, bl
xor dl, byte [esp + 9]
mov bl, byte [eax + 0x5e3e71]
xor dl, byte [esp + 0xa]
xor dl, cl
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
and ecx, 0xb4
mov byte [esp + 0xa], cl
mov cl, bl
and cl, 1
mov byte [esp + 0xb], cl
neg cl
sbb cl, cl
and ecx, 0x5a
mov byte [esp + 9], cl
mov cl, bl
shr cl, 2
xor cl, byte [esp + 9]
xor cl, byte [esp + 0xa]
xor cl, bl
mov byte [esp + 0xd], cl
mov cl, bl
shr cl, 1
xor cl, bl
mov bl, byte [esp + 0xb]
shr cl, 1
neg bl
sbb bl, bl
and ebx, 0xb4
xor cl, bl
xor cl, byte [esp + 9]
mov bl, byte [eax + 0x5e3e71]
xor cl, byte [esp + 0xa]
mov byte [esp + 0x10], bl
xor cl, bl
movzx ebx, byte [esp + 0xd]
mov byte [esp + 0x12], cl
mov byte [esp + 0x13], cl
mov byte [esp + 0x11], bl
mov esi, dword [esp + 0x10]
movzx ebx, byte [esp + 0xc]
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], dl
mov byte [esp + 0x12], bl
mov bl, byte [eax + 0x5e3d71]
mov byte [esp + 0x13], bl
movzx ebx, byte [esp + 0xd]
mov dword [eax*4 + 0x5eb464], esi
mov esi, dword [esp + 0x10]
mov byte [esp + 0x11], cl
mov byte [esp + 0x13], cl
mov byte [esp + 0x10], bl
mov bl, byte [eax + 0x5e3e71]
mov byte [esp + 0x12], bl
mov ecx, dword [esp + 0x10]
mov bl, byte [esp + 0xc]
mov byte [esp + 0x12], dl
mov dword [eax*4 + 0x5ebc64], ecx
mov cl, byte [eax + 0x5e3d71]
mov byte [esp + 0x11], cl
mov cl, byte [eax + 0x5e3d72]
mov byte [esp + 0x10], bl
mov byte [esp + 0x13], bl
mov edx, dword [esp + 0x10]
mov dword [eax*4 + 0x5ec064], edx
mov dl, cl
and dl, 2
neg dl
sbb dl, dl
mov dword [eax*4 + 0x5eb864], esi
and edx, 0xb4
mov byte [esp + 0xa], dl
mov dl, cl
and dl, 1
mov byte [esp + 0xb], dl
neg dl
sbb dl, dl
mov bl, byte [esp + 0xb]
and edx, 0x5a
mov byte [esp + 9], dl
mov dl, cl
shr dl, 2
xor dl, byte [esp + 9]
xor dl, byte [esp + 0xa]
xor dl, cl
mov byte [esp + 0xc], dl
mov dl, cl
shr dl, 1
xor dl, cl
shr dl, 1
neg bl
sbb bl, bl
and ebx, 0xb4
xor dl, bl
xor dl, byte [esp + 9]
mov bl, byte [eax + 0x5e3e72]
xor dl, byte [esp + 0xa]
xor dl, cl
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
and ecx, 0xb4
mov byte [esp + 0xa], cl
mov cl, bl
and cl, 1
mov byte [esp + 0xb], cl
neg cl
sbb cl, cl
and ecx, 0x5a
mov byte [esp + 9], cl
mov cl, bl
shr cl, 2
xor cl, byte [esp + 9]
xor cl, byte [esp + 0xa]
xor cl, bl
mov byte [esp + 0xd], cl
mov cl, bl
shr cl, 1
xor cl, bl
mov bl, byte [esp + 0xb]
shr cl, 1
neg bl
sbb bl, bl
and ebx, 0xb4
xor cl, bl
xor cl, byte [esp + 9]
mov bl, byte [eax + 0x5e3e72]
xor cl, byte [esp + 0xa]
mov byte [esp + 0x10], bl
xor cl, bl
movzx ebx, byte [esp + 0xd]
mov byte [esp + 0x11], bl
movzx ebx, byte [esp + 0xc]
mov byte [esp + 0x12], cl
mov byte [esp + 0x13], cl
mov esi, dword [esp + 0x10]
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], dl
mov byte [esp + 0x12], bl
mov bl, byte [eax + 0x5e3d72]
mov byte [esp + 0x13], bl
movzx ebx, byte [esp + 0xd]
mov dword [eax*4 + 0x5eb468], esi
mov esi, dword [esp + 0x10]
mov byte [esp + 0x10], bl
mov bl, byte [eax + 0x5e3e72]
mov byte [esp + 0x11], cl
mov byte [esp + 0x12], bl
mov bl, byte [esp + 0xc]
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0x10]
mov byte [esp + 0x12], dl
mov dword [eax*4 + 0x5ebc68], ecx
mov cl, byte [eax + 0x5e3d72]
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], cl
mov cl, byte [eax + 0x5e3d73]
mov byte [esp + 0x13], bl
mov edx, dword [esp + 0x10]
mov dword [eax*4 + 0x5ec068], edx
mov dl, cl
and dl, 2
neg dl
sbb dl, dl
mov dword [eax*4 + 0x5eb868], esi
and edx, 0xb4
mov byte [esp + 0xa], dl
mov dl, cl
and dl, 1
mov byte [esp + 0xb], dl
neg dl
sbb dl, dl
mov bl, byte [esp + 0xb]
and edx, 0x5a
mov byte [esp + 9], dl
mov dl, cl
shr dl, 2
xor dl, byte [esp + 9]
xor dl, byte [esp + 0xa]
xor dl, cl
mov byte [esp + 0xc], dl
mov dl, cl
shr dl, 1
xor dl, cl
shr dl, 1
neg bl
sbb bl, bl
and ebx, 0xb4
xor dl, bl
xor dl, byte [esp + 9]
mov bl, byte [eax + 0x5e3e73]
xor dl, byte [esp + 0xa]
xor dl, cl
mov cl, bl
and cl, 2
neg cl
sbb cl, cl
and ecx, 0xb4
mov byte [esp + 0xa], cl
mov cl, bl
and cl, 1
mov byte [esp + 0xb], cl
neg cl
sbb cl, cl
and ecx, 0x5a
mov byte [esp + 9], cl
mov cl, bl
shr cl, 2
xor cl, byte [esp + 9]
xor cl, byte [esp + 0xa]
xor cl, bl
mov byte [esp + 0xd], cl
mov cl, bl
shr cl, 1
xor cl, bl
mov bl, byte [esp + 0xb]
shr cl, 1
neg bl
sbb bl, bl
add eax, 4
and ebx, 0xb4
xor cl, bl
xor cl, byte [esp + 9]
mov bl, byte [eax + 0x5e3e6f]
xor cl, byte [esp + 0xa]
mov byte [esp + 0x10], bl
xor cl, bl
cmp eax, 0x100
movzx ebx, byte [esp + 0xd]
mov byte [esp + 0x11], bl
movzx ebx, byte [esp + 0xc]
mov byte [esp + 0x12], cl
mov byte [esp + 0x13], cl
mov esi, dword [esp + 0x10]
mov byte [esp + 0x12], bl
mov bl, byte [eax + 0x5e3d6f]
mov byte [esp + 0x13], bl
movzx ebx, byte [esp + 0xd]
mov byte [esp + 0x10], dl
mov byte [esp + 0x11], dl
mov dword [eax*4 + 0x5eb45c], esi
mov esi, dword [esp + 0x10]
mov byte [esp + 0x10], bl
mov bl, byte [eax + 0x5e3e6f]
mov byte [esp + 0x11], cl
mov byte [esp + 0x12], bl
mov bl, byte [esp + 0xc]
mov byte [esp + 0x13], cl
mov ecx, dword [esp + 0x10]
mov dword [eax*4 + 0x5ebc5c], ecx
mov cl, byte [eax + 0x5e3d6f]
mov byte [esp + 0x10], bl
mov byte [esp + 0x11], cl
mov byte [esp + 0x12], dl
mov byte [esp + 0x13], bl
mov edx, dword [esp + 0x10]
mov dword [eax*4 + 0x5eb85c], esi
mov dword [eax*4 + 0x5ec05c], edx
jl 0x4c0be0
pop esi
mov dword [0x5e3f70], 0
pop ebx
add esp, 0xc
ret