Function at 0x140189a00
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
test r8d, r8d
js 0x140189fbd
mov r15, rcx
movzx r10d, word [rdx + 2]
xor eax, eax
test r10w, r10w
sete al
mov ebp, 0x8a
mov ecx, 7
cmove ecx, ebp
mov esi, 4
sub esi, eax
add r8d, 1
xor r11d, r11d
mov ebp, 0xffffffff
xor edi, edi
jmp 0x140189a61
mov r14d, ebp
mov ebp, r14d
mov edi, ebx
cmp r11, r8
je 0x140189fbd
mov r14d, r10d
movzx r10d, word [rdx + r11*4 + 6]
add r11, 1
lea ebx, [rdi + 1]
cmp ebx, ecx
jge 0x140189a7a
cmp r14d, r10d
je 0x140189a50
cmp ebx, esi
jge 0x140189b60
mov r9d, r14d
mov ecx, dword [r15 + 0x1714]
jmp 0x140189aa2
add ecx, ebp
mov dword [r15 + 0x1714], ecx
add ebx, 0xffffffff
je 0x140189b2d
movzx ebp, word [r15 + r9*4 + 0xaa6]
mov edi, 0x10
sub edi, ebp
movzx eax, word [r15 + r9*4 + 0xaa4]
mov esi, eax
shl esi, cl
or si, word [r15 + 0x1710]
mov word [r15 + 0x1710], si
cmp ecx, edi
jle 0x140189a90
mov r12, qword [r15 + 0x10]
mov edi, dword [r15 + 0x28]
lea ecx, [rdi + 1]
mov dword [r15 + 0x28], ecx
mov byte [r12 + rdi], sil
movzx r12d, byte [r15 + 0x1711]
mov rsi, qword [r15 + 0x10]
mov edi, dword [r15 + 0x28]
lea ecx, [rdi + 1]
mov dword [r15 + 0x28], ecx
mov byte [rsi + rdi], r12b
mov esi, dword [r15 + 0x1714]
mov cl, 0x10
sub cl, sil
shr eax, cl
mov word [r15 + 0x1710], ax
lea ecx, [rsi + rbp]
add ecx, 0xfffffff0
mov dword [r15 + 0x1714], ecx
add ebx, 0xffffffff
jne 0x140189aa2
xor ebx, ebx
test r10w, r10w
je 0x140189fa5
xor ecx, ecx
cmp r14d, r10d
sete cl
mov esi, 4
sub esi, ecx
xor ecx, 7
mov ebp, r14d
mov edi, ebx
cmp r11, r8
jne 0x140189a61
jmp 0x140189fbd
test r14d, r14d
je 0x140189b7c
cmp r14d, ebp
jne 0x140189c14
mov r9d, dword [r15 + 0x1714]
mov edi, ebx
jmp 0x140189d3f
cmp ebx, 0xa
jg 0x140189ca6
movzx ebx, word [r15 + 0xaea]
mov r9d, dword [r15 + 0x1714]
mov eax, 0x10
sub eax, ebx
movzx ebp, word [r15 + 0xae8]
mov esi, ebp
mov ecx, r9d
shl esi, cl
or si, word [r15 + 0x1710]
mov word [r15 + 0x1710], si
cmp r9d, eax
jle 0x140189e64
mov r9, qword [r15 + 0x10]
mov ecx, dword [r15 + 0x28]
lea eax, [rcx + 1]
mov dword [r15 + 0x28], eax
mov byte [r9 + rcx], sil
mov r9b, byte [r15 + 0x1711]
mov rcx, qword [r15 + 0x10]
mov esi, dword [r15 + 0x28]
lea eax, [rsi + 1]
mov dword [r15 + 0x28], eax
mov byte [rcx + rsi], r9b
mov eax, dword [r15 + 0x1714]
mov cl, 0x10
sub cl, al
shr ebp, cl
mov word [r15 + 0x1710], bp
lea r9d, [rbx + rax]
add r9d, 0xfffffff0
mov esi, ebp
jmp 0x140189e67
mov eax, r14d
movzx r12d, word [r15 + rax*4 + 0xaa6]
mov r9d, dword [r15 + 0x1714]
mov esi, 0x10
sub esi, r12d
movzx ebx, word [r15 + rax*4 + 0xaa4]
mov ebp, ebx
mov ecx, r9d
shl ebp, cl
or bp, word [r15 + 0x1710]
mov word [r15 + 0x1710], bp
cmp r9d, esi
jle 0x140189d35
mov rax, qword [r15 + 0x10]
mov ecx, dword [r15 + 0x28]
lea esi, [rcx + 1]
mov dword [r15 + 0x28], esi
mov byte [rax + rcx], bpl
mov al, byte [r15 + 0x1711]
mov rcx, qword [r15 + 0x10]
mov ebp, dword [r15 + 0x28]
lea esi, [rbp + 1]
mov dword [r15 + 0x28], esi
mov byte [rcx + rbp], al
mov eax, dword [r15 + 0x1714]
mov cl, 0x10
sub cl, al
shr ebx, cl
mov word [r15 + 0x1710], bx
lea r9d, [r12 + rax]
add r9d, 0xfffffff0
jmp 0x140189d38
movzx ebx, word [r15 + 0xaee]
mov r9d, dword [r15 + 0x1714]
mov eax, 0x10
sub eax, ebx
movzx ebp, word [r15 + 0xaec]
mov esi, ebp
mov ecx, r9d
shl esi, cl
or si, word [r15 + 0x1710]
mov word [r15 + 0x1710], si
cmp r9d, eax
jle 0x140189ef0
mov r9, qword [r15 + 0x10]
mov ecx, dword [r15 + 0x28]
lea eax, [rcx + 1]
mov dword [r15 + 0x28], eax
mov byte [r9 + rcx], sil
mov r9b, byte [r15 + 0x1711]
mov rcx, qword [r15 + 0x10]
mov esi, dword [r15 + 0x28]
lea eax, [rsi + 1]
mov dword [r15 + 0x28], eax
mov byte [rcx + rsi], r9b
mov eax, dword [r15 + 0x1714]
mov cl, 0x10
sub cl, al
shr ebp, cl
mov word [r15 + 0x1710], bp
lea r9d, [rbx + rax]
add r9d, 0xfffffff0
mov esi, ebp
jmp 0x140189ef3
add r9d, r12d
mov dword [r15 + 0x1714], r9d
movzx ebx, word [r15 + 0xae6]
mov eax, 0x10
sub eax, ebx
movzx ebp, word [r15 + 0xae4]
mov esi, ebp
mov ecx, r9d
shl esi, cl
or si, word [r15 + 0x1710]
mov word [r15 + 0x1710], si
cmp r9d, eax
jle 0x140189dc0
mov r9, qword [r15 + 0x10]
mov ecx, dword [r15 + 0x28]
lea eax, [rcx + 1]
mov dword [r15 + 0x28], eax
mov byte [r9 + rcx], sil
mov r9b, byte [r15 + 0x1711]
mov rcx, qword [r15 + 0x10]
mov esi, dword [r15 + 0x28]
lea eax, [rsi + 1]
mov dword [r15 + 0x28], eax
mov byte [rcx + rsi], r9b
mov eax, dword [r15 + 0x1714]
mov cl, 0x10
sub cl, al
shr ebp, cl
mov word [r15 + 0x1710], bp
lea r9d, [rbx + rax]
add r9d, 0xfffffff0
mov esi, ebp
jmp 0x140189dc3
add r9d, ebx
add edi, 0xfffd
movzx edi, di
mov eax, edi
mov ecx, r9d
shl eax, cl
mov dword [r15 + 0x1714], r9d
or esi, eax
mov word [r15 + 0x1710], si
cmp r9d, 0xf
jl 0x140189e48
mov rax, qword [r15 + 0x10]
mov ecx, dword [r15 + 0x28]
lea ebp, [rcx + 1]
mov dword [r15 + 0x28], ebp
mov byte [rax + rcx], sil
mov al, byte [r15 + 0x1711]
mov rcx, qword [r15 + 0x10]
mov ebp, dword [r15 + 0x28]
lea ebx, [rbp + 1]
mov dword [r15 + 0x28], ebx
mov byte [rcx + rbp], al
mov r9d, dword [r15 + 0x1714]
mov cl, 0x10
sub cl, r9b
shr edi, cl
mov word [r15 + 0x1710], di
add r9d, 0xfffffff2
mov dword [r15 + 0x1714], r9d
xor ebx, ebx
test r10w, r10w
jne 0x140189b39
jmp 0x140189fa5
add r9d, 2
mov dword [r15 + 0x1714], r9d
xor ebx, ebx
test r10w, r10w
jne 0x140189b39
jmp 0x140189fa5
add r9d, ebx
add edi, 0xfffe
movzx edi, di
mov eax, edi
mov ecx, r9d
shl eax, cl
mov dword [r15 + 0x1714], r9d
or esi, eax
mov word [r15 + 0x1710], si
cmp r9d, 0xe
jl 0x140189f75
mov rax, qword [r15 + 0x10]
mov ecx, dword [r15 + 0x28]
lea ebp, [rcx + 1]
mov dword [r15 + 0x28], ebp
mov byte [rax + rcx], sil
mov al, byte [r15 + 0x1711]
mov rcx, qword [r15 + 0x10]
mov ebp, dword [r15 + 0x28]
lea ebx, [rbp + 1]
mov dword [r15 + 0x28], ebx
mov byte [rcx + rbp], al
mov r9d, dword [r15 + 0x1714]
mov cl, 0x10
sub cl, r9b
shr edi, cl
mov word [r15 + 0x1710], di
add r9d, 0xfffffff3
mov dword [r15 + 0x1714], r9d
xor ebx, ebx
test r10w, r10w
jne 0x140189b39
jmp 0x140189fa5
add r9d, ebx
add edi, 0xfff6
movzx edi, di
mov eax, edi
mov ecx, r9d
shl eax, cl
mov dword [r15 + 0x1714], r9d
or esi, eax
mov word [r15 + 0x1710], si
cmp r9d, 0xa
jl 0x140189f8e
mov rax, qword [r15 + 0x10]
mov ecx, dword [r15 + 0x28]
lea ebp, [rcx + 1]
mov dword [r15 + 0x28], ebp
mov byte [rax + rcx], sil
mov al, byte [r15 + 0x1711]
mov rcx, qword [r15 + 0x10]
mov ebp, dword [r15 + 0x28]
lea ebx, [rbp + 1]
mov dword [r15 + 0x28], ebx
mov byte [rcx + rbp], al
mov r9d, dword [r15 + 0x1714]
mov cl, 0x10
sub cl, r9b
shr edi, cl
mov word [r15 + 0x1710], di
add r9d, 0xfffffff7
mov dword [r15 + 0x1714], r9d
xor ebx, ebx
test r10w, r10w
jne 0x140189b39
jmp 0x140189fa5
add r9d, 3
mov dword [r15 + 0x1714], r9d
xor ebx, ebx
test r10w, r10w
jne 0x140189b39
jmp 0x140189fa5
add r9d, 7
mov dword [r15 + 0x1714], r9d
xor ebx, ebx
test r10w, r10w
jne 0x140189b39
mov ecx, 0x8a
mov esi, 3
mov ebp, r14d
mov edi, ebx
cmp r11, r8
jne 0x140189a61
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret