Function at 0x140046aa0
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x98
movdqa xmmword [rsp + 0x80], xmm10
movdqa xmmword [rsp + 0x70], xmm9
movdqa xmmword [rsp + 0x60], xmm8
movdqa xmmword [rsp + 0x50], xmm7
movdqa xmmword [rsp + 0x40], xmm6
mov rsi, rdx
mov rax, qword [0x140102058]
xor rax, rsp
mov qword [rsp + 0x38], rax
xor ebx, ebx
test r8d, r8d
setne bpl
xor r14d, r14d
cmp r8d, 2
setne r14b
shl r14d, 7
sub r14d, 0xffffff80
test ecx, ecx
je 0x140046c05
mov r15d, ecx
cmp ecx, 1
je 0x140046c0d
cmp r15d, 0xfde9
jne 0x140046c16
mov eax, r14d
add rax, 0xfffffffffffffff0
shr rax, 4
add rax, 1
add rsi, 0x70
movdqa xmm0, xmmword [0x1400d2f20]
movdqa xmm8, xmmword [str._b_b_b_b_b_b_b_b]
movdqa xmm9, xmmword [0x1400d3270]
movdqa xmm10, xmmword [0x1400d3280]
movdqa xmm4, xmmword [0x1400d3200]
movdqa xmm5, xmmword [str.________]
movdqa xmm6, xmmword [str.0000000088888888________]
movdqa xmm7, xmmword [0x1400d32a0]
movdqa xmm1, xmmword [0x1400d32b0]
nop word cs:[rax + rax]
nop
movdqa xmm2, xmm0
paddw xmm2, xmm8
movdqu xmmword [rsi - 0x70], xmm0
movdqu xmmword [rsi - 0x60], xmm2
movdqa xmm2, xmm0
paddw xmm2, xmm9
movdqa xmm3, xmm0
paddw xmm3, xmm10
movdqu xmmword [rsi - 0x50], xmm2
movdqu xmmword [rsi - 0x40], xmm3
movdqa xmm2, xmm0
paddw xmm2, xmm4
movdqa xmm3, xmm0
paddw xmm3, xmm5
movdqu xmmword [rsi - 0x30], xmm2
movdqu xmmword [rsi - 0x20], xmm3
movdqa xmm2, xmm0
paddw xmm2, xmm6
movdqa xmm3, xmm0
paddw xmm3, xmm7
movdqu xmmword [rsi - 0x10], xmm2
movdqu xmmword [rsi], xmm3
paddw xmm0, xmm1
sub rsi, 0xffffffffffffff80
add rax, 0xfffffffffffffffc
jne 0x140046b90
jmp 0x140046f1a
call qword [sym.imp.KERNEL32.dll_GetACP]
jmp 0x140046c13
call qword [sym.imp.KERNEL32.dll_GetOEMCP]
mov r15d, eax
lea eax, [r15 - 1]
cmp eax, 0xfffe
ja 0x140046c80
mov bl, bpl
lea ebx, [rbx*4 + 8]
mov ebp, r14d
xor edi, edi
lea r14, [rsp + 0x34]
mov r12, qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
jmp 0x140046c51
add rdi, 1
add rsi, 2
cmp rbp, rdi
je 0x140046f1a
mov byte [rsp + 0x34], dil
mov qword [rsp + 0x20], rsi
mov dword [rsp + 0x28], 1
mov ecx, r15d
mov edx, ebx
mov r8, r14
mov r9d, 1
call r12
cmp eax, 1
je 0x140046c40
mov word [rsi], 0xfffd
jmp 0x140046c40
movzx eax, r15w
lea rax, [rax + rax*2]
lea rcx, str.UTF_8
mov edi, dword [rcx + rax*8 + 0xc]
mov edx, r14d
add rdx, 0xfffffffffffffff0
shr rdx, 4
add rdx, 1
lea rbx, [rsi + 0x70]
movdqa xmm0, xmmword [0x1400d2f20]
movdqa xmm8, xmmword [str._b_b_b_b_b_b_b_b]
movdqa xmm9, xmmword [0x1400d3270]
movdqa xmm10, xmmword [0x1400d3280]
movdqa xmm4, xmmword [0x1400d3200]
movdqa xmm5, xmmword [str.________]
movdqa xmm6, xmmword [str.0000000088888888________]
movdqa xmm7, xmmword [0x1400d32a0]
movdqa xmm1, xmmword [0x1400d32b0]
nop word cs:[rax + rax]
nop dword [rax + rax]
movdqa xmm2, xmm0
paddw xmm2, xmm8
movdqu xmmword [rbx - 0x70], xmm0
movdqu xmmword [rbx - 0x60], xmm2
movdqa xmm2, xmm0
paddw xmm2, xmm9
movdqa xmm3, xmm0
paddw xmm3, xmm10
movdqu xmmword [rbx - 0x50], xmm2
movdqu xmmword [rbx - 0x40], xmm3
movdqa xmm2, xmm0
paddw xmm2, xmm4
movdqa xmm3, xmm0
paddw xmm3, xmm5
movdqu xmmword [rbx - 0x30], xmm2
movdqu xmmword [rbx - 0x20], xmm3
movdqa xmm2, xmm0
paddw xmm2, xmm6
movdqa xmm3, xmm0
paddw xmm3, xmm7
movdqu xmmword [rbx - 0x10], xmm2
movdqu xmmword [rbx], xmm3
paddw xmm0, xmm1
sub rbx, 0xffffffffffffff80
add rdx, 0xfffffffffffffffc
jne 0x140046d00
mov r13d, 0x100
sub r13d, edi
cmp r13d, r14d
jge 0x140046f1a
mov rax, qword [rcx + rax*8 + 0x10]
movsxd r10, r13d
lea r9d, [r14 + rdi]
add r9d, 0xfffffeff
mov rcx, r10
mov ebx, r13d
cmp r9d, 0xf
jb 0x140046eac
lea rbp, [rsi + r10*2]
lea ecx, [r14 + rdi]
add ecx, 0xfffffeff
lea rbx, [rax + rcx*2]
add rbx, 2
cmp rbp, rbx
jae 0x140046dda
add rcx, r10
lea rbp, [rsi + rcx*2]
add rbp, 2
mov rcx, r10
mov ebx, r13d
cmp rax, rbp
jb 0x140046eac
add r9, 1
mov r8, r9
and r8, 0xfffffffffffffff0
lea rcx, [r8 - 0x10]
mov r11, rcx
shr r11, 4
add r11, 1
test rcx, rcx
je 0x140046e78
lea rbp, [rsi + r10*2]
add rbp, 0x30
mov rdi, r11
and rdi, 0xfffffffffffffffe
neg rdi
xor edx, edx
movabs r15, 0x1000000000
movabs r12, 0x2000000000
xor ecx, ecx
nop word cs:[rax + rax]
nop dword [rax]
mov rbx, rdx
sar rbx, 0x1f
movups xmm0, xmmword [rax + rbx]
movups xmm1, xmmword [rax + rbx + 0x10]
movups xmmword [rbp + rcx*2 - 0x30], xmm0
movups xmmword [rbp + rcx*2 - 0x20], xmm1
lea rbx, [rdx + r15]
sar rbx, 0x1f
movdqu xmm0, xmmword [rax + rbx]
movdqu xmm1, xmmword [rax + rbx + 0x10]
movdqu xmmword [rbp + rcx*2 - 0x10], xmm0
movdqu xmmword [rbp + rcx*2], xmm1
add rcx, 0x20
add rdx, r12
add rdi, 2
jne 0x140046e30
jmp 0x140046e7a
xor ecx, ecx
test r11b, 1
je 0x140046e9d
lea rdx, [rcx + r10]
movsxd rcx, ecx
movdqu xmm0, xmmword [rax + rcx*2]
movdqu xmm1, xmmword [rax + rcx*2 + 0x10]
movdqu xmmword [rsi + rdx*2], xmm0
movdqu xmmword [rsi + rdx*2 + 0x10], xmm1
cmp r9, r8
je 0x140046f1a
mov rcx, r8
add rcx, r10
lea ebx, [r8 + r13]
lea ebp, [rcx + 1]
test cl, 1
je 0x140046ecb
mov edx, ebx
sub edx, r13d
movsxd rdx, edx
movzx edx, word [rax + rdx*2]
mov word [rsi + rcx*2], dx
add rcx, 1
add ebx, 1
cmp r14d, ebp
je 0x140046f1a
sub r14d, ecx
lea rcx, [rsi + rcx*2]
add rcx, 2
lea edx, [rbx + 1]
movsxd rdx, edx
sub rdx, r10
lea rdx, [rax + rdx*2]
movsxd rbp, ebx
sub rbp, r10
lea rax, [rax + rbp*2]
xor ebp, ebp
nop word cs:[rax + rax]
nop
movzx ebx, word [rax + rbp*2]
mov word [rcx + rbp*2 - 2], bx
movzx ebx, word [rdx + rbp*2]
mov word [rcx + rbp*2], bx
add rbp, 2
cmp r14d, ebp
jne 0x140046f00
mov rcx, qword [rsp + 0x38]
xor rcx, rsp
call fcn.1400a5f20
movaps xmm6, xmmword [rsp + 0x40]
movaps xmm7, xmmword [rsp + 0x50]
movaps xmm8, xmmword [rsp + 0x60]
movaps xmm9, xmmword [rsp + 0x70]
movaps xmm10, xmmword [rsp + 0x80]
add rsp, 0x98
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret