Function at 0x1402e7530
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
test rcx, rcx
je 0x1402d4a42
push rbx
sub rsp, 0x20
mov eax, dword [rcx + 0x220]
mov rbx, rcx
cmp dword [rcx + 0x234], eax
jae 0x1402d4a3d
mov r9d, 2
xor r8d, r8d
xor edx, edx
call fcn.1402e64a0
mov rcx, rbx
mov dword [rbx + 0x2bc], 0
call fcn.1402df080
add rsp, 0x20
pop rbx
ret
push rbx
sub rsp, 0x20
xor r9d, r9d
mov rbx, rcx
call fcn.1402e64a0
mov rcx, qword [rbx + 0x240]
test rcx, rcx
je 0x1402e62e2
mov rax, qword [rbx + 0x248]
mov qword [rbx + 0x240], rax
mov qword [rbx + 0x248], rcx
mov eax, dword [rbx + 0x234]
inc eax
mov dword [rbx + 0x234], eax
cmp eax, dword [rbx + 0x220]
jb 0x1402e6467
cmp byte [rbx + 0x284], 0
je 0x1402e6454
test byte [rbx + 0x16c], 2
mov dword [rbx + 0x234], 0
je 0x1402e6336
inc byte [rbx + 0x285]
lea rdx, [rbx + 0x218]
movzx r11d, byte [rbx + 0x285]
jmp 0x1402e63f0
mov qword [rsp + 0x30], rsi
lea rsi, [0x140000000]
mov qword [rsp + 0x38], rdi
nop word [rax + rax]
movzx r11d, byte [rbx + 0x285]
lea rdx, [rbx + 0x218]
inc r11b
mov byte [rbx + 0x285], r11b
cmp r11b, 7
jae 0x1402e63e6
xor edx, edx
movzx r10d, r11b
movzx r8d, byte [r10 + rsi + 0x442ac8]
movzx eax, byte [r10 + rsi + 0x442ac0]
mov ecx, r8d
sub ecx, eax
mov eax, dword [rbx + 0x218]
dec eax
add eax, ecx
movzx ecx, byte [r10 + rsi + 0x442ad0]
div r8d
movzx r8d, byte [r10 + rsi + 0x442ad8]
mov r9d, eax
mov dword [rbx + 0x224], eax
mov eax, dword [rbx + 0x21c]
mov edx, r8d
sub edx, ecx
dec eax
add eax, edx
xor edx, edx
div r8d
mov dword [rbx + 0x220], eax
test r9d, r9d
je 0x1402e6350
lea rdx, [rbx + 0x218]
test eax, eax
je 0x1402e6350
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
cmp r11b, 7
jae 0x1402e6454
mov r10, qword [rbx + 0x240]
test r10, r10
je 0x1402e6467
movzx eax, byte [rbx + 0x289]
movzx ecx, byte [rbx + 0x28c]
mov r8d, eax
mov r9d, dword [rdx]
imul eax, ecx
imul r8, rcx
cmp eax, 8
jb 0x1402e6439
shr r8, 3
xor edx, edx
imul r8, r9
mov rcx, r10
inc r8
call sub.VCRUNTIME140.dll_memset
jmp 0x1402e6467
imul r8, r9
xor edx, edx
mov rcx, r10
add r8, 7
shr r8, 3
inc r8
call sub.VCRUNTIME140.dll_memset
jmp 0x1402e6467
mov r9d, 4
xor r8d, r8d
xor edx, edx
mov rcx, rbx
call fcn.1402e64a0
mov eax, dword [rbx + 0x2bc]
mov ecx, dword [rbx + 0x2b8]
inc eax
mov dword [rbx + 0x2bc], eax
test ecx, ecx
je 0x1402e6490
cmp eax, ecx
jb 0x1402e6490
mov rcx, rbx
add rsp, 0x20
pop rbx
jmp 0x1402d4a00
add rsp, 0x20
pop rbx
ret
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r15
sub rsp, 0x60
movzx esi, byte [rdx + 0x13]
movabs rax, 0x1ffffffffffffff
mov r9, qword [rdx + 8]
add esi, 7
movzx r15d, byte [rcx + 0x286]
xor edi, edi
mov r11, qword [rcx + 0x248]
mov rbx, rcx
shr esi, 3
mov r10, 0xfffffffffffffeff
mov dword [rsp + 0xa8], r15d
mov r12, r11
mov dword [rsp + 0xa0], esi
cmp r9, rax
jb 0x1402e75a1
mov eax, r15d
neg eax
and r15d, eax
mov dword [rsp + 0xa8], r15d
jmp 0x1402e75e3
test r15b, 8
je 0x1402e75e3
cmp r15d, 8
je 0x1402e75e3
mov r10, rdi
mov rdx, rdi
test r9, r9
je 0x1402e75e3
nop dword [rax + rax]
movzx ecx, byte [r11 + rdx + 1]
mov eax, 0x100
sub eax, ecx
cmp ecx, 0x80
cmovae ecx, eax
inc rdx
mov eax, ecx
add r10, rax
cmp rdx, r9
jb 0x1402e75c0
mov qword [rsp + 0x58], rbp
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x48], r14
cmp r15d, 0x10
jne 0x1402e7856
mov r13, qword [rbx + 0x250]
lea r14, [r11 + 1]
mov r8d, esi
mov rdx, r14
mov rsi, rdi
mov byte [r13], 1
lea rcx, [r13 + 1]
test r8, r8
je 0x1402e7632
mov esi, r8d
movzx eax, byte [rdx]
inc rdx
mov byte [rcx], al
inc rcx
sub r8, 1
jne 0x1402e7621
mov r11, r9
mov r8, r14
sub r11, rsi
cmp rsi, r9
jae 0x1402e7734
cmp r11, 0x40
jb 0x1402e7707
lea rbp, [r9 - 1]
lea rax, [r9 - 1]
add rbp, rcx
add rax, r14
lea r12, [rcx + rsi]
cmp r12, rax
ja 0x1402e7672
lea rax, [r14 + rsi]
cmp rbp, rax
jae 0x1402e7707
lea rax, [r9 - 1]
add rax, rdx
cmp r12, rax
ja 0x1402e768b
lea rax, [rdx + rsi]
cmp rbp, rax
jae 0x1402e7707
and r11d, 0x3f
mov rax, r9
sub rax, r11
nop word [rax + rax]
movdqu xmm0, xmmword [r8]
add rsi, 0x40
movdqu xmm1, xmmword [rdx]
psubb xmm1, xmm0
movdqu xmm0, xmmword [r8 + 0x10]
movdqu xmmword [rcx], xmm1
movdqu xmm1, xmmword [rdx + 0x10]
psubb xmm1, xmm0
movdqu xmm0, xmmword [r8 + 0x20]
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm1, xmmword [rdx + 0x20]
psubb xmm1, xmm0
movdqu xmm0, xmmword [r8 + 0x30]
add r8, 0x40
movdqu xmmword [rcx + 0x20], xmm1
movdqu xmm1, xmmword [rdx + 0x30]
add rdx, 0x40
psubb xmm1, xmm0
movdqu xmmword [rcx + 0x30], xmm1
add rcx, 0x40
cmp rsi, rax
jb 0x1402e76a0
cmp rsi, r9
jae 0x1402e7734
sub r8, rcx
sub rdx, rcx
mov r11, r9
sub r11, rsi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [rdx + rcx]
sub al, byte [r8 + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r11, 1
jne 0x1402e7720
mov r12, r13
test r15b, 0x40
je 0x1402e782b
mov rcx, qword [rbx + 0x250]
mov r8, rdi
mov rdx, qword [rbx + 0x240]
mov r11, r14
inc rdx
mov ebp, edi
mov byte [rcx], 3
lea rsi, [rcx + 1]
mov ecx, dword [rsp + 0xa0]
test ecx, ecx
je 0x1402e77ad
mov r15d, ecx
mov ebp, ecx
movzx eax, byte [r11]
inc r11
movzx ecx, byte [rdx]
inc rdx
shr cl, 1
sub al, cl
movzx ecx, al
mov eax, 0x100
sub eax, ecx
mov byte [rsi], cl
inc rsi
cmp ecx, 0x80
cmovae ecx, eax
mov eax, ecx
add r8, rax
sub r15, 1
jne 0x1402e7771
mov r15d, dword [rsp + 0xa8]
mov eax, ebp
cmp rax, r9
jae 0x1402e7802
sub r14, rdx
sub r11, rdx
sub rsi, rdx
nop dword [rax]
movzx eax, byte [rdx]
movzx ecx, byte [r14 + rdx]
lea rdx, [rdx + 1]
add ecx, eax
movzx eax, byte [r11 + rdx - 1]
shr ecx, 1
sub al, cl
movzx ecx, al
mov eax, 0x100
sub eax, ecx
mov byte [rsi + rdx - 1], cl
cmp ecx, 0x80
cmovae ecx, eax
mov eax, ecx
add r8, rax
cmp r8, r10
ja 0x1402e782b
inc ebp
mov eax, ebp
cmp rax, r9
jb 0x1402e77c0
cmp r8, r10
jae 0x1402e782b
mov rax, qword [rbx + 0x258]
mov r10, r8
mov r12, qword [rbx + 0x250]
test rax, rax
je 0x1402e782b
mov qword [rbx + 0x250], rax
mov qword [rbx + 0x258], r12
cmp r15d, 0x80
jne 0x1402e7a34
mov edx, dword [rsp + 0xa0]
mov r8, r9
mov rcx, rbx
call fcn.1402e5cd0
mov rdx, qword [rbx + 0x250]
jmp 0x1402e7c92
test r15b, 0x10
je 0x1402e792c
mov r13, qword [rbx + 0x250]
lea r14, [r11 + 1]
mov ebp, esi
mov r8, rdi
mov r11, r14
mov rsi, rdi
mov byte [r13], 1
lea rdx, [r13 + 1]
test rbp, rbp
je 0x1402e78b9
mov esi, ebp
nop word [rax + rax]
movzx eax, byte [r11]
mov ecx, eax
mov byte [rdx], al
mov eax, 0x100
sub eax, ecx
cmp ecx, 0x80
cmovae ecx, eax
inc r11
mov eax, ecx
inc rdx
add r8, rax
sub rbp, 1
jne 0x1402e7890
cmp rsi, r9
jae 0x1402e78f7
sub r11, rdx
sub r14, rdx
movzx eax, byte [r11 + rdx]
sub al, byte [r14 + rdx]
movzx ecx, al
mov eax, 0x100
sub eax, ecx
mov byte [rdx], cl
cmp ecx, 0x80
cmovae ecx, eax
mov eax, ecx
add r8, rax
cmp r8, r10
ja 0x1402e7925
inc rdx
inc rsi
cmp rsi, r9
jb 0x1402e78c4
cmp r8, r10
jae 0x1402e7925
mov rax, qword [rbx + 0x258]
mov r10, r8
mov r11, qword [rbx + 0x248]
mov r12, r13
test rax, rax
je 0x1402e792c
mov qword [rbx + 0x250], rax
mov qword [rbx + 0x258], r13
jmp 0x1402e792c
mov r11, qword [rbx + 0x248]
cmp r15d, 0x20
jne 0x1402e7bda
mov r12, qword [rbx + 0x250]
lea r8, [r11 + 1]
mov rdx, qword [rbx + 0x240]
mov rsi, rdi
inc rdx
mov byte [r12], 2
lea rcx, [r12 + 1]
test r9, r9
je 0x1402e7a34
cmp r9, 0x40
jb 0x1402e7a07
lea r11, [r9 - 1]
lea rax, [r9 - 1]
add r11, rcx
add rax, rdx
cmp rcx, rax
ja 0x1402e7987
cmp r11, rdx
jae 0x1402e7a07
lea rax, [r9 - 1]
add rax, r8
cmp rcx, rax
ja 0x1402e7998
cmp r11, r8
jae 0x1402e7a07
mov rax, r9
and rax, 0xffffffffffffffc0
nop
movdqu xmm0, xmmword [rdx]
add rsi, 0x40
movdqu xmm1, xmmword [r8]
psubb xmm1, xmm0
movdqu xmm0, xmmword [rdx + 0x10]
movdqu xmmword [rcx], xmm1
movdqu xmm1, xmmword [r8 + 0x10]
psubb xmm1, xmm0
movdqu xmm0, xmmword [rdx + 0x20]
movdqu xmmword [rcx + 0x10], xmm1
movdqu xmm1, xmmword [r8 + 0x20]
psubb xmm1, xmm0
movdqu xmm0, xmmword [rdx + 0x30]
add rdx, 0x40
movdqu xmmword [rcx + 0x20], xmm1
movdqu xmm1, xmmword [r8 + 0x30]
add r8, 0x40
psubb xmm1, xmm0
movdqu xmmword [rcx + 0x30], xmm1
add rcx, 0x40
cmp rsi, rax
jb 0x1402e79a0
cmp rsi, r9
jae 0x1402e7a34
sub r8, rcx
sub rdx, rcx
mov r11, r9
sub r11, rsi
nop dword [rax]
nop word [rax + rax]
movzx eax, byte [r8 + rcx]
sub al, byte [rdx + rcx]
mov byte [rcx], al
lea rcx, [rcx + 1]
sub r11, 1
jne 0x1402e7a20
mov rdx, r12
test r15b, r15b
jns 0x1402e7c92
mov r8, qword [rbx + 0x250]
mov r15, rdi
mov r11, qword [rbx + 0x248]
mov rax, qword [rbx + 0x240]
inc r11
mov edx, dword [rsp + 0xa0]
inc rax
mov qword [rsp + 0x30], r8
lea r14, [r8 + 1]
mov byte [r8], 4
mov r13, rax
mov qword [rsp + 0xa8], r11
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
test rdx, rdx
je 0x1402e7ad7
mov r15d, edx
mov qword [rsp + 0x20], r12
nop dword [rax]
nop dword [rax + rax]
movzx eax, byte [r11]
inc r11
sub al, byte [r13]
inc r13
movzx ecx, al
mov eax, 0x100
sub eax, ecx
mov byte [r14], cl
inc r14
cmp ecx, 0x80
cmovae ecx, eax
mov eax, ecx
add rdi, rax
sub rdx, 1
jne 0x1402e7aa0
mov rax, qword [rsp + 0x28]
cmp r15, r9
jae 0x1402e7bab
mov rbx, qword [rsp + 0xa8]
sub rax, rbx
sub r13, rbx
mov qword [rsp + 0x28], rax
sub r14, r11
nop word [rax + rax]
movzx eax, byte [rax + rbx]
movzx ecx, byte [rbx + r13]
movzx esi, byte [rbx]
lea rbx, [rbx + 1]
mov dword [rsp + 0xa0], eax
mov r8d, ecx
sub r8d, eax
mov dword [rsp + 0xa8], ecx
mov ecx, esi
sub ecx, eax
mov eax, r8d
cdq
mov ebp, eax
mov eax, ecx
xor ebp, edx
sub ebp, edx
cdq
mov r12d, eax
lea eax, [rcx + r8]
xor r12d, edx
sub r12d, edx
cdq
xor eax, edx
sub eax, edx
cmp ebp, r12d
jg 0x1402e7b50
cmp ebp, eax
jle 0x1402e7b62
mov esi, dword [rsp + 0xa0]
cmp r12d, eax
cmovle esi, dword [rsp + 0xa8]
movzx eax, byte [r11]
sub al, sil
movzx ecx, al
mov eax, 0x100
sub eax, ecx
mov byte [r14 + r11], cl
inc r11
cmp ecx, 0x80
cmovae ecx, eax
mov eax, ecx
add rdi, rax
cmp rdi, r10
ja 0x1402e7b9e
mov rax, qword [rsp + 0x28]
inc r15
cmp r15, r9
jb 0x1402e7b00
mov rbx, qword [rsp + 0x90]
mov r8, qword [rsp + 0x30]
cmp rdi, r10
jae 0x1402e7c8d
mov rax, qword [rbx + 0x258]
mov rdx, r8
test rax, rax
je 0x1402e7c92
mov qword [rbx + 0x250], rax
mov qword [rbx + 0x258], r8
jmp 0x1402e7c92
lea r14, [r11 + 1]
mov r13, r12
test r15b, 0x20
je 0x1402e7c68
mov rbp, qword [rbx + 0x250]
mov r11, rdi
mov byte [rbp], 2
lea rdx, [rbp + 1]
test r9, r9
je 0x1402e7c43
mov rsi, qword [rbx + 0x240]
mov r8, rdi
sub rsi, rdx
nop
movzx eax, byte [r8 + r14]
sub al, byte [rsi + rdx + 1]
movzx ecx, al
mov eax, 0x100
sub eax, ecx
mov byte [rdx], cl
cmp ecx, 0x80
cmovae ecx, eax
mov eax, ecx
add r11, rax
cmp r11, r10
ja 0x1402e7c68
inc rdx
inc r8
cmp r8, r9
jb 0x1402e7c10
cmp r11, r10
jae 0x1402e7c68
mov rax, qword [rbx + 0x258]
mov r10, r11
mov r13, rbp
test rax, rax
je 0x1402e7c68
mov qword [rbx + 0x250], rax
mov qword [rbx + 0x258], rbp
cmp r15d, 0x40
jne 0x1402e7734
mov edx, dword [rsp + 0xa0]
mov r8, r9
mov rcx, rbx
call fcn.1402e5aa0
mov rdx, qword [rbx + 0x250]
jmp 0x1402e7c92
mov rdx, qword [rsp + 0x20]
mov r8, qword [rsp + 0x98]
mov rcx, rbx
mov r8, qword [r8 + 8]
inc r8
mov r14, qword [rsp + 0x48]
mov r13, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
add rsp, 0x60
pop r15
pop r12
pop rdi
pop rsi
pop rbx
jmp 0x1402e62b0