Function at 0x491180
Capabilities:
Encrypt data using twofish

Disassembly:
push rbp
push rdi
push rsi
sub rsp, 0x20
mov rbp, rsp
mov rax, rcx
mov rsi, r8
xor rcx, rcx
mov r8d, r9d
add r8d, 1
add r8d, r8d
add r8d, r8d
mov r8d, r8d
add r8, 0xf
and r8, 0xfffffffffffffff0
sub rsp, r8
lea r8, [rsp + rcx]
mov ecx, r9d
add ecx, 1
add ecx, ecx
add ecx, ecx
mov rdi, r8
rep movsb byte [rdi], byte [rsi]
mov qword [rbp + 0x18], r8
mov qword [rbp + 0x40], rax
mov dword [rbp + 0x48], edx
mov dword [rbp + 0x58], r9d
mov eax, dword [rbp + 0x48]
and eax, 0xff
mov dword [rbp + 0x10], eax
mov eax, dword [rbp + 0x48]
shr eax, 8
and eax, 0xff
mov dword [rbp + 0xc], eax
mov eax, dword [rbp + 0x48]
shr eax, 0x10
and eax, 0xff
mov dword [rbp + 8], eax
mov eax, dword [rbp + 0x48]
shr eax, 0x18
mov dword [rbp + 4], eax
mov rax, qword [rbp + 0x40]
lea rax, [rax + rbp + 0xa0]
mov rcx, rbp
neg rcx
mov rax, qword [rax + rcx]
lea rax, [rax + rbp + 0x70]
mov rcx, rbp
neg rcx
cmp dword [rax + rcx], 0x20
jne 0x4912b9
lea rax, [0x007434c4]
movsxd rcx, dword [rbp + 0x10]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 0xc]
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 0x10], eax
lea rax, [0x007433c4]
movsxd rcx, dword [rbp + 0xc]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 0xc]
shr ecx, 8
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 0xc], eax
lea rax, [0x007433c4]
movsxd rcx, dword [rbp + 8]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 0xc]
shr ecx, 0x10
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 8], eax
lea rax, [0x007434c4]
movsxd rcx, dword [rbp + 4]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 0xc]
shr ecx, 0x18
xor eax, ecx
mov dword [rbp + 4], eax
mov rax, qword [rbp + 0x40]
lea rax, [rax + rbp + 0xa0]
mov rcx, rbp
neg rcx
mov rax, qword [rax + rcx]
lea rax, [rax + rbp + 0x70]
mov rcx, rbp
neg rcx
cmp dword [rax + rcx], 0x18
jl 0x49136f
lea rax, [0x007434c4]
movsxd rcx, dword [rbp + 0x10]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 8]
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 0x10], eax
lea rax, [0x007434c4]
movsxd rcx, dword [rbp + 0xc]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 8]
shr ecx, 8
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 0xc], eax
lea rax, [0x007433c4]
movsxd rcx, dword [rbp + 8]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 8]
shr ecx, 0x10
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 8], eax
lea rax, [0x007433c4]
movsxd rcx, dword [rbp + 4]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 8]
shr ecx, 0x18
xor eax, ecx
mov dword [rbp + 4], eax
lea rax, [0x007433c4]
movsxd rcx, dword [rbp + 0x10]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 4]
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 0x10], eax
lea rax, [0x007434c4]
movsxd rcx, dword [rbp + 0xc]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 4]
shr ecx, 8
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 0xc], eax
lea rax, [0x007433c4]
movsxd rcx, dword [rbp + 8]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 4]
shr ecx, 0x10
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 8], eax
lea rax, [0x007434c4]
movsxd rcx, dword [rbp + 4]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx + 4]
shr ecx, 0x18
xor eax, ecx
mov dword [rbp + 4], eax
lea rax, [0x007433c4]
movsxd rcx, dword [rbp + 0x10]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx]
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 0x10], eax
lea rax, [0x007433c4]
movsxd rcx, dword [rbp + 0xc]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx]
shr ecx, 8
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 0xc], eax
lea rax, [0x007434c4]
movsxd rcx, dword [rbp + 8]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx]
shr ecx, 0x10
and ecx, 0xff
xor eax, ecx
mov dword [rbp + 8], eax
lea rax, [0x007434c4]
movsxd rcx, dword [rbp + 4]
movzx rax, byte [rax + rcx]
mov rcx, qword [rbp + 0x18]
mov ecx, dword [rcx]
shr ecx, 0x18
xor eax, ecx
mov dword [rbp + 4], eax
lea rax, [0x007435c4]
movsxd rcx, dword [rbp + 0x10]
lea rdx, [0x007439c4]
movsxd r8, dword [rbp + 0xc]
mov eax, dword [rax + rcx*4]
xor eax, dword [rdx + r8*4]
lea rcx, [0x00743dc4]
movsxd rdx, dword [rbp + 8]
xor eax, dword [rcx + rdx*4]
lea rcx, str.9g
movsxd rdx, dword [rbp + 4]
xor eax, dword [rcx + rdx*4]
mov dword [rbp + 0x14], eax
mov eax, dword [rbp + 0x14]
lea rsp, [rbp + 0x20]
pop rsi
pop rdi
pop rbp
ret