Function at 0x1400378a0
Capabilities:
Encode data using xor

Disassembly:
mov r11, rsp
push rbp
push rsi
push r13
push r14
push r15
sub rsp, 0xa0
mov rax, qword [0x1400b5200]
xor rax, rsp
mov qword [rsp + 0x70], rax
mov qword [r11 - 0x30], rbx
mov r15d, r9d
mov qword [r11 - 0x38], rdi
mov r14, r8
mov rbp, rdx
mov rsi, rcx
test r9d, r9d
je 0x140037920
mov edi, dword [rcx + 0x40]
test edi, edi
je 0x140037920
cmp r9d, edi
mov rdx, rcx
mov ebx, edi
lea rcx, [rsp + 0x30]
cmovb ebx, r9d
call fcn.140037c30
lea r8, [rsp + 0x70]
mov r9d, ebx
sub r8, rdi
mov rdx, rbp
mov rcx, r14
call fcn.140037fa0
sub dword [rsi + 0x40], ebx
jne 0x140037915
inc dword [rsi + 0x30]
mov eax, ebx
sub r15d, ebx
add r14, rax
add rbp, rax
mov r13d, 0x40
cmp r15d, r13d
jb 0x140037bd3
mov qword [rsp + 0x88], r12
mov r12d, r15d
shr r12, 6
nop
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.140037c30
inc dword [rsi + 0x30]
lea rdx, [rsp + 0x30]
mov r10, rbp
mov r9, r14
and r10d, 7
and r9d, 7
mov r8d, r13d
mov rax, r14
mov rcx, rbp
cmp r9, r10
jne 0x140037a80
lea r9, [rsp + 0x30]
and r9d, 7
cmp r10, r9
jne 0x140037a80
test r10, r10
je 0x1400379b0
nop dword [rax]
test r8d, r8d
je 0x1400379b0
movzx r9d, byte [rdx]
dec r8d
xor r9b, byte [rcx]
inc rdx
mov byte [rax], r9b
inc rcx
inc rax
test cl, 7
jne 0x140037990
mov r11d, r8d
xor ebx, ebx
shr r11d, 3
test r11d, r11d
je 0x140037a7c
cmp r11d, 8
jb 0x140037a5b
lea r9d, [r11 - 1]
mov r10d, r9d
lea rdi, [rax + r9*8]
lea r9, [rcx + r9*8]
cmp rax, r9
ja 0x1400379e5
cmp rdi, rcx
jae 0x140037a5b
lea r9, [rdx + r10*8]
cmp rax, r9
ja 0x1400379f3
cmp rdi, rdx
jae 0x140037a5b
mov r9d, r11d
and r9d, 0xfffffff8
nop word [rax + rax]
movdqu xmm0, xmmword [rcx]
add ebx, 8
movdqu xmm1, xmmword [rdx]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rcx + 0x10]
movdqu xmmword [rax], xmm1
movdqu xmm1, xmmword [rdx + 0x10]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rcx + 0x20]
movdqu xmmword [rax + 0x10], xmm1
movdqu xmm1, xmmword [rdx + 0x20]
xorps xmm1, xmm0
movdqu xmm0, xmmword [rcx + 0x30]
add rcx, r13
movdqu xmmword [rax + 0x20], xmm1
movdqu xmm1, xmmword [rdx + 0x30]
add rdx, r13
xorps xmm1, xmm0
movdqu xmmword [rax + 0x30], xmm1
add rax, r13
cmp ebx, r9d
jb 0x140037a00
cmp ebx, r11d
jae 0x140037a7c
sub r11d, ebx
mov r10d, r11d
mov r9, qword [rdx]
add rdx, 8
xor r9, qword [rcx]
add rcx, 8
mov qword [rax], r9
add rax, 8
sub r10, 1
jne 0x140037a61
and r8d, 7
xor r11d, r11d
test r8d, r8d
je 0x140037bb6
cmp r8d, 8
jb 0x140037b83
lea r9d, [r8 - 1]
mov r10d, r9d
lea rbx, [r9 + rax]
add r9, rcx
cmp rax, r9
ja 0x140037ab2
cmp rbx, rcx
jae 0x140037b83
lea r9, [r10 + rdx]
cmp rax, r9
ja 0x140037ac4
cmp rbx, rdx
jae 0x140037b83
cmp r8d, r13d
jb 0x140037b4c
mov ebx, r8d
mov edi, 0x20
and ebx, 0xffffffc0
nop dword [rax + rax]
movdqu xmm0, xmmword [rdx + r11]
lea r9d, [rdi - 0x10]
movdqu xmm1, xmmword [rcx + r11]
xorps xmm1, xmm0
movdqu xmm0, xmmword [r9 + rdx]
movdqu xmmword [rax + r11], xmm1
add r11d, r13d
movdqu xmm1, xmmword [rcx + r9]
xorps xmm1, xmm0
movdqu xmmword [rax + r9], xmm1
mov r9d, edi
movdqu xmm0, xmmword [r9 + rdx]
movdqu xmm1, xmmword [rcx + r9]
xorps xmm1, xmm0
movdqu xmmword [rax + r9], xmm1
lea r9d, [rdi + 0x10]
add edi, r13d
movdqu xmm1, xmmword [rcx + r9]
movdqu xmm0, xmmword [r9 + rdx]
xorps xmm1, xmm0
movdqu xmmword [rax + r9], xmm1
cmp r11d, ebx
jb 0x140037ae0
jmp 0x140037b7e
mov r10d, r8d
and r10d, 0xfffffff8
nop dword [rax]
nop word [rax + rax]
movq xmm1, qword [rcx + r11]
movq xmm0, qword [r11 + rdx]
xorps xmm1, xmm0
movq qword [rax + r11], xmm1
add r11d, 8
cmp r11d, r10d
jb 0x140037b60
cmp r11d, r8d
jae 0x140037bb6
mov r10d, r11d
sub rdx, rcx
add r10, rcx
sub rax, rcx
sub r8d, r11d
mov r9d, r8d
nop word [rax + rax]
movzx ecx, byte [r10 + rdx]
xor cl, byte [r10]
mov byte [rax + r10], cl
lea r10, [r10 + 1]
sub r9, 1
jne 0x140037ba0
add r15d, 0xffffffc0
add r14, r13
add rbp, 0x40
sub r12, 1
jne 0x140037940
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
mov rbx, qword [rsp + 0x98]
test r15d, r15d
je 0x140037c0f
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.140037c30
mov r9d, r15d
lea r8, [rsp + 0x30]
mov rdx, rbp
mov rcx, r14
call fcn.140037fa0
sub r13d, r15d
mov dword [rsi + 0x40], r13d
mov rcx, qword [rsp + 0x70]
xor rcx, rsp
call fcn.14005e480
add rsp, 0xa0
pop r15
pop r14
pop r13
pop rsi
pop rbp
ret