Function at 0x180307900
Capabilities:
Encode data using xor
Encrypt data using rc4 prga

Disassembly:
mov qword [rsp + 8], rbx
mov eax, 0x80
mov byte [rcx], 0
cmp edx, eax
mov r10, rcx
mov ecx, 0x400
mov rbx, r8
cmovle eax, edx
mov r11d, ecx
test r9d, r9d
cdqe
cmovg r11d, r9d
cmp r11d, ecx
cmovg r11d, ecx
test rax, rax
jle 0x180307950
mov rdx, r10
sub rbx, r10
mov r8, rax
nop
movzx ecx, byte [rbx + rdx]
mov byte [rdx], cl
lea rdx, [rdx + 1]
sub r8, 1
jne 0x180307940
movzx edx, byte [rax + r10 - 1]
lea rbx, [0x18049ed30]
cmp rax, 0x80
jge 0x180307990
mov r8, r10
nop dword [rax + rax]
movzx ecx, byte [r8]
lea r8, [r8 + 1]
add ecx, edx
movzx edx, cl
movzx edx, byte [rdx + rbx]
mov byte [rax + r10], dl
inc rax
cmp rax, 0x80
jl 0x180307970
lea r9d, [r11 + 7]
mov eax, 0x80
sar r9d, 3
neg r11d
sub eax, r9d
and r11d, 7
movsxd r8, eax
movzx ecx, r11b
mov eax, 0xff
lea rdx, [r8 + r10]
sar eax, cl
mov ecx, eax
movzx eax, byte [rdx]
and rcx, rax
movzx eax, byte [rcx + rbx]
mov byte [rdx], al
test r8, r8
je 0x1803079e9
movsxd r9, r9d
nop
movzx ecx, byte [rdx + r9 - 1]
lea rdx, [rdx - 1]
xor rcx, rax
movzx eax, byte [rcx + rbx]
mov byte [rdx], al
sub r8, 1
jne 0x1803079d0
lea rdx, [r10 + 0xfc]
mov r8d, 2
add r10, 0x7d
nop word [rax + rax]
movzx eax, byte [r10 + 1]
movzx ecx, byte [r10 + 2]
shl ecx, 8
or ecx, eax
mov dword [rdx], ecx
movzx eax, byte [r10 - 1]
movzx ecx, byte [r10]
shl ecx, 8
or ecx, eax
mov dword [rdx - 4], ecx
movzx eax, byte [r10 - 3]
movzx ecx, byte [r10 - 2]
shl ecx, 8
or ecx, eax
mov dword [rdx - 8], ecx
movzx eax, byte [r10 - 5]
movzx ecx, byte [r10 - 4]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0xc], ecx
movzx eax, byte [r10 - 7]
movzx ecx, byte [r10 - 6]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x10], ecx
movzx eax, byte [r10 - 9]
movzx ecx, byte [r10 - 8]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x14], ecx
movzx eax, byte [r10 - 0xb]
movzx ecx, byte [r10 - 0xa]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x18], ecx
movzx eax, byte [r10 - 0xd]
movzx ecx, byte [r10 - 0xc]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x1c], ecx
movzx eax, byte [r10 - 0xf]
movzx ecx, byte [r10 - 0xe]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x20], ecx
movzx eax, byte [r10 - 0x11]
movzx ecx, byte [r10 - 0x10]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x24], ecx
movzx eax, byte [r10 - 0x13]
movzx ecx, byte [r10 - 0x12]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x28], ecx
movzx eax, byte [r10 - 0x15]
movzx ecx, byte [r10 - 0x14]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x2c], ecx
movzx eax, byte [r10 - 0x17]
movzx ecx, byte [r10 - 0x16]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x30], ecx
movzx eax, byte [r10 - 0x19]
movzx ecx, byte [r10 - 0x18]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x34], ecx
movzx eax, byte [r10 - 0x1b]
movzx ecx, byte [r10 - 0x1a]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x38], ecx
movzx ecx, byte [r10 - 0x1c]
movzx eax, byte [r10 - 0x1d]
shl ecx, 8
or ecx, eax
mov dword [rdx - 0x3c], ecx
movzx ecx, byte [r10 - 0x1e]
movzx eax, byte [r10 - 0x1f]
lea rdx, [rdx - 0x80]
shl ecx, 8
lea r10, [r10 - 0x40]
or ecx, eax
mov dword [rdx + 0x40], ecx
movzx eax, byte [r10 + 0x1f]
movzx ecx, byte [r10 + 0x20]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x3c], ecx
movzx eax, byte [r10 + 0x1d]
movzx ecx, byte [r10 + 0x1e]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x38], ecx
movzx eax, byte [r10 + 0x1b]
movzx ecx, byte [r10 + 0x1c]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x34], ecx
movzx eax, byte [r10 + 0x19]
movzx ecx, byte [r10 + 0x1a]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x30], ecx
movzx eax, byte [r10 + 0x17]
movzx ecx, byte [r10 + 0x18]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x2c], ecx
movzx eax, byte [r10 + 0x15]
movzx ecx, byte [r10 + 0x16]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x28], ecx
movzx eax, byte [r10 + 0x13]
movzx ecx, byte [r10 + 0x14]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x24], ecx
movzx eax, byte [r10 + 0x11]
movzx ecx, byte [r10 + 0x12]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x20], ecx
movzx eax, byte [r10 + 0xf]
movzx ecx, byte [r10 + 0x10]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x1c], ecx
movzx eax, byte [r10 + 0xd]
movzx ecx, byte [r10 + 0xe]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x18], ecx
movzx eax, byte [r10 + 0xb]
movzx ecx, byte [r10 + 0xc]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x14], ecx
movzx eax, byte [r10 + 9]
movzx ecx, byte [r10 + 0xa]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0x10], ecx
movzx eax, byte [r10 + 7]
movzx ecx, byte [r10 + 8]
shl ecx, 8
or ecx, eax
mov dword [rdx + 0xc], ecx
movzx eax, byte [r10 + 5]
movzx ecx, byte [r10 + 6]
shl ecx, 8
or ecx, eax
mov dword [rdx + 8], ecx
movzx ecx, byte [r10 + 4]
movzx eax, byte [r10 + 3]
shl ecx, 8
or ecx, eax
mov dword [rdx + 4], ecx
sub r8, 1
jne 0x180307a00
mov rbx, qword [rsp + 8]
ret