Function at 0x1800027ac
Capabilities:
Encrypt data using twofish

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x10
add r8, 0x3f
mov eax, ecx
shr r8, 6
lea rbp, [0x18001e4b0]
mov dword [rsp], eax
mov rsi, rdx
and r8d, 3
je 0x18000282e
sub r8, 2
je 0x18000281a
cmp r8, 1
je 0x180002807
mov al, byte [rsp + 3]
mov dl, byte [rsp + 2]
mov r11b, byte [rsp + 1]
mov dil, byte [rsp]
jmp 0x180002950
mov cl, byte [rsp + 3]
mov r8b, byte [rsp + 2]
mov dl, byte [rsp + 1]
mov r9b, byte [rsp]
jmp 0x18000286b
mov r10b, byte [rsp + 3]
mov bl, byte [rsp + 2]
mov r11b, byte [rsp + 1]
mov dil, byte [rsp]
jmp 0x1800028a8
mov ecx, dword [rdx + 0xc]
mov r9d, ecx
movzx eax, al
mov edx, ecx
mov r8d, ecx
shr edx, 8
shr r8d, 0x10
shr ecx, 0x18
xor r9b, byte [rax + rbp + 0x100]
movzx eax, byte [rsp + 1]
xor dl, byte [rax + rbp]
movzx eax, byte [rsp + 2]
xor r8b, byte [rax + rbp]
movzx eax, byte [rsp + 3]
xor cl, byte [rax + rbp + 0x100]
mov r10d, dword [rsi + 8]
mov edi, r10d
mov r11d, r10d
movzx eax, r9b
mov ebx, r10d
shr r11d, 8
shr ebx, 0x10
shr r10d, 0x18
xor dil, byte [rax + rbp + 0x100]
movzx eax, dl
xor r11b, byte [rax + rbp + 0x100]
movzx eax, r8b
xor bl, byte [rax + rbp]
movzx eax, cl
xor r10b, byte [rax + rbp]
mov r8d, dword [rsi + 4]
mov r9d, dword [rsi]
movzx eax, dil
movzx ecx, byte [rax + rbp]
movzx eax, r8b
xor rcx, rax
movzx eax, r9b
movzx edx, byte [rcx + rbp]
xor rdx, rax
movzx eax, r11b
movzx ecx, byte [rax + rbp + 0x100]
mov eax, r8d
mov dil, byte [rdx + rbp + 0x100]
shr eax, 8
movzx eax, al
xor rcx, rax
mov eax, r9d
shr eax, 8
movzx eax, al
movzx edx, byte [rcx + rbp]
xor rdx, rax
movzx eax, bl
movzx ecx, byte [rax + rbp]
mov eax, r8d
mov r11b, byte [rdx + rbp]
shr eax, 0x10
movzx eax, al
xor rcx, rax
shr r8, 0x18
mov eax, r9d
shr r9, 0x18
shr eax, 0x10
movzx eax, al
movzx edx, byte [rcx + rbp + 0x100]
xor rdx, rax
movzx eax, r10b
movzx ecx, byte [rax + rbp + 0x100]
mov dl, byte [rdx + rbp + 0x100]
xor rcx, r8
movzx eax, byte [rcx + rbp + 0x100]
xor rax, r9
mov al, byte [rax + rbp]
movzx ecx, al
mov r8d, 0xb4
mov byte [rsp + 4], al
mov eax, ecx
and al, 2
movzx ebx, dl
neg al
movzx ebp, r11b
mov dword [rsp + 8], ebp
mov eax, ebx
sbb r12d, r12d
mov byte [rsp + 5], dl
and al, 2
movzx edx, dil
and r12d, r8d
mov dword [rsp], edx
neg al
mov r15d, ebx
mov eax, edx
mov r11d, ecx
sbb r13d, r13d
mov r10d, edx
and al, 2
and r15d, 1
and r13d, r8d
mov dword [rsp + 0xc], r15d
neg al
sbb edi, edi
and r10d, 1
and edi, r8d
mov r8d, ecx
mov ecx, ebp
and r8d, 1
mov eax, r8d
neg eax
mov eax, r15d
mov r15d, 0xee
sbb r14d, r14d
and r14d, 0x5a
neg eax
mov eax, r10d
sbb r9d, r9d
and r9d, r15d
neg eax
mov eax, ebp
sbb edx, edx
and al, 2
and edx, r15d
xor r11d, ebx
neg al
mov ebp, edx
sbb esi, esi
and ecx, 1
mov eax, ecx
and esi, 0xb4
neg eax
sbb ebx, ebx
xor ebp, r9d
and ebx, r15d
movzx r15d, byte [rsp + 4]
xor ebp, r15d
movzx r15d, byte [rsp + 5]
xor ebp, r15d
mov eax, r15d
xor ebp, dword [rsp]
xor eax, dword [rsp]
xor ebp, r14d
xor ebp, edi
and eax, 0xfffffffe
xor ebp, r13d
xor ebp, r12d
xor ebp, dword [rsp + 8]
add ebp, ebp
xor ebp, eax
mov eax, dword [rsp]
add ebp, ebp
xor eax, r11d
and eax, 0xfffffffc
xor ebp, eax
shl ebp, 6
neg ecx
sbb eax, eax
and eax, 0x5a
xor ebp, eax
neg r8d
mov r8d, dword [rsp]
sbb eax, eax
and eax, 0xee
xor ebp, eax
movzx eax, byte [rsp + 4]
mov ecx, eax
xor ebp, edx
xor ebp, r12d
mov edx, r15d
xor ebp, eax
xor eax, r8d
xor ebp, dword [rsp + 8]
and eax, 0xfffffffe
xor ebp, r8d
xor ebp, esi
xor ebp, r15d
mov r15d, 0xfffffffc
xor ebp, edi
add ebp, ebp
xor ebp, eax
mov eax, ecx
xor eax, dword [rsp + 8]
add ebp, ebp
xor eax, r8d
and eax, r15d
xor ebp, eax
shl ebp, 6
neg r10d
sbb eax, eax
and eax, 0x5a
xor ebp, eax
mov eax, edx
xor ebp, esi
xor ebp, ebx
xor ebp, r9d
mov r9d, dword [rsp + 8]
xor eax, r9d
xor ebp, edx
add eax, eax
xor ebp, r9d
xor eax, edx
xor ebp, r8d
xor eax, r9d
xor ebp, ecx
xor eax, r8d
xor ebp, r13d
and eax, r15d
xor ebp, edi
mov r15d, dword [rsp + 0xc]
shl ebp, 2
xor ebp, eax
mov eax, r9d
xor eax, r11d
shl ebp, 6
shr eax, 1
xor eax, r9d
shr eax, 1
xor ebp, eax
neg r15d
sbb eax, eax
and eax, 0x5a
xor eax, ebp
mov rbp, qword [rsp + 0x50]
xor eax, esi
mov rsi, qword [rsp + 0x58]
xor eax, ebx
mov rbx, qword [rsp + 0x48]
xor eax, r12d
xor eax, ecx
xor eax, edx
xor eax, r9d
xor eax, r14d
xor eax, r8d
xor eax, r13d
add rsp, 0x10
pop r15
pop r14
pop r13
pop r12
pop rdi
ret