Function at 0x18003a930
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, r9
mov rdi, r8
mov qword [rbp - 0x18], rdx
mov qword [rbp - 0x10], rcx
add rsi, r8
mov qword [rbp - 0x40], r8
mov qword [rbp - 0x38], rsi
mov byte [rbp - 0x30], 0x81
mov byte [rbp - 0x24], 0x81
mov r14b, 0x81
lea r8, [0x180064620]
jmp 0x18003a98f
mov r13b, 0x6e
nop word cs:[rax + rax]
xor r15d, r15d
mov r15d, r15d
shl r15, 0x10
mov r12b, 2
xor ebx, ebx
cmp r14b, 0x81
je 0x18003a9ad
movzx eax, r14b
cmp eax, 0x80
je 0x18003ab8d
cmp bl, r12b
jb 0x18003abb6
test rdi, rdi
je 0x18003abea
cmp rdi, rsi
je 0x18003abea
movzx r15d, byte [rdi]
test r15b, r15b
js 0x18003a9f0
inc rdi
cmp r15d, 0x27
ja case.default.0x18003a9e2
mov r14b, 0x5c
mov eax, r15d
movsxd rax, dword [r8 + rax*4]
add rax, r8
jmp rax
mov r13b, 0x30
jmp 0x18003a983
mov eax, r15d
and eax, 0x1f
movzx edx, byte [rdi + 1]
and edx, 0x3f
cmp r15b, 0xdf
jbe 0x18003aa4a
movzx ecx, byte [rdi + 2]
shl edx, 6
and ecx, 0x3f
or ecx, edx
cmp r15b, 0xf0
jb 0x18003aac4
movzx r15d, byte [rdi + 3]
and eax, 7
shl eax, 0x12
shl ecx, 6
and r15d, 0x3f
or r15d, ecx
or r15d, eax
cmp r15d, 0x110000
je 0x18003abea
add rdi, 4
cmp r15d, 0x27
jbe 0x18003a9d5
jmp case.default.0x18003a9e2
add rdi, 2
shl eax, 6
or eax, edx
mov r15d, eax
cmp r15d, 0x27
jbe 0x18003a9d5
cmp r15d, 0x5c
jne case.0x18003a9e2.1
mov r13b, 0x5c
xor r15d, r15d
mov r14b, 0x5c
jmp 0x18003a983
cmp r15d, 0x2ff
jbe 0x18003aa89
mov ecx, r15d
call sym.core::unicode::unicode_data::grapheme_extend::lookup_slow::hb7cd626a8acf3237
test al, al
jne 0x18003aadc
mov ecx, r15d
call sym.core::unicode::printable::is_printable::h16e04b1dce6e1c9c
mov r14b, pe_nt_image_headers64
test al, al
je 0x18003aadc
lea r8, [0x180064620]
jmp 0x18003a983
mov r13b, 0x27
jmp 0x18003a980
mov r13b, 0x72
jmp 0x18003a980
mov r13b, 0x74
jmp 0x18003a980
mov r13b, 0x22
jmp 0x18003a980
add rdi, 3
shl eax, 0xc
or ecx, eax
mov r15d, ecx
cmp r15d, 0x27
jbe 0x18003a9d5
jmp case.default.0x18003a9e2
mov eax, r15d
or eax, 1
bsr eax, eax
xor eax, 0x1c
shr eax, 2
lea rbx, [rax - 2]
mov byte [rbp], 0
mov word [rbp - 2], 0
mov ecx, r15d
shr ecx, 0x14
lea rdx, str.0123456789abcdef
movzx ecx, byte [rcx + rdx]
mov byte [rbp + 1], cl
mov ecx, r15d
shr ecx, 0x10
and ecx, 0xf
movzx ecx, byte [rcx + rdx]
mov byte [rbp + 2], cl
mov ecx, r15d
shr ecx, 0xc
and ecx, 0xf
movzx ecx, byte [rcx + rdx]
mov byte [rbp + 3], cl
mov ecx, r15d
shr ecx, 8
and ecx, 0xf
movzx ecx, byte [rcx + rdx]
mov byte [rbp + 4], cl
mov ecx, r15d
shr ecx, 4
and ecx, 0xf
movzx ecx, byte [rcx + rdx]
mov byte [rbp + 5], cl
and r15d, 0xf
movzx ecx, byte [r15 + rdx]
mov byte [rbp + 6], cl
mov byte [rbp + 7], 0x7d
mov word [rbp + rax - 4], 0x755c
mov byte [rbp + rax - 2], 0x7b
movzx r14d, byte [rbp - 2]
movzx r13d, byte [rbp - 1]
mov r15, qword [rbp]
mov r12b, 0xa
cmp r14b, 0x81
lea r8, [0x180064620]
jne 0x18003a98f
jmp 0x18003abea
shr r15, 0x10
mov edx, r15d
lea rax, [rbp - 0x30]
mov dword [rax + 8], 0
mov qword [rax], 0
xor r15d, r15d
xor r13d, r13d
xor r12d, r12d
xor ebx, ebx
xor r14d, r14d
jmp 0x18003abcc
mov byte [rbp - 0x30], r14b
mov byte [rbp - 0x2f], r13b
mov qword [rbp - 0x2e], r15
movzx eax, bl
inc bl
movzx edx, byte [rbp + rax - 0x30]
mov rcx, qword [rbp - 0x10]
mov rax, qword [rbp - 0x18]
call qword [rax + 0x20]
test al, al
lea r8, [0x180064620]
je 0x18003a98f
mov al, 1
jmp 0x18003abec
xor eax, eax
add rsp, 0x68
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret