Function at 0x404420
Capabilities:
Encrypt data using twofish

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
mov ecx, dword [ebp + 0xc]
mov eax, ecx
sar eax, 8
movzx eax, al
mov dword [ebp - 8], eax
mov eax, ecx
sar eax, 0x10
push ebx
movzx eax, al
push esi
push edi
movzx edi, cl
sar ecx, 0x18
mov dword [ebp - 4], eax
movzx eax, cl
mov dword [ebp + 0xc], eax
mov eax, dword [ebp + 0x10]
xor esi, esi
mov ecx, dword [eax + 4]
mov ebx, dword [eax]
mov edx, dword [eax + 8]
mov dword [ebp + 0x10], ecx
mov ecx, dword [eax + 0xc]
mov eax, dword [ebp + 8]
and eax, 3
mov dword [ebp - 0xc], ecx
cmp eax, 3
ja case.default.0x404473
jmp dword [eax*4 + 0x404640]
mov eax, ebx
sar eax, 0x18
movzx edx, al
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 0x418150]
xor edx, eax
mov eax, ebx
mov esi, dword [edx*4 + 0x41de08]
sar eax, 0x10
movzx ecx, al
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x418150]
xor ecx, eax
mov eax, ebx
xor esi, dword [ecx*4 + 0x41da08]
sar eax, 8
movzx ecx, al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x418050]
xor ecx, eax
movzx eax, bl
xor esi, dword [ecx*4 + 0x41d608]
movzx ecx, byte [edi + 0x418050]
xor ecx, eax
pop edi
xor esi, dword [ecx*4 + 0x41d208]
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc
movzx edi, byte [edi + 0x418150]
movzx eax, cl
xor edi, eax
mov eax, ecx
sar eax, 8
movzx ecx, al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x418050]
xor ecx, eax
mov eax, dword [ebp - 0xc]
sar eax, 0x10
mov dword [ebp - 8], ecx
movzx ecx, al
mov eax, dword [ebp - 4]
movzx eax, byte [eax + 0x418050]
xor ecx, eax
mov eax, dword [ebp - 0xc]
sar eax, 0x18
mov dword [ebp - 4], ecx
movzx ecx, al
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 0x418150]
xor ecx, eax
mov dword [ebp + 0xc], ecx
movzx edi, byte [edi + 0x418150]
movzx eax, dl
xor edi, eax
mov eax, edx
sar eax, 8
movzx ecx, al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x418150]
xor ecx, eax
mov eax, edx
sar eax, 0x10
mov dword [ebp - 8], ecx
movzx ecx, al
mov eax, dword [ebp - 4]
sar edx, 0x18
movzx eax, byte [eax + 0x418050]
xor ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 4], ecx
movzx eax, byte [eax + 0x418050]
movzx ecx, dl
xor ecx, eax
mov dword [ebp + 0xc], ecx
mov eax, dword [ebp + 0x10]
sar eax, 0x18
movzx ecx, al
mov eax, dword [ebp + 0xc]
movzx eax, byte [eax + 0x418150]
xor ecx, eax
mov eax, ebx
movzx edx, byte [ecx + 0x418150]
sar eax, 0x18
movzx eax, al
xor edx, eax
mov eax, dword [ebp + 0x10]
mov esi, dword [edx*4 + 0x41de08]
sar eax, 0x10
movzx ecx, al
mov eax, dword [ebp - 4]
movzx edx, byte [edi + 0x418050]
movzx eax, byte [eax + 0x418050]
xor ecx, eax
mov eax, ebx
movzx ecx, byte [ecx + 0x418150]
sar eax, 0x10
movzx eax, al
xor ecx, eax
mov eax, dword [ebp + 0x10]
xor esi, dword [ecx*4 + 0x41da08]
sar eax, 8
movzx ecx, al
mov eax, dword [ebp - 8]
movzx eax, byte [eax + 0x418150]
xor ecx, eax
mov eax, ebx
movzx ecx, byte [ecx + 0x418050]
sar eax, 8
movzx eax, al
xor ecx, eax
mov eax, dword [ebp + 0x10]
xor esi, dword [ecx*4 + 0x41d608]
movzx ecx, al
xor edx, ecx
movzx ecx, bl
movzx edx, byte [edx + 0x418050]
xor edx, ecx
xor esi, dword [edx*4 + 0x41d208]
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0xc