Function at 0x7ff78720fd50
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rsi
push r12
push r15
mov eax, 0x68
call sub.kernel32.dll___chkstk
sub rsp, rax
mov rax, qword [rcx + 0x188]
mov rbx, rcx
mov rcx, qword [rcx + 0x38]
mov rsi, r9
mov qword [rsp + 0x48], rax
add rcx, r9
movabs rax, 0xfffffffe0
mov r15, r8
mov r12, rdx
cmp rcx, rax
ja 0x7ff787210080
cmp rcx, r9
jb 0x7ff787210080
mov qword [rsp + 0x98], rbp
xor ebp, ebp
mov qword [rsp + 0x50], r14
mov r14d, dword [rbx + 0x178]
mov qword [rsp + 0x60], rdi
lea rdi, [rbx + 0x40]
mov qword [rsp + 0x58], r13
mov qword [rbx + 0x38], rcx
mov dword [rsp + 0x90], r14d
cmp dword [rbx + 0x17c], ebp
je 0x7ff78720fe39
test r9, r9
jne 0x7ff78720fe13
lea rdx, [rbx + 0x60]
mov rcx, rdi
call qword [rbx + 0x170]
mov dword [rbx + 0x17c], ebp
mov r13, qword [rsp + 0x58]
xor eax, eax
mov rdi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x98]
mov r14, qword [rsp + 0x50]
add rsp, 0x68
pop r15
pop r12
pop rsi
pop rbx
ret
movups xmm0, xmmword [rdi]
mov r14d, 0x10
movups xmmword [rbx + 0x190], xmm0
mov qword [rdi], rbp
mov qword [rbx + 0x48], rbp
mov r13d, dword [rbx + 0xc]
bswap r13d
mov dword [rbx + 0x17c], ebp
jmp 0x7ff78720fea3
mov r13d, dword [rbx + 0xc]
lea rcx, [rbx + 0x190]
mov ebp, r14d
and ebp, 0xf
mov dword [rsp + 0x30], ebp
bswap r13d
je 0x7ff78720feb6
test rsi, rsi
je 0x7ff787210074
movzx ecx, byte [rbp + rbx + 0x10]
dec rsi
xor cl, byte [r12]
inc r12
mov byte [r15], cl
inc r15
mov eax, r14d
inc r14d
inc ebp
mov byte [rax + rbx + 0x190], cl
and ebp, 0xf
jne 0x7ff78720fe53
lea rdi, [rbx + 0x40]
mov r9d, r14d
mov rcx, rdi
lea r8, [rbx + 0x190]
lea rdx, [rbx + 0x60]
call qword [rbx + 0x168]
xor r14d, r14d
mov dword [rsp + 0x90], r14d
lea rcx, [rbx + 0x190]
mov dword [rsp + 0x30], ebp
mov qword [rsp + 0x40], rdi
lea rax, [rbx + 0x60]
mov qword [rsp + 0x38], rax
cmp rsi, 0x10
jb 0x7ff78720ff04
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], rdi
test r14d, r14d
je 0x7ff78720ff04
mov r8, rcx
mov r9d, r14d
mov rcx, rdi
mov rdx, rax
call qword [rbx + 0x168]
xor r14d, r14d
mov qword [rsp + 0x40], rdi
lea rax, [rbx + 0x60]
mov dword [rsp + 0x90], r14d
mov qword [rsp + 0x38], rax
mov r10, qword [rsp + 0xb0]
cmp rsi, 0xc00
jb 0x7ff78720ffcb
mov r14, qword [rsp + 0x48]
mov qword [rsp + 0x38], rax
movabs rax, 0xaaaaaaaaaaaaaaab
mov rbp, qword [rsp + 0x38]
mul rsi
mov qword [rsp + 0x40], rdi
mov rdi, rdx
shr rdi, 0xb
imul rax, rdi, 0xfffffffffffff400
add rsi, rax
mov qword [rsp + 0xa8], rsi
mov rsi, qword [rsp + 0x40]
nop dword [rax + rax]
mov r9, r14
mov qword [rsp + 0x20], rbx
mov r8d, 0xc0
mov rdx, r15
mov rcx, r12
call r10
add r13d, 0xc0
mov r9d, 0xc00
mov eax, r13d
mov r8, r15
bswap eax
mov rdx, rbp
mov dword [rbx + 0xc], eax
mov rcx, rsi
call qword [rbx + 0x168]
mov r10, qword [rsp + 0xb0]
add r15, 0xc00
add r12, 0xc00
sub rdi, 1
jne 0x7ff78720ff60
mov rsi, qword [rsp + 0xa8]
mov ebp, dword [rsp + 0x30]
mov r14d, dword [rsp + 0x90]
mov rax, rsi
and rax, 0xfffffffffffffff0
mov qword [rsp + 0xa8], rax
je 0x7ff78721002b
mov r9, qword [rsp + 0x48]
mov rdi, rax
shr rdi, 4
mov rdx, r15
mov r8, rdi
mov qword [rsp + 0x20], rbx
mov rcx, r12
call r10
mov rdx, qword [rsp + 0x38]
add r13d, edi
mov rdi, qword [rsp + 0xa8]
mov eax, r13d
mov rcx, qword [rsp + 0x40]
mov r9, rdi
bswap eax
mov r8, r15
mov dword [rbx + 0xc], eax
add r12, rdi
sub rsi, rdi
call qword [rbx + 0x168]
add r15, rdi
test rsi, rsi
je 0x7ff787210074
mov r8, qword [rsp + 0x48]
lea rdx, [rbx + 0x10]
mov rcx, rbx
call qword [rbx + 0x180]
inc r13d
bswap r13d
mov dword [rbx + 0xc], r13d
nop dword [rax]
mov eax, ebp
inc ebp
movzx ecx, byte [rax + rbx + 0x10]
xor cl, byte [rax + r12]
mov byte [rax + r15], cl
mov eax, r14d
inc r14d
mov byte [rax + rbx + 0x190], cl
sub rsi, 1
jne 0x7ff787210050
mov dword [rbx + 0x178], r14d
jmp 0x7ff78720fdef
mov eax, 0xffffffff
add rsp, 0x68
pop r15
pop r12
pop rsi
pop rbx
ret