Function at 0x591ce0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
lea r12, [rsp - 0x18]
cmp r12, qword [r14 + 0x10]
jbe 0x591ff7
push rbp
mov rbp, rsp
sub rsp, 0x90
mov qword [rsp + 0xe8], rax
mov qword [rsp + 0xf0], rbx
mov qword [rsp + 0xf8], rcx
movups xmmword [rsp + 0xa0], xmm15
movups xmmword [rsp + 0xa4], xmm15
movups xmmword [rsp + 0xb4], xmm15
movups xmmword [rsp + 0xc4], xmm15
movups xmmword [rsp + 0xd4], xmm15
nop
jmp 0x591d42
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x40], rdx
test rdx, rdx
setne byte [rsp + 0x17]
jne 0x591d5b
jmp 0x591d80
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xe8]
test rcx, rcx
ja 0x591d75
jmp 0x591fef
cmp byte [rdx], 0
sete byte [rsp + 0x17]
jmp 0x591d82
jmp 0x591d82
cmp byte [rsp + 0x17], 0
jne 0x591d8b
jmp 0x591de7
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xe8]
mov rbx, qword [rsp + 0xf8]
jmp 0x591da5
cmp rcx, 1
jae 0x591db0
jmp 0x591fe5
dec rbx
lea rsi, [rcx - 1]
mov rdi, rbx
neg rbx
sar rbx, 0x3f
and ebx, 1
add rdx, rbx
mov qword [rsp + 0xe8], rdx
mov qword [rsp + 0xf0], rsi
mov qword [rsp + 0xf8], rdi
nop
jmp 0x591de2
jmp 0x591d42
mov rdx, qword [rsp + 0xf0]
mov qword [rsp + 0x20], rdx
movups xmmword [rsp + 0x4c], xmm15
movups xmmword [rsp + 0x50], xmm15
movups xmmword [rsp + 0x60], xmm15
movups xmmword [rsp + 0x70], xmm15
movups xmmword [rsp + 0x80], xmm15
mov byte [rsp + 0x16], 0
mov rdx, qword [rsp + 0x20]
dec rdx
mov qword [rsp + 0x28], rdx
jmp 0x591e29
cmp qword [rsp + 0x28], 0
jge 0x591e36
jmp 0x591f4c
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xe8]
cmp rcx, rax
ja 0x591e55
jmp 0x591fe0
add rdx, rax
movzx edx, byte [rdx]
movzx ebx, byte [rsp + 0x16]
add edx, ebx
mov word [rsp + 0x1c], dx
mov byte [rsp + 0x15], 0
cmp qword [rsp + 0x28], 0
jg 0x591e76
jmp 0x591eaa
mov rcx, qword [rsp + 0xf0]
mov rdx, qword [rsp + 0xe8]
mov rax, qword [rsp + 0x28]
lea rbx, [rax - 1]
cmp rcx, rbx
ja 0x591e99
jmp 0x591fd5
lea rdx, [rax + rdx]
lea rdx, [rdx - 1]
movzx edx, byte [rdx]
mov byte [rsp + 0x15], dl
jmp 0x591eac
jmp 0x591eac
movzx edx, word [rsp + 0x1c]
shr dx, 1
movzx ebx, byte [rsp + 0x15]
shl ebx, 7
movzx ebx, bl
or edx, ebx
mov word [rsp + 0x1e], dx
movzx ebx, word [rsp + 0x1c]
add ebx, edx
mov word [rsp + 0x18], bx
xor ebx, edx
mov word [rsp + 0x1a], bx
mov rax, qword [rsp + 0x28]
lea rdx, [rax + 1]
mov qword [rsp + 0x38], rdx
movzx ebx, word [rsp + 0x18]
movzx esi, word [rsp + 0x1a]
and ebx, esi
cmp rdx, 0x21
jb 0x591efe
jmp 0x591fc8
lea rdx, [rsp + rax + 0x4d]
mov byte [rdx], bl
mov rax, qword [rsp + 0x28]
lea rdx, [rax + 1]
mov qword [rsp + 0x30], rdx
movzx ebx, word [rsp + 0x1e]
movzx esi, word [rsp + 0x1a]
and ebx, esi
nop
cmp rdx, 0x21
jb 0x591f2b
jmp 0x591fbb
lea rdx, [rsp + rax + 0x70]
mov byte [rdx], bl
movzx edx, word [rsp + 0x18]
shr dx, 8
mov byte [rsp + 0x16], dl
nop
jmp 0x591f42
dec qword [rsp + 0x28]
jmp 0x591e29
movzx eax, byte [rsp + 0x16]
mov byte [rsp + 0x4c], al
movzx eax, byte [rsp + 0x16]
dec eax
neg eax
mov byte [rsp + 0x6d], al
mov rax, qword [rsp + 0x20]
inc rax
mov byte [rsp + 0x6e], al
mov rax, qword [rsp + 0x4c]
mov qword [rsp + 0xa0], rax
movups xmm0, xmmword [rsp + 0x50]
movups xmmword [rsp + 0xa4], xmm0
movups xmm0, xmmword [rsp + 0x60]
movups xmmword [rsp + 0xb4], xmm0
movups xmm0, xmmword [rsp + 0x70]
movups xmmword [rsp + 0xc4], xmm0
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rsp + 0xd4], xmm0
add rsp, 0x90
pop rbp
ret
mov rax, rdx
mov ecx, 0x21
call sym.runtime.panicIndex
mov rax, rdx
mov ecx, 0x21
call sym.runtime.panicIndex
mov rax, rbx
call sym.runtime.panicIndex
nop dword [rax]
call sym.runtime.panicIndex
mov eax, 1
call sym.runtime.panicSliceB
xor eax, eax
call sym.runtime.panicIndex
nop
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rbx
mov qword [rsp + 0x60], rcx
call sym.runtime.morestack_noctxt.abi0
mov rax, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
jmp sym.github.com_decred_dcrd_dcrec_secp256k1_v4.naf