Function at 0x4ff9c0
Capabilities:
Encrypt data using twofish

Disassembly:
cmp rsp, qword [r14 + 0x10]
jbe 0x4ffdcb
push rbp
mov rbp, rsp
sub rsp, 0x20
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x48], rdi
mov dword [rsp + 0x10], 0
xor ecx, ecx
jmp 0x4ff9f3
movzx edx, byte [rax + rcx]
mov byte [rsp + rcx + 0x10], dl
inc rcx
cmp rcx, 4
jge 0x4ffa05
cmp rbx, rcx
ja 0x4ff9e8
nop
jmp 0x4ffdbf
mov rcx, rsi
shr rsi, 3
cmp rsi, 2
je 0x4ffba2
nop word [rax + rax]
nop
cmp rsi, 3
je 0x4ffaed
cmp rsi, 4
jne 0x4ffd10
movzx edx, byte [rsp + 0x10]
lea rax, [r9 + 6]
shl rax, 2
lea rsi, [0x006e14a0]
movzx edx, byte [rsi + rdx]
cmp rcx, rax
jbe 0x4ffdba
lea r8, [rdi + r9*4]
lea r8, [r8 + 0x18]
movzx r8d, byte [r8]
xor edx, r8d
mov byte [rsp + 0x10], dl
movzx edx, byte [rsp + 0x11]
lea r8, [rax + 1]
lea r10, [0x006e13a0]
movzx edx, byte [r10 + rdx]
nop dword [rax]
cmp rcx, r8
jbe 0x4ffdb2
lea r8, [rdi + r9*4]
lea r8, [r8 + 0x19]
movzx r8d, byte [r8]
xor edx, r8d
mov byte [rsp + 0x11], dl
movzx edx, byte [rsp + 0x12]
lea r8, [rax + 2]
movzx edx, byte [r10 + rdx]
cmp rcx, r8
jbe 0x4ffdaa
lea r8, [rdi + r9*4]
lea r8, [r8 + 0x1a]
movzx r8d, byte [r8]
xor edx, r8d
mov byte [rsp + 0x12], dl
movzx edx, byte [rsp + 0x13]
add rax, 3
movzx edx, byte [rsi + rdx]
cmp rcx, rax
jbe 0x4ffda5
lea rsi, [rdi + r9*4]
lea rsi, [rsi + 0x1b]
movzx esi, byte [rsi]
xor edx, esi
mov byte [rsp + 0x13], dl
movzx edx, byte [rsp + 0x10]
lea rax, [r9 + 4]
shl rax, 2
lea rsi, [0x006e14a0]
movzx edx, byte [rsi + rdx]
cmp rcx, rax
jbe 0x4ffda0
lea r8, [rdi + r9*4]
lea r8, [r8 + 0x10]
movzx r8d, byte [r8]
xor edx, r8d
mov byte [rsp + 0x10], dl
movzx edx, byte [rsp + 0x11]
lea r8, [rax + 1]
movzx edx, byte [rsi + rdx]
cmp rcx, r8
jbe 0x4ffd97
lea rsi, [rdi + r9*4]
lea rsi, [rsi + 0x11]
movzx esi, byte [rsi]
xor edx, esi
mov byte [rsp + 0x11], dl
movzx edx, byte [rsp + 0x12]
lea rsi, [rax + 2]
lea r8, [0x006e13a0]
movzx edx, byte [r8 + rdx]
nop dword [rax]
cmp rcx, rsi
jbe 0x4ffd8f
lea rsi, [rdi + r9*4]
lea rsi, [rsi + 0x12]
movzx esi, byte [rsi]
xor edx, esi
mov byte [rsp + 0x12], dl
movzx edx, byte [rsp + 0x13]
add rax, 3
movzx edx, byte [r8 + rdx]
cmp rcx, rax
jbe 0x4ffd8a
lea rsi, [rdi + r9*4]
lea rsi, [rsi + 0x13]
movzx esi, byte [rsi]
xor edx, esi
mov byte [rsp + 0x13], dl
movzx edx, byte [rsp + 0x10]
lea rax, [r9 + 2]
shl rax, 2
lea rsi, [0x006e13a0]
movzx edx, byte [rsi + rdx]
nop word [rax + rax]
cmp rcx, rax
jbe 0x4ffd85
lea r8, [rdi + r9*4]
lea r8, [r8 + 8]
movzx r8d, byte [r8]
xor edx, r8d
movzx edx, dl
mov r8, r9
shl r9, 2
movzx edx, byte [rdx + rsi]
cmp rcx, r9
jbe 0x4ffd7d
lea r10, [rdi + r8*4]
movzx r10d, byte [r10]
xor edx, r10d
movzx edx, dl
lea r10, [0x006e14a0]
movzx edx, byte [rdx + r10]
mov byte [rsp + 0x10], dl
movzx edx, byte [rsp + 0x11]
lea r11, [rax + 1]
movzx edx, byte [r10 + rdx]
nop dword [rax + rax]
cmp rcx, r11
jbe 0x4ffd75
lea r11, [rdi + r8*4]
lea r11, [r11 + 9]
movzx r11d, byte [r11]
xor edx, r11d
movzx edx, dl
lea r11, [r9 + 1]
movzx edx, byte [rdx + rsi]
cmp rcx, r11
jbe 0x4ffd6d
lea r11, [rdi + r8*4]
lea r11, [r11 + 1]
movzx r11d, byte [r11]
xor r11d, edx
movzx edx, r11b
movzx edx, byte [rdx + rsi]
mov byte [rsp + 0x11], dl
movzx edx, byte [rsp + 0x12]
lea r11, [rax + 2]
movzx edx, byte [rsi + rdx]
cmp rcx, r11
jbe 0x4ffd65
lea r11, [rdi + r8*4]
lea r11, [r11 + 0xa]
movzx r11d, byte [r11]
xor edx, r11d
movzx edx, dl
lea r11, [r9 + 2]
movzx edx, byte [rdx + r10]
nop dword [rax + rax]
cmp rcx, r11
jbe 0x4ffd59
lea r11, [rdi + r8*4]
lea r11, [r11 + 2]
movzx r11d, byte [r11]
xor r11d, edx
movzx edx, r11b
movzx edx, byte [rdx + r10]
mov byte [rsp + 0x12], dl
movzx edx, byte [rsp + 0x13]
add rax, 3
movzx edx, byte [r10 + rdx]
cmp rcx, rax
jbe 0x4ffd54
lea r11, [rdi + r8*4]
lea r11, [r11 + 0xb]
movzx r11d, byte [r11]
xor edx, r11d
movzx edx, dl
lea rax, [r9 + 3]
movzx edx, byte [rdx + r10]
cmp rcx, rax
jbe 0x4ffd4f
lea rcx, [rdi + r8*4]
lea rcx, [rcx + 3]
movzx ecx, byte [rcx]
xor edx, ecx
movzx ecx, dl
movzx ecx, byte [rcx + rsi]
mov byte [rsp + 0x13], cl
xor eax, eax
xor ecx, ecx
jmp 0x4ffd41
mov qword [rsp + 0x18], rax
mov dword [rsp + 0x14], ecx
movzx ecx, byte [rsp + rax + 0x10]
mov rbx, rax
mov eax, ecx
call sym.golang.org_x_crypto_twofish.mdsColumnMult
mov rcx, qword [rsp + 0x18]
inc rcx
mov edx, dword [rsp + 0x14]
xor edx, eax
mov rax, rcx
mov ecx, edx
cmp rax, 4
jl 0x4ffd16
mov eax, ecx
add rsp, 0x20
pop rbp
ret
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov rax, r11
nop dword [rax]
call sym.runtime.panicIndex
mov rax, r11
call sym.runtime.panicIndex
mov rax, r11
call sym.runtime.panicIndex
mov rax, r11
call sym.runtime.panicIndex
mov rax, r9
call sym.runtime.panicIndex
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov rax, rsi
call sym.runtime.panicIndex
mov rax, r8
call sym.runtime.panicIndex
nop
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov rax, r8
call sym.runtime.panicIndex
mov rax, r8
call sym.runtime.panicIndex
call sym.runtime.panicIndex
mov rax, rcx
mov rcx, rbx
call sym.runtime.panicIndex
nop
mov qword [rsp + 8], rax
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rcx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x28], rsi
mov qword [rsp + 0x30], r8
mov qword [rsp + 0x38], r9
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 8]
mov rbx, qword [rsp + 0x10]
mov rcx, qword [rsp + 0x18]
mov rdi, qword [rsp + 0x20]
mov rsi, qword [rsp + 0x28]
mov r8, qword [rsp + 0x30]
mov r9, qword [rsp + 0x38]
jmp sym.golang.org_x_crypto_twofish.h