Function at 0x56bb30
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 0x56be45
mov rdi, r10
mov r9d, 0xff
xor esi, esi
mov r11d, pe_nt_image_headers64
mov ebx, 0xffffffff
test edx, edx
jle 0x56be78
lea rcx, [r8 + 0x10]
cmp r10, rcx
lea rcx, [r10 + 0x10]
setae bpl
cmp r8, rcx
setae cl
or bpl, cl
je 0x56be85
cmp edx, 0xf
jle 0x56be85
mov ecx, eax
movdqu xmm0, xmmword [r8]
shr ecx, 4
movups xmmword [r10], xmm0
cmp ecx, 1
je 0x56bce6
movdqu xmm1, xmmword [r8 + 0x10]
movups xmmword [r10 + 0x10], xmm1
cmp ecx, 2
je 0x56bce6
movdqu xmm2, xmmword [r8 + 0x20]
movups xmmword [r10 + 0x20], xmm2
cmp ecx, 3
je 0x56bce6
movdqu xmm3, xmmword [r8 + 0x30]
movups xmmword [r10 + 0x30], xmm3
cmp ecx, 4
je 0x56bce6
movdqu xmm4, xmmword [r8 + 0x40]
movups xmmword [r10 + 0x40], xmm4
cmp ecx, 5
je 0x56bce6
movdqu xmm5, xmmword [r8 + 0x50]
movups xmmword [r10 + 0x50], xmm5
cmp ecx, 6
je 0x56bce6
movdqu xmm5, xmmword [r8 + 0x60]
movups xmmword [r10 + 0x60], xmm5
cmp ecx, 8
jne 0x56bce6
movdqu xmm4, xmmword [r8 + 0x70]
movups xmmword [r10 + 0x70], xmm4
nop dword [rax + rax]
cdqe
lea r8, [0x008d0780]
movzx ecx, byte [r10 + rax - 1]
cmp edx, 0x7f
jg 0x56bc7a
mov rbp, r10
lea r8, [0x008d0780]
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 0x56bc61
and r9b, byte [rdi]
movzx eax, r9b
movzx eax, byte [r8 + rax]
mov byte [rdi], al
test esi, esi
je 0x56bcb8
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 0x56bca0
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 0x56bcc0
pop rbx
pop rsi
pop rdi
pop rbp
pop r14
ret
mov ecx, eax
and ecx, 0xfffffff0
cmp ecx, eax
je 0x56bc40
mov ebp, ecx
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 1]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 2]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 3]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 4]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 5]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 6]
cmp ebp, eax
jge 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 7]
cmp ebp, eax
jge 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 8]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 9]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xa]
cmp ebp, eax
jge 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xb]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xc]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xd]
cmp eax, ebp
jle 0x56bc40
movsxd rbp, ebp
add ecx, 0xe
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
cmp eax, ecx
jle 0x56bc40
movsxd rcx, ecx
movzx r8d, byte [r8 + rcx]
mov byte [r10 + rcx], r8b
jmp 0x56bc40
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 0x56bb7a
cdqe
movzx ecx, byte [r10 + rax - 1]
jmp 0x56bc54
xor ecx, ecx
nop word [rax + rax]
movzx ebp, byte [r8 + rcx]
mov byte [r10 + rcx], bpl
add rcx, 1
cmp eax, ecx
jg 0x56be90
jmp 0x56bc40