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

Disassembly:
push r14
push rbp
push rdi
push rsi
push rbx
mov esi, pe_nt_image_headers64
mov eax, esi
mov r10, rcx
mov byte [rcx], 0
cmp edx, 0x80
lea ecx, [r9 - 1]
cmovle eax, edx
cmp ecx, 0x3ff
jbe 0x56c205
mov rdi, r10
mov r9d, 0xff
xor esi, esi
mov r11d, pe_nt_image_headers64
mov ebx, 0xffffffff
test edx, edx
jle 0x56c238
lea rcx, [r8 + 0x10]
cmp r10, rcx
lea rcx, [r10 + 0x10]
setae bpl
cmp r8, rcx
setae cl
or bpl, cl
je 0x56c245
cmp edx, 0xf
jle 0x56c245
mov ecx, eax
movdqu xmm0, xmmword [r8]
shr ecx, 4
movups xmmword [r10], xmm0
cmp ecx, 1
je 0x56c0a6
movdqu xmm1, xmmword [r8 + 0x10]
movups xmmword [r10 + 0x10], xmm1
cmp ecx, 2
je 0x56c0a6
movdqu xmm2, xmmword [r8 + 0x20]
movups xmmword [r10 + 0x20], xmm2
cmp ecx, 3
je 0x56c0a6
movdqu xmm3, xmmword [r8 + 0x30]
movups xmmword [r10 + 0x30], xmm3
cmp ecx, 4
je 0x56c0a6
movdqu xmm4, xmmword [r8 + 0x40]
movups xmmword [r10 + 0x40], xmm4
cmp ecx, 5
je 0x56c0a6
movdqu xmm5, xmmword [r8 + 0x50]
movups xmmword [r10 + 0x50], xmm5
cmp ecx, 6
je 0x56c0a6
movdqu xmm5, xmmword [r8 + 0x60]
movups xmmword [r10 + 0x60], xmm5
cmp ecx, 8
jne 0x56c0a6
movdqu xmm4, xmmword [r8 + 0x70]
movups xmmword [r10 + 0x70], xmm4
nop dword [rax + rax]
cdqe
lea r8, [0x008d0700]
movzx ecx, byte [r10 + rax - 1]
cmp edx, 0x7f
jg 0x56c03a
mov rbp, r10
lea r8, [0x008d0700]
sub rbp, rax
add cl, byte [rbp + rax]
movzx ecx, cl
movzx ecx, byte [r8 + rcx]
mov byte [r10 + rax], cl
add rax, 1
cmp eax, 0x7f
jle 0x56c021
and r9b, byte [rdi]
movzx eax, r9b
movzx eax, byte [r8 + rax]
mov byte [rdi], al
test esi, esi
je 0x56c078
movsxd rcx, ebx
mov ebx, ebx
movsxd r11, r11d
lea r9, [r10 + rcx - 1]
lea rdx, [r10 + rcx]
sub r9, rbx
xor al, byte [rdx + r11]
sub rdx, 1
movzx eax, al
movzx eax, byte [r8 + rax]
mov byte [rdx + 1], al
cmp rdx, r9
jne 0x56c060
mov eax, 0x7f
nop dword [rax]
movzx edx, byte [r10 + rax]
movzx ecx, byte [r10 + rax - 1]
shl edx, 8
or edx, ecx
mov dword [r10 + rax*2 - 2], edx
sub rax, 2
cmp rax, 0xffffffffffffffff
jne 0x56c080
pop rbx
pop rsi
pop rdi
pop rbp
pop r14
ret
mov ecx, eax
and ecx, 0xfffffff0
cmp ecx, eax
je 0x56c000
mov ebp, ecx
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 1]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 2]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 3]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 4]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 5]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 6]
cmp ebp, eax
jge 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 7]
cmp ebp, eax
jge 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 8]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 9]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xa]
cmp ebp, eax
jge 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xb]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xc]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xd]
cmp eax, ebp
jle 0x56c000
movsxd rbp, ebp
add ecx, 0xe
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
cmp eax, ecx
jle 0x56c000
movsxd rcx, ecx
movzx r8d, byte [r8 + rcx]
mov byte [r10 + rcx], r8b
jmp 0x56c000
lea r11d, [r9 + 7]
neg r9d
mov ebx, 0x7f
sar r11d, 3
mov ecx, r9d
mov r9d, 0xff
sub esi, r11d
and ecx, 7
sub ebx, r11d
movsxd rdi, esi
sar r9d, cl
add rdi, r10
test edx, edx
jg 0x56bf3a
cdqe
movzx ecx, byte [r10 + rax - 1]
jmp 0x56c014
xor ecx, ecx
nop word [rax + rax]
movzx ebp, byte [r8 + rcx]
mov byte [r10 + rcx], bpl
add rcx, 1
cmp eax, ecx
jg 0x56c250
jmp 0x56c000