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

Disassembly:
push r14
push rbp
push rdi
push rsi
push rbx
mov ebx, pe_nt_image_headers64
mov eax, ebx
cmp edx, 0x80
mov byte [rcx], 0
mov r10, rcx
cmovle eax, edx
test r9d, r9d
jle 0x603985
mov ecx, 0x400
cmp r9d, 0x400
mov edi, 0xff
cmovle ecx, r9d
mov r11d, 0x7f
lea r9d, [rcx + 7]
neg ecx
sar r9d, 3
and ecx, 7
sub ebx, r9d
sar edi, cl
sub r11d, r9d
movsxd rsi, ebx
add rsi, r10
test edx, edx
jle 0x6039a3
lea rcx, [r10 + 0xf]
sub rcx, r8
cmp rcx, 0x1e
jbe 0x6039b0
cmp edx, 0xf
jle 0x6039b0
movdqu xmm1, xmmword [r8]
mov ecx, eax
shr ecx, 4
movups xmmword [r10], xmm1
cmp ecx, 1
je 0x603826
movdqu xmm2, xmmword [r8 + 0x10]
movups xmmword [r10 + 0x10], xmm2
cmp ecx, 2
je 0x603826
movdqu xmm3, xmmword [r8 + 0x20]
movups xmmword [r10 + 0x20], xmm3
cmp ecx, 3
je 0x603826
movdqu xmm4, xmmword [r8 + 0x30]
movups xmmword [r10 + 0x30], xmm4
cmp ecx, 4
je 0x603826
movdqu xmm5, xmmword [r8 + 0x40]
movups xmmword [r10 + 0x40], xmm5
cmp ecx, 5
je 0x603826
movdqu xmm0, xmmword [r8 + 0x50]
movups xmmword [r10 + 0x50], xmm0
cmp ecx, 6
je 0x603826
movdqu xmm5, xmmword [r8 + 0x60]
movups xmmword [r10 + 0x60], xmm5
cmp ecx, 8
jne 0x603826
movdqu xmm0, xmmword [r8 + 0x70]
movups xmmword [r10 + 0x70], xmm0
nop word [rax + rax]
cdqe
lea r8, [0x009588c0]
movzx ecx, byte [r10 + rax - 1]
cmp edx, 0x7f
jg 0x6037b1
mov rbp, r10
lea r8, [0x009588c0]
sub rbp, rax
nop dword [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 0x603798
and dil, byte [rsi]
movzx eax, dil
movzx eax, byte [r8 + rax]
mov byte [rsi], al
test ebx, ebx
je 0x6037f8
movsxd rcx, r11d
mov r11d, r11d
movsxd r9, r9d
lea rdx, [r10 + rcx]
lea rcx, [r10 + rcx - 1]
sub rcx, r11
mov r11, rcx
nop dword [rax + rax]
xor al, byte [rdx + r9]
sub rdx, 1
movzx eax, al
movzx eax, byte [r8 + rax]
mov byte [rdx + 1], al
cmp rdx, r11
jne 0x6037e0
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 0x603800
pop rbx
pop rsi
pop rdi
pop rbp
pop r14
ret
mov ecx, eax
and ecx, 0xfffffff0
test al, 0xf
je 0x603770
mov ebp, ecx
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 1]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 2]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 3]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 4]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 5]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 6]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 7]
cmp ebp, eax
jge 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 8]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 9]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xa]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xb]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xc]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
lea ebp, [rcx + 0xd]
cmp eax, ebp
jle 0x603770
movsxd rbp, ebp
add ecx, 0xe
movzx r14d, byte [r8 + rbp]
mov byte [r10 + rbp], r14b
cmp eax, ecx
jle 0x603770
movsxd rcx, ecx
movzx r8d, byte [r8 + rcx]
mov byte [r10 + rcx], r8b
jmp 0x603770
mov rsi, rcx
mov r11d, 0xffffffff
mov edi, 0xff
xor ebx, ebx
mov r9d, pe_nt_image_headers64
test edx, edx
jg 0x6036b3
cdqe
movzx ecx, byte [r10 + rax - 1]
jmp 0x603784
xor ecx, ecx
nop word [rax + rax]
movzx ebp, byte [r8 + rcx]
mov byte [r10 + rcx], bpl
add rcx, 1
cmp eax, ecx
jg 0x6039b8
jmp 0x603770