Function at 0x140001440
Capabilities:
Encrypt data using rc4 prga

Disassembly:
push rbp
sub rsp, 0x180
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x110], rcx
mov dword [rbp + 0x118], edx
mov qword [rbp + 0x120], r8
mov dword [rbp + 0xfc], 0
mov dword [rbp + 0xf8], 1
mov dword [rbp + 0xf4], 2
mov dword [rbp + 0xf0], 0
mov dword [rbp + 0xec], 0
jmp 0x1400014b8
mov eax, dword [rbp + 0xfc]
imul eax, dword [rbp + 0xf8]
sub eax, dword [rbp + 0xf4]
add dword [rbp + 0xf0], eax
add dword [rbp + 0xec], 1
cmp dword [rbp + 0xec], 0x3e7
jle 0x140001498
mov rax, qword [rbp + 0x120]
mov rcx, rax
call sym.strlen
mov dword [rbp + 0xac], eax
mov dword [rbp + 0xe8], 0
jmp 0x140001500
mov eax, dword [rbp + 0xe8]
mov edx, eax
mov eax, dword [rbp + 0xe8]
cdqe
mov byte [rbp + rax - 0x60], dl
add dword [rbp + 0xe8], 1
cmp dword [rbp + 0xe8], 0xff
jle 0x1400014e5
mov dword [rbp + 0xe4], 0
jmp 0x140001538
mov eax, dword [rbp + 0xfc]
imul eax, dword [rbp + 0xf8]
sub eax, dword [rbp + 0xf4]
add dword [rbp + 0xf0], eax
add dword [rbp + 0xe4], 1
cmp dword [rbp + 0xe4], 0x3e7
jle 0x140001518
mov byte [rbp + 0xe3], 0
mov dword [rbp + 0xdc], 0
jmp 0x1400015f8
movzx edx, byte [rbp + 0xe3]
mov eax, dword [rbp + 0xdc]
cdqe
movzx eax, byte [rbp + rax - 0x60]
movzx eax, al
lea ecx, [rdx + rax]
mov eax, dword [rbp + 0xdc]
cdq
idiv dword [rbp + 0xac]
mov eax, edx
movsxd rdx, eax
mov rax, qword [rbp + 0x120]
add rax, rdx
movzx eax, byte [rax]
movsx eax, al
lea edx, [rcx + rax]
mov eax, edx
sar eax, 0x1f
shr eax, 0x18
add edx, eax
movzx edx, dl
sub edx, eax
mov eax, edx
mov byte [rbp + 0xe3], al
mov eax, dword [rbp + 0xdc]
cdqe
movzx eax, byte [rbp + rax - 0x60]
mov byte [rbp + 0xa3], al
movzx eax, byte [rbp + 0xe3]
cdqe
movzx edx, byte [rbp + rax - 0x60]
mov eax, dword [rbp + 0xdc]
cdqe
mov byte [rbp + rax - 0x60], dl
movzx eax, byte [rbp + 0xe3]
cdqe
movzx edx, byte [rbp + 0xa3]
mov byte [rbp + rax - 0x60], dl
add dword [rbp + 0xdc], 1
cmp dword [rbp + 0xdc], 0xff
jle 0x14000155a
mov dword [rbp + 0xd8], 0
jmp 0x140001634
mov eax, dword [rbp + 0xfc]
imul eax, dword [rbp + 0xf8]
sub eax, dword [rbp + 0xf4]
add dword [rbp + 0xf0], eax
add dword [rbp + 0xd8], 1
cmp dword [rbp + 0xd8], 0x3e7
jle 0x140001614
mov dword [rbp + 0xd4], 0
jmp 0x140001718
mov eax, dword [rbp + 0xf0]
imul eax, dword [rbp + 0xd4]
mov ecx, eax
mov edx, dword [rbp + 0xfc]
mov eax, dword [rbp + 0xf8]
add eax, edx
sub eax, dword [rbp + 0xf4]
mov edx, dword [rbp + 0xd4]
lea r9d, [rdx + 1]
cdq
idiv r9d
add eax, ecx
mov dword [rbp + 0xf0], eax
mov ecx, dword [rbp + 0xd4]
movsxd rax, ecx
imul rax, rax, 0x51eb851f
shr rax, 0x20
mov edx, eax
sar edx, 3
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
shl eax, 2
add eax, edx
lea edx, [rax*4]
add eax, edx
sub ecx, eax
mov edx, ecx
test edx, edx
jne 0x140001711
mov eax, dword [rbp + 0xfc]
imul eax, dword [rbp + 0xf8]
mov r8d, eax
mov ecx, dword [rbp + 0xd4]
movsxd rax, ecx
imul rax, rax, 0x55555556
shr rax, 0x20
mov rdx, rax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
add eax, eax
add eax, edx
sub ecx, eax
mov edx, ecx
lea ecx, [rdx + 1]
mov eax, dword [rbp + 0xf4]
cdq
idiv ecx
mov edx, eax
mov eax, r8d
sub eax, edx
add dword [rbp + 0xf0], eax
add dword [rbp + 0xd4], 1
cmp dword [rbp + 0xd4], 0xf9
jle 0x14000164f
mov dword [rbp + 0xd0], 0
jmp 0x1400017e0
mov eax, dword [rbp + 0xd0]
imul eax, dword [rbp + 0xf0]
mov ecx, dword [rbp + 0xfc]
mov edx, dword [rbp + 0xf8]
add edx, ecx
add eax, edx
mov edx, dword [rbp + 0xd0]
lea ecx, [rdx + 1]
cdq
idiv ecx
mov ecx, edx
mov eax, ecx
sub dword [rbp + 0xf0], eax
mov edx, dword [rbp + 0xfc]
mov eax, dword [rbp + 0xf8]
add edx, eax
mov eax, dword [rbp + 0xf4]
add eax, edx
mov edx, dword [rbp + 0xd0]
lea ecx, [rdx + 1]
cdq
idiv ecx
mov dword [rbp + 0xfc], edx
mov eax, dword [rbp + 0xf8]
imul eax, dword [rbp + 0xf4]
mov edx, dword [rbp + 0xd0]
lea ecx, [rdx + 1]
cdq
idiv ecx
mov dword [rbp + 0xf8], edx
mov eax, dword [rbp + 0xf4]
sub eax, dword [rbp + 0xfc]
mov edx, eax
mov eax, dword [rbp + 0xf8]
add eax, edx
mov edx, dword [rbp + 0xd0]
lea ecx, [rdx + 1]
cdq
idiv ecx
mov dword [rbp + 0xf4], edx
add dword [rbp + 0xd0], 1
cmp dword [rbp + 0xd0], 0x63
jle 0x140001737
mov dword [rbp + 0xcc], 0
jmp 0x14000185a
mov eax, dword [rbp + 0xfc]
imul eax, dword [rbp + 0xf8]
sub eax, dword [rbp + 0xf4]
add dword [rbp + 0xf0], eax
mov edx, dword [rbp + 0xcc]
movsxd rax, edx
imul rax, rax, 0x51eb851f
shr rax, 0x20
sar eax, 5
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
imul ecx, eax, 0x64
mov eax, edx
sub eax, ecx
test eax, eax
jne 0x140001853
mov eax, dword [rbp + 0xcc]
add dword [rbp + 0xfc], eax
mov eax, dword [rbp + 0xf4]
add dword [rbp + 0xf8], eax
add dword [rbp + 0xcc], 1
cmp dword [rbp + 0xcc], 0x1f3
jle 0x1400017f9
mov dword [rbp + 0xc8], 0
jmp 0x1400018ee
mov edx, dword [rbp + 0xfc]
mov eax, dword [rbp + 0xf8]
add eax, edx
sub eax, dword [rbp + 0xf4]
mov dword [rbp + 0xa4], eax
mov ecx, dword [rbp + 0xc8]
movsxd rax, ecx
imul rax, rax, 0x55555556
shr rax, 0x20
mov rdx, rax
mov eax, ecx
sar eax, 0x1f
sub edx, eax
mov eax, edx
add eax, eax
add eax, edx
sub ecx, eax
mov edx, ecx
mov eax, edx
imul eax, dword [rbp + 0xa4]
add dword [rbp + 0xf0], eax
mov eax, dword [rbp + 0xf8]
mov dword [rbp + 0xfc], eax
mov eax, dword [rbp + 0xf4]
mov dword [rbp + 0xf8], eax
mov eax, dword [rbp + 0xa4]
mov dword [rbp + 0xf4], eax
add dword [rbp + 0xc8], 1
cmp dword [rbp + 0xc8], 0xc7
jle 0x140001872
mov dword [rbp + 0xc4], 0
jmp 0x140001985
mov eax, dword [rbp + 0xf0]
imul eax, dword [rbp + 0xc4]
mov ecx, eax
mov edx, dword [rbp + 0xfc]
mov eax, dword [rbp + 0xf8]
add eax, edx
sub eax, dword [rbp + 0xf4]
mov edx, dword [rbp + 0xc4]
lea r10d, [rdx + 1]
cdq
idiv r10d
add eax, ecx
add dword [rbp + 0xf0], eax
mov edx, dword [rbp + 0xc4]
movsxd rax, edx
imul rax, rax, 0x51eb851f
shr rax, 0x20
sar eax, 4
mov ecx, edx
sar ecx, 0x1f
sub eax, ecx
imul ecx, eax, 0x32
mov eax, edx
sub eax, ecx
test eax, eax
jne 0x14000197e
mov eax, dword [rbp + 0xfc]
sub eax, dword [rbp + 0xf8]
add dword [rbp + 0xf4], eax
add dword [rbp + 0xc4], 1
cmp dword [rbp + 0xc4], 0x12b
jle 0x14000190a
mov dword [rbp + 0xc0], 0
jmp 0x140001a49
mov dword [rbp + 0xbc], 0
jmp 0x140001a35
mov eax, dword [rbp + 0xc0]
imul eax, dword [rbp + 0xbc]
add dword [rbp + 0xfc], eax
mov edx, dword [rbp + 0xc0]
mov eax, dword [rbp + 0xbc]
add eax, edx
sub dword [rbp + 0xf8], eax
mov eax, dword [rbp + 0xbc]
lea ecx, [rax + 1]
mov eax, dword [rbp + 0xc0]
cdq
idiv ecx
mov ecx, edx
mov eax, ecx
lea edx, [rax + 1]
mov eax, dword [rbp + 0xf4]
imul eax, edx
mov dword [rbp + 0xf4], eax
mov edx, dword [rbp + 0xfc]
mov eax, dword [rbp + 0xf8]
add edx, eax
mov eax, dword [rbp + 0xf4]
add eax, edx
mov edx, dword [rbp + 0xc0]
lea ecx, [rdx + 1]
cdq
idiv ecx
mov ecx, edx
mov eax, ecx
add dword [rbp + 0xf0], eax
add dword [rbp + 0xbc], 1
cmp dword [rbp + 0xbc], 4
jle 0x1400019b3
add dword [rbp + 0xc0], 1
cmp dword [rbp + 0xc0], 0x3e7
jle 0x1400019a4
mov dword [rbp + 0xb8], 0
mov byte [rbp + 0xe3], 0
mov dword [rbp + 0xb4], 0
jmp 0x140001b4a
mov eax, dword [rbp + 0xb8]
lea edx, [rax + 1]
mov eax, edx
sar eax, 0x1f
shr eax, 0x18
add edx, eax
movzx edx, dl
sub edx, eax
mov dword [rbp + 0xb8], edx
mov eax, dword [rbp + 0xb8]
cdqe
movzx eax, byte [rbp + rax - 0x60]
add byte [rbp + 0xe3], al
mov eax, dword [rbp + 0xb8]
cdqe
movzx eax, byte [rbp + rax - 0x60]
mov byte [rbp + 0xab], al
movzx eax, byte [rbp + 0xe3]
cdqe
movzx edx, byte [rbp + rax - 0x60]
mov eax, dword [rbp + 0xb8]
cdqe
mov byte [rbp + rax - 0x60], dl
movzx eax, byte [rbp + 0xe3]
cdqe
movzx edx, byte [rbp + 0xab]
mov byte [rbp + rax - 0x60], dl
mov eax, dword [rbp + 0xb4]
movsxd rdx, eax
mov rax, qword [rbp + 0x110]
add rax, rdx
movzx r8d, byte [rax]
mov eax, dword [rbp + 0xb8]
cdqe
movzx edx, byte [rbp + rax - 0x60]
movzx eax, byte [rbp + 0xe3]
cdqe
movzx eax, byte [rbp + rax - 0x60]
add eax, edx
movzx eax, al
cdqe
movzx ecx, byte [rbp + rax - 0x60]
mov eax, dword [rbp + 0xb4]
movsxd rdx, eax
mov rax, qword [rbp + 0x110]
add rax, rdx
mov edx, r8d
xor edx, ecx
mov byte [rax], dl
add dword [rbp + 0xb4], 1
mov eax, dword [rbp + 0xb4]
cmp eax, dword [rbp + 0x118]
jl 0x140001a79
mov dword [rbp + 0xb0], 0
jmp 0x140001b88
mov eax, dword [rbp + 0xfc]
imul eax, dword [rbp + 0xf8]
sub eax, dword [rbp + 0xf4]
add dword [rbp + 0xf0], eax
add dword [rbp + 0xb0], 1
cmp dword [rbp + 0xb0], 0x3e7
jle 0x140001b68
nop
nop
add rsp, 0x180
pop rbp
ret