Function at 0x14003f580
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x68
lea rbp, [rsp + 0x60]
mov rsi, r8
mov rdi, rdx
mov qword [rbp - 0x28], rcx
add rsi, rdx
mov qword [rbp - 0x20], rdx
mov qword [rbp - 0x18], rsi
mov byte [rbp - 0x10], 0x81
mov byte [rbp - 4], 0x81
movzx r13d, byte [rbp - 6]
movzx r12d, byte [rbp - 5]
movzx r15d, byte [rbp - 0xf]
mov bl, 0x81
mov r14, qword [rbp - 0xe]
lea r8, [0x1400a0c30]
jmp 0x14003f5f0
mov r15b, 0x6e
nop word cs:[rax + rax]
xor r14d, r14d
mov r14d, r14d
shl r14, 0x10
mov r12b, 2
xor r13d, r13d
cmp bl, 0x81
je 0x14003f60c
movzx eax, bl
cmp eax, 0x80
je 0x14003f7f6
cmp r13b, r12b
jb 0x14003f81f
test rdi, rdi
je 0x14003f852
cmp rdi, rsi
je 0x14003f852
movzx r14d, byte [rdi]
test r14b, r14b
js 0x14003f650
inc rdi
cmp r14d, 0x27
ja case.default.0x14003f640
mov bl, 0x5c
mov eax, r14d
movsxd rax, dword [r8 + rax*4]
add rax, r8
jmp rax
mov r15b, 0x30
jmp 0x14003f5e3
mov eax, r14d
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp r14b, 0xdf
jbe 0x14003f6aa
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp r14b, 0xf0
jb 0x14003f72a
movzx r14d, byte [rdi + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and r14d, 0x3f
or r14d, ecx
or r14d, eax
cmp r14d, 0x110000
je 0x14003f852
add rdi, 4
cmp r14d, 0x27
jbe 0x14003f634
jmp case.default.0x14003f640
add rdi, 2
shl eax, 6
or eax, edx
mov r14d, eax
cmp r14d, 0x27
jbe 0x14003f634
cmp r14d, 0x5c
jne case.0x14003f640.1
mov r15b, 0x5c
xor r14d, r14d
mov bl, 0x5c
jmp 0x14003f5e3
cmp r14d, 0x2ff
jbe 0x14003f6ec
mov ecx, r14d
call sym.core::unicode::unicode_data::grapheme_extend::lookup_slow::hbad2590bad744bb0
lea rcx, [rbp - 0x34]
test al, al
jne 0x14003f745
mov ecx, r14d
call sym.core::unicode::printable::is_printable::h7b8c4b3a47a4be21
mov bl, pe_nt_image_headers64
lea rcx, [rbp - 0x40]
test al, al
je 0x14003f745
lea r8, [0x1400a0c30]
jmp 0x14003f5e3
mov r15b, 0x27
jmp 0x14003f5e0
mov r15b, 0x72
jmp 0x14003f5e0
mov r15b, 0x74
jmp 0x14003f5e0
mov r15b, 0x22
jmp 0x14003f5e0
add rdi, 3
shl eax, 0xc
or ecx, eax
mov r14d, ecx
cmp r14d, 0x27
jbe 0x14003f634
jmp case.default.0x14003f640
mov eax, r14d
or eax, 1
bsr eax, eax
xor eax, 0x1c
shr eax, 2
lea r13, [rax - 2]
mov byte [rcx + 2], 0
mov word [rcx], 0
mov edx, r14d
shr edx, 0x14
lea r8, [0x1400a1be8]
movzx edx, byte [rdx + r8]
mov byte [rcx + 3], dl
mov edx, r14d
shr edx, 0x10
and edx, 0xf
movzx edx, byte [rdx + r8]
mov byte [rcx + 4], dl
mov edx, r14d
shr edx, 0xc
and edx, 0xf
movzx edx, byte [rdx + r8]
mov byte [rcx + 5], dl
mov edx, r14d
shr edx, 8
and edx, 0xf
movzx edx, byte [rdx + r8]
mov byte [rcx + 6], dl
mov edx, r14d
shr edx, 4
and edx, 0xf
movzx edx, byte [rdx + r8]
mov byte [rcx + 7], dl
and r14d, 0xf
movzx edx, byte [r14 + r8]
mov byte [rcx + 8], dl
mov byte [rcx + 9], 0x7d
mov word [rcx + rax - 2], 0x755c
mov byte [rcx + rax], 0x7b
movzx ebx, byte [rcx]
movzx r15d, byte [rcx + 1]
mov r14, qword [rcx + 2]
mov r12b, 0xa
cmp bl, 0x81
lea r8, [0x1400a0c30]
jne 0x14003f5f0
jmp 0x14003f852
shr r14, 0x10
mov edx, r14d
lea rax, [rbp - 0x10]
mov dword [rax + 8], 0
mov qword [rax], 0
xor r14d, r14d
xor r15d, r15d
xor r12d, r12d
xor r13d, r13d
xor ebx, ebx
jmp 0x14003f836
mov byte [rbp - 0x10], bl
mov byte [rbp - 0xf], r15b
mov qword [rbp - 0xe], r14
movzx eax, r13b
inc r13b
movzx edx, byte [rbp + rax - 0x10]
mov rcx, qword [rbp - 0x28]
call sym.__core::fmt::Formatter_as_core::fmt::Write_::write_char::h1941228d02b34707
test al, al
lea r8, [0x1400a0c30]
je 0x14003f5f0
mov al, 1
jmp 0x14003f854
xor eax, eax
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret