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

Disassembly:
mov qword [rsp + 8], rbx
mov eax, pe_nt_image_headers64
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 0x1802c31a0
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 0x1802c3190
movzx edx, byte [rax + r10 - 1]
lea rbx, [0x180419fe0]
cmp rax, 0x80
jge 0x1802c31e0
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 0x1802c31c0
lea r9d, [r11 + 7]
mov eax, pe_nt_image_headers64
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 0x1802c3239
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 0x1802c3220
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 0x1802c3250
mov rbx, qword [rsp + 8]
ret