Function at 0x164c4a77c
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rsi
push rdi
push rbx
push rbp
sub rsp, 0x38
vmovdqa xmmword [rsp], xmm6
vmovdqa xmmword [rsp + 0x10], xmm7
vmovdqa xmmword [rsp + 0x20], xmm8
mov rbx, rcx
mov rdi, rdx
mov rsi, r8
lea ebp, [r9 - 1]
lea rdi, [rbx + rdi - 0x20]
mov eax, 0x1010101
lea r9, case.0x164c4a5ed.0
mov rdx, qword [r9 + rbp*8]
sub rdi, rbp
vmovdqa xmm8, xmmword [0x164c94540]
lea r11, [0x164ca4660]
jmp rdx
movzx edx, byte [rsi + 3]
imul edx, eax
vmovd xmm7, edx
movzx edx, byte [rsi + 2]
imul edx, eax
vmovd xmm6, edx
movzx edx, byte [rsi + 1]
imul edx, eax
vmovd xmm5, edx
movzx edx, byte [rsi]
vpshufd xmm7, xmm7, 0
imul edx, eax
vpshufd xmm6, xmm6, 0
vmovd xmm4, edx
vpshufd xmm5, xmm5, 0
mov rsi, rbx
vpshufd xmm4, xmm4, 0
vpand xmm7, xmm7, xmm8
vpand xmm6, xmm6, xmm8
vpand xmm5, xmm5, xmm8
vpand xmm4, xmm4, xmm8
test rbx, 0xf
je 0x164c4a680
mov rcx, rbx
and rbx, 0xfffffffffffffff0
and ecx, 0xf
vmovdqa xmm0, xmmword [rbx]
vpand xmm0, xmm0, xmm8
vpcmpeqb xmm2, xmm0, xmm4
or eax, 0xffffffff
vpmovmskb edx, xmm2
shl eax, cl
lea rsi, [rbx + 0x10]
and edx, eax
jne 0x164c4a6d6
mov rbx, rsi
nop
nop
vpand xmm1, xmm8, xmmword [rsi + 0x10]
vpand xmm0, xmm8, xmmword [rsi]
add rsi, 0x10
vpcmpeqb xmm3, xmm1, xmm4
vpcmpeqb xmm2, xmm0, xmm4
vpmovmskb eax, xmm3
vpmovmskb edx, xmm2
test eax, eax
jne 0x164c4a6c0
add rsi, 0x10
test edx, edx
jne 0x164c4a6e0
mov rbx, rsi
cmp rsi, rdi
jbe 0x164c4a680
jmp 0x164c4a730
test edx, edx
jne 0x164c4a6e0
mov rbx, rsi
cmp rsi, rdi
ja 0x164c4a730
add rsi, 0x10
mov edx, eax
vmovdqa xmm0, xmm1
vmovdqa xmm1, xmmword [rbx + 0x10]
vpand xmm1, xmm1, xmm8
vpalignr xmm2, xmm1, xmm0, 1
vpcmpeqb xmm2, xmm2, xmm5
vpmovmskb eax, xmm2
test ebp, ebp
je 0x164c4a73e
and edx, eax
je 0x164c4a724
vpalignr xmm2, xmm1, xmm0, 2
vpcmpeqb xmm2, xmm2, xmm6
vpmovmskb eax, xmm2
cmp ebp, 1
je 0x164c4a73e
and edx, eax
je 0x164c4a724
vpalignr xmm1, xmm1, xmm0, 3
vpcmpeqb xmm1, xmm1, xmm7
vpmovmskb eax, xmm1
cmp ebp, 2
je 0x164c4a73e
and edx, eax
jne 0x164c4a73e
mov rbx, rsi
cmp rsi, rdi
jbe 0x164c4a680
mov rsi, r8
add rdi, 0x20
mov cl, byte [rsi]
jmp 0x164c4a7e1
mov r10, rsi
mov rsi, r8
bsf ecx, edx
lea r9, case.0x164c4a5ed.4
jmp qword [r9 + rbp*8]
movzx eax, byte [rbx + rcx + 3]
mov al, byte [r11 + rax]
cmp al, byte [rsi + 3]
jne 0x164c4a78d
movzx eax, byte [rbx + rcx + 2]
mov al, byte [r11 + rax]
cmp al, byte [rsi + 2]
jne 0x164c4a78d
movzx eax, byte [rbx + rcx + 1]
mov al, byte [r11 + rax]
cmp al, byte [rsi + 1]
jne 0x164c4a78d
movzx eax, byte [rbx + rcx]
mov al, byte [r11 + rax]
cmp al, byte [rsi]
jne 0x164c4a78d
add rbx, rcx
jmp 0x164c4a7ea
mov eax, 1
shl eax, cl
xor edx, eax
jne 0x164c4a744
mov rsi, r10
jmp 0x164c4a724
movzx eax, byte [rbx]
mov al, byte [r11 + rax]
cmp al, cl
jne 0x164c4a7dd
test ebp, ebp
je 0x164c4a7ea
movzx eax, byte [rbx + 1]
mov al, byte [r11 + rax]
cmp al, byte [rsi + 1]
jne 0x164c4a7dd
cmp ebp, 1
je 0x164c4a7ea
movzx eax, byte [rbx + 2]
mov al, byte [r11 + rax]
cmp al, byte [rsi + 2]
jne 0x164c4a7dd
cmp ebp, 2
je 0x164c4a7ea
movzx eax, byte [rbx + 3]
mov al, byte [r11 + rax]
cmp al, byte [rsi + 3]
je 0x164c4a7ea
add rbx, 1
cmp rbx, rdi
jb 0x164c4a79d
xor eax, eax
jmp 0x164c4a7ed
mov rax, rbx
vmovdqa xmm6, xmmword [rsp]
vmovdqa xmm7, xmmword [rsp + 0x10]
vmovdqa xmm8, xmmword [rsp + 0x20]
add rsp, 0x38
pop rbp
pop rbx
pop rdi
pop rsi
ret