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

Disassembly:
mov eax, dword [esp + 8]
sub eax, 2
push ebx
push ebp
push esi
push edi
je 0x4418a2
dec eax
je 0x441529
dec eax
jne 0x441b3b
mov eax, dword [esp + 0x14]
xor ebx, ebx
lea esi, [ecx + 0x14b8]
jmp 0x441410
movzx ebp, byte [eax + 0xc]
movzx edx, bl
movzx edi, byte [edx + 0x461b20]
xor edi, ebp
movzx edi, byte [edi + 0x461b20]
movzx ebp, byte [eax + 8]
xor edi, ebp
movzx edi, byte [edi + 0x461a20]
movzx ebp, byte [eax + 4]
xor edi, ebp
movzx edi, byte [edi + 0x461a20]
movzx ebp, byte [eax]
xor edi, ebp
mov edi, dword [ecx + edi*4 + 0xb8]
mov dword [esi - 0x400], edi
movzx ebp, byte [edx + 0x461a20]
movzx edi, byte [eax + 0xd]
xor edi, ebp
movzx edi, byte [edi + 0x461b20]
movzx ebp, byte [eax + 9]
xor edi, ebp
movzx edi, byte [edi + 0x461b20]
movzx ebp, byte [eax + 5]
xor edi, ebp
movzx edi, byte [edi + 0x461a20]
movzx ebp, byte [eax + 1]
xor edi, ebp
mov edi, dword [ecx + edi*4 + 0x4b8]
mov dword [esi], edi
movzx ebp, byte [edx + 0x461a20]
movzx edi, byte [eax + 0xe]
xor edi, ebp
movzx edi, byte [edi + 0x461a20]
movzx ebp, byte [eax + 0xa]
xor edi, ebp
movzx edi, byte [edi + 0x461a20]
movzx ebp, byte [eax + 6]
xor edi, ebp
movzx edi, byte [edi + 0x461b20]
movzx ebp, byte [eax + 2]
xor edi, ebp
mov edi, dword [ecx + edi*4 + 0x8b8]
mov dword [esi + 0x400], edi
movzx edx, byte [edx + 0x461b20]
movzx edi, byte [eax + 0xf]
xor edx, edi
movzx edx, byte [edx + 0x461a20]
movzx edi, byte [eax + 0xb]
xor edx, edi
movzx edx, byte [edx + 0x461b20]
movzx edi, byte [eax + 7]
xor edx, edi
movzx edx, byte [edx + 0x461b20]
movzx edi, byte [eax + 3]
xor edx, edi
mov edx, dword [ecx + edx*4 + 0xcb8]
mov dword [esi + 0x800], edx
inc ebx
add esi, 4
cmp ebx, 0x100
jb 0x441410
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esp + 0x14]
xor edx, edx
lea esi, [ecx + 0x14b8]
jmp 0x441540
movzx ebx, byte [eax + 8]
movzx edi, dl
movzx ebp, byte [edi + 0x461b20]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 4]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0xb8]
mov dword [esi - 0x400], ebx
movzx ebp, byte [edi + 0x461b20]
movzx ebx, byte [eax + 9]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 5]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 1]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x4b8]
mov dword [esi], ebx
movzx ebx, byte [edi + 0x461a20]
movzx ebp, byte [eax + 0xa]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 6]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 2]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x8b8]
mov dword [esi + 0x400], ebx
movzx edi, byte [edi + 0x461a20]
movzx ebx, byte [eax + 0xb]
xor ebx, edi
movzx edi, byte [ebx + 0x461b20]
movzx ebx, byte [eax + 7]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 3]
xor edi, ebx
mov edi, dword [ecx + edi*4 + 0xcb8]
mov dword [esi + 0x800], edi
mov bl, dl
inc bl
movzx edi, bl
movzx ebp, byte [edi + 0x461b20]
movzx ebx, byte [eax + 8]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 4]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0xb8]
mov dword [esi - 0x3fc], ebx
movzx ebp, byte [edi + 0x461b20]
movzx ebx, byte [eax + 9]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 5]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 1]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x4b8]
mov dword [esi + 4], ebx
movzx ebp, byte [eax + 0xa]
movzx ebx, byte [edi + 0x461a20]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 6]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 2]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x8b8]
mov dword [esi + 0x404], ebx
movzx edi, byte [edi + 0x461a20]
movzx ebx, byte [eax + 0xb]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 7]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 3]
xor edi, ebx
mov edi, dword [ecx + edi*4 + 0xcb8]
mov dword [esi + 0x804], edi
mov bl, dl
add bl, 2
movzx edi, bl
movzx ebp, byte [edi + 0x461b20]
movzx ebx, byte [eax + 8]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 4]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0xb8]
mov dword [esi - 0x3f8], ebx
movzx ebp, byte [edi + 0x461b20]
movzx ebx, byte [eax + 9]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 5]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 1]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x4b8]
mov dword [esi + 8], ebx
movzx ebx, byte [edi + 0x461a20]
movzx ebp, byte [eax + 0xa]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 6]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 2]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x8b8]
mov dword [esi + 0x408], ebx
movzx edi, byte [edi + 0x461a20]
movzx ebx, byte [eax + 0xb]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 7]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 3]
xor edi, ebx
mov edi, dword [ecx + edi*4 + 0xcb8]
mov dword [esi + 0x808], edi
mov bl, dl
add bl, 3
movzx edi, bl
movzx ebp, byte [edi + 0x461b20]
movzx ebx, byte [eax + 8]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 4]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0xb8]
mov dword [esi - 0x3f4], ebx
movzx ebp, byte [edi + 0x461b20]
movzx ebx, byte [eax + 9]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 5]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 1]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x4b8]
mov dword [esi + 0xc], ebx
movzx ebx, byte [edi + 0x461a20]
movzx ebp, byte [eax + 0xa]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 6]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 2]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x8b8]
mov dword [esi + 0x40c], ebx
movzx edi, byte [edi + 0x461a20]
movzx ebx, byte [eax + 0xb]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 7]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 3]
xor edi, ebx
mov edi, dword [ecx + edi*4 + 0xcb8]
mov dword [esi + 0x80c], edi
add edx, 4
add esi, 0x10
cmp edx, 0x100
jb 0x441540
pop edi
pop esi
pop ebp
pop ebx
ret 8
mov eax, dword [esp + 0x14]
xor edx, edx
lea esi, [ecx + 0x14b8]
mov edi, edi
movzx ebp, byte [eax + 4]
movzx edi, dl
movzx ebx, byte [edi + 0x461a20]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0xb8]
mov dword [esi - 0x400], ebx
movzx ebx, byte [edi + 0x461b20]
movzx ebp, byte [eax + 5]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 1]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x4b8]
mov dword [esi], ebx
movzx ebp, byte [edi + 0x461a20]
movzx ebx, byte [eax + 6]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 2]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x8b8]
mov dword [esi + 0x400], ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 7]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 3]
xor edi, ebx
mov edi, dword [ecx + edi*4 + 0xcb8]
mov dword [esi + 0x800], edi
movzx ebp, byte [eax + 4]
mov bl, dl
inc bl
movzx edi, bl
movzx ebx, byte [edi + 0x461a20]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0xb8]
mov dword [esi - 0x3fc], ebx
movzx ebx, byte [edi + 0x461b20]
movzx ebp, byte [eax + 5]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 1]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x4b8]
mov dword [esi + 4], ebx
movzx ebx, byte [edi + 0x461a20]
movzx ebp, byte [eax + 6]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 2]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x8b8]
mov dword [esi + 0x404], ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 7]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 3]
xor edi, ebx
mov edi, dword [ecx + edi*4 + 0xcb8]
mov dword [esi + 0x804], edi
movzx ebp, byte [eax + 4]
mov bl, dl
add bl, 2
movzx edi, bl
movzx ebx, byte [edi + 0x461a20]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0xb8]
mov dword [esi - 0x3f8], ebx
movzx ebx, byte [edi + 0x461b20]
movzx ebp, byte [eax + 5]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 1]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x4b8]
mov dword [esi + 8], ebx
movzx ebx, byte [edi + 0x461a20]
movzx ebp, byte [eax + 6]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 2]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x8b8]
mov dword [esi + 0x408], ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 7]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 3]
xor edi, ebx
mov edi, dword [ecx + edi*4 + 0xcb8]
mov dword [esi + 0x808], edi
movzx ebp, byte [eax + 4]
mov bl, dl
add bl, 3
movzx edi, bl
movzx ebx, byte [edi + 0x461a20]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0xb8]
mov dword [esi - 0x3f4], ebx
movzx ebx, byte [edi + 0x461b20]
movzx ebp, byte [eax + 5]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461a20]
movzx ebp, byte [eax + 1]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x4b8]
mov dword [esi + 0xc], ebx
movzx ebx, byte [edi + 0x461a20]
movzx ebp, byte [eax + 6]
xor ebx, ebp
movzx ebx, byte [ebx + 0x461b20]
movzx ebp, byte [eax + 2]
xor ebx, ebp
mov ebx, dword [ecx + ebx*4 + 0x8b8]
mov dword [esi + 0x40c], ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 7]
xor edi, ebx
movzx edi, byte [edi + 0x461b20]
movzx ebx, byte [eax + 3]
xor edi, ebx
mov edi, dword [ecx + edi*4 + 0xcb8]
mov dword [esi + 0x80c], edi
add edx, 4
add esi, 0x10
cmp edx, 0x100
jb 0x4418b0
pop edi
pop esi
pop ebp
pop ebx
ret 8