Function at 0x140015e50
Capabilities:
Encrypt data using rc4 prga

Disassembly:
sub rsp, 0x58
movss dword [rsp + 0x20], xmm0
mov eax, dword [rsp + 0x20]
mov edx, eax
shr eax, 0x17
and edx, 0x7fffff
movzx r8d, al
test al, al
je 0x140015e8e
add r8d, 0xffffff6a
test edx, edx
jne 0x140015e88
mov ecx, r8d
add rsp, 0x58
jmp 0x140018270
bts edx, 0x17
jmp 0x140015ea3
test edx, edx
jne 0x140015e9d
xor r9d, r9d
mov eax, r9d
add rsp, 0x58
ret
mov r8d, 0xffffff6b
mov qword [rsp + 0x68], rbx
mov ecx, 1
mov qword [rsp + 0x70], rbp
movzx ebx, dl
mov qword [rsp + 0x78], rsi
not bl
mov qword [rsp + 0x50], rdi
and bl, 1
mov qword [rsp + 0x48], r12
lea r12, [0x140061eb8]
imul esi, r8d, 0x4d105
mov qword [rsp + 0x40], r13
lea r13d, [rdx + rdx]
mov qword [rsp + 0x38], r14
mov qword [rsp + 0x30], r15
sar esi, 0x14
sub ecx, esi
imul edi, ecx, 0x1a934f
movsxd rax, ecx
mov ecx, 0x3f
mov r12, qword [r12 + rax*8]
mov eax, r13d
or eax, 1
sar edi, 0x13
add edi, r8d
mov rbp, r12
sub ecx, edi
shr rbp, cl
mov ecx, edi
shl eax, cl
mov ecx, eax
mov rax, r12
shl rcx, 0x20
mul rcx
mov r11, rdx
shr r11, 0x20
test edx, edx
mov dword [rsp + 0x20], r11d
sete byte [rsp + 0x24]
xor r9d, r9d
imul r10, r11, 0x51eb851f
lea r14d, [r9 + 0x40]
shr r10, 0x25
lea r15d, [r9 + 0x20]
imul eax, r10d, 0x64
sub r11d, eax
cmp r11d, ebp
jae 0x14001601c
test r11d, r11d
jne 0x140016054
mov rax, qword [rsp + 0x20]
xor bl, 1
shr rax, 0x20
test bl, al
je 0x140016054
dec r10d
mov r11d, 0x64
shr ebp, 1
lea eax, [r10 + r10*4]
sub r11d, ebp
add r11d, 5
imul edx, r11d, 0x199a
movzx ebx, r11b
not bl
and bl, 1
mov ecx, edx
shr ecx, 0x10
lea r8d, [rcx + rax*2]
cmp dx, 0x199a
jae 0x140015fe3
sub r14d, edi
mov edx, r13d
imul rdx, r12
movzx ecx, r14b
sub r15d, edi
mov rax, rdx
shr rax, cl
movzx ecx, r15b
shr rdx, cl
and al, 1
cmp al, bl
jne 0x140015fe0
test edx, edx
sete r9b
test r8d, r9d
je 0x140015fe3
dec r8d
mov eax, esi
shl rax, 0x20
mov ecx, r8d
or rax, rcx
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x50]
mov rsi, qword [rsp + 0x78]
mov rbp, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x68]
mov r15, qword [rsp + 0x30]
add rsp, 0x58
ret
ja 0x140015f84
lea r8d, [r13 - 1]
movzx eax, bl
imul r8, r12
mov ecx, r14d
sub ecx, edi
mov rdx, r8
shr rdx, cl
mov ecx, r15d
sub ecx, edi
and dl, 1
shr r8, cl
mov ecx, r9d
test r8d, r8d
cmove ecx, eax
or cl, dl
je 0x140015f84
imul eax, r10d, 0xc28f5c29
ror eax, 2
cmp eax, 0x28f5c28
ja 0x140016087
nop word [rax + rax]
mov r10d, eax
add r9d, 2
imul eax, eax, 0xc28f5c29
ror eax, 2
cmp eax, 0x28f5c28
jbe 0x140016070
imul ecx, r10d, 0xcccccccd
mov eax, r9d
ror ecx, 1
cmp ecx, 0x19999999
cmovbe r10d, ecx
or eax, 1
cmp ecx, 0x19999999
mov dword [rsp + 0x20], r10d
cmova eax, r9d
inc eax
add eax, esi
mov dword [rsp + 0x24], eax
mov rax, qword [rsp + 0x20]
jmp 0x140015fef
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
imul r10d, ecx, 0x9a209
lea r9, [0x140061dc0]
mov edi, ecx
mov eax, 0x1f
sub r10d, 0x3fe1f
sar r10d, 0x15
sub eax, r10d
imul r11d, r10d, 0xffe56cb1
movsxd rdx, eax
mov r9, qword [r9 + rdx*8]
sar r11d, 0x13
mov rax, r9
shr rax, 0x19
add r11d, ecx
mov ecx, 0x28
mov r8, r9
sub r8, rax
sub ecx, r11d
shr r8, cl
lea eax, [rdi - 2]
mov rdx, r9
shr rdx, 0x18
add rdx, r9
shr rdx, cl
lea ebx, [r8 + 1]
cmp eax, 1
mov eax, 0xcccccccd
cmovbe ebx, r8d
mul edx
shr edx, 3
lea eax, [rdx + rdx*4]
add eax, eax
cmp eax, ebx
jb 0x14001835e
imul eax, edx, 0xc28f5c29
inc r10d
xor r8d, r8d
ror eax, 2
cmp eax, 0x28f5c28
ja 0x140018326
nop
mov edx, eax
add r8d, 2
imul eax, eax, 0xc28f5c29
ror eax, 2
cmp eax, 0x28f5c28
jbe 0x140018310
imul ecx, edx, 0xcccccccd
mov eax, r8d
ror ecx, 1
cmp ecx, 0x19999999
cmovbe edx, ecx
or eax, 1
cmp ecx, 0x19999999
mov ecx, edx
cmova eax, r8d
add eax, r10d
shl rax, 0x20
or rax, rcx
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
ret
mov ecx, 0x27
lea eax, [rdi + 0x23]
sub ecx, r11d
shr r9, cl
inc r9d
shr r9d, 1
test eax, eax
jne 0x140018384
test r9b, 1
lea ecx, [r9 - 1]
cmove ecx, r9d
jmp 0x140018390
mov ecx, r9d
cmp r9d, ebx
jae 0x140018390
lea ecx, [r9 + 1]
mov rbx, qword [rsp + 8]
mov rdi, qword [rsp + 0x10]
mov eax, r10d
shl rax, 0x20
or rax, rcx
ret