Function at 0x14005c840
Capabilities:
Encode data using xor

Disassembly:
test r9d, r9d
je 0x14005cc4d
mov qword [rsp + 8], rcx
push rdi
sub rsp, 0x60
mov r10, qword [rsp + 0x70]
mov qword [rsp + 0x88], rbx
mov qword [rsp + 0x58], rbp
mov r11d, r9d
mov r9, 0xfffffffffffffff0
mov qword [rsp + 0x50], rsi
lea rbx, [r10 + 0x40]
mov qword [rsp + 0x48], r12
sub r9, r10
mov qword [rsp + 0x40], r13
lea eax, [r11 + r11*2]
mov qword [rsp + 0x38], r14
lea eax, [rax*4 - 0xc]
mov qword [rsp + 0x30], r15
lea rax, [r8 + rax*8]
mov qword [rsp + 0x28], r9
lea r8, [rdx + 0x10]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x78], r8
mov qword [rsp], r11
nop dword [rax + rax]
movdqu xmm0, xmmword [r10]
mov rdx, rbx
mov r11d, 4
movdqu xmm1, xmmword [r8 - 0x10]
pxor xmm1, xmm0
movdqu xmm0, xmmword [r8]
movdqu xmmword [r10], xmm1
movdqu xmm2, xmmword [r10 + 0x10]
pxor xmm2, xmm0
movdqu xmm0, xmmword [r8 + 0x10]
movdqu xmmword [r10 + 0x10], xmm2
movdqu xmm1, xmmword [r10 + 0x20]
pxor xmm1, xmm0
movdqu xmm0, xmmword [r8 + 0x20]
movdqu xmmword [r10 + 0x20], xmm1
movdqu xmm1, xmmword [r10 + 0x30]
pxor xmm1, xmm0
movdqu xmmword [r10 + 0x30], xmm1
nop
lea rax, [r9 + r8]
mov rcx, qword [rax + rdx]
xor qword [rdx], rcx
lea rdx, [rdx + 8]
sub r11, 1
jne 0x14005c920
mov rdi, qword [rsp + 0x70]
mov rdx, qword [rbx]
mov r8, qword [r10]
add r8, qword [r10 + 0x20]
mov r9, r8
xor r9, qword [r10 + 0x60]
ror r9, 0x20
add rdx, r9
mov rax, rdx
xor rax, qword [r10 + 0x20]
ror rax, 0x18
lea rsi, [r8 + rax]
mov r8, qword [r10 + 8]
add r8, qword [r10 + 0x28]
mov r12, rsi
xor r12, r9
mov r9, r8
xor r9, qword [r10 + 0x68]
ror r9, 0x20
ror r12, 0x10
lea rcx, [rdx + r12]
mov rdx, qword [r10 + 0x48]
add rdx, r9
mov qword [rsp + 8], rcx
xor rcx, rax
mov rax, rdx
xor rax, qword [r10 + 0x28]
ror rax, 0x18
rol rcx, 1
mov qword [rsp + 0x10], rcx
lea rbp, [r8 + rax]
mov r8, qword [r10 + 0x10]
add r8, qword [r10 + 0x30]
mov r13, rbp
xor r13, r9
mov r9, r8
xor r9, qword [r10 + 0x70]
ror r9, 0x20
ror r13, 0x10
lea rcx, [rdx + r13]
mov rdx, qword [r10 + 0x50]
add rdx, r9
mov qword [rsp + 0x20], rcx
mov r11, rcx
xor r11, rax
mov rax, rdx
xor rax, qword [r10 + 0x30]
ror rax, 0x18
rol r11, 1
lea r14, [r8 + rax]
mov r8, qword [rdi + 0x18]
add r8, qword [rdi + 0x38]
mov rcx, r14
xor rcx, r9
mov r9, r8
xor r9, qword [rdi + 0x78]
ror rcx, 0x10
ror r9, 0x20
mov qword [rsp + 0x18], rcx
lea r10, [rdx + rcx]
mov rdx, qword [rdi + 0x58]
add rdx, r9
mov rbx, r10
xor rbx, rax
mov rax, rdx
xor rax, qword [rdi + 0x38]
ror rax, 0x18
rol rbx, 1
lea r15, [r8 + rax]
mov r8, r15
xor r8, r9
ror r8, 0x10
lea r9, [rdx + r8]
mov rdi, r9
xor rdi, rax
lea rax, [r11 + rsi]
xor r8, rax
rol rdi, 1
ror r8, 0x20
lea rcx, [r8 + r10]
xor r11, rcx
mov r10, qword [rsp + 0x70]
ror r11, 0x18
add rax, r11
mov qword [r10], rax
xor rax, r8
ror rax, 0x10
mov qword [r10 + 0x78], rax
add rax, rcx
mov qword [r10 + 0x50], rax
xor rax, r11
mov r11, qword [rsp + 0x80]
rol rax, 1
mov qword [r10 + 0x28], rax
lea rax, [rbx + rbp]
mov rcx, rax
xor rcx, r12
ror rcx, 0x20
lea rdx, [rcx + r9]
mov r9, qword [rsp + 0x10]
xor rbx, rdx
ror rbx, 0x18
add rax, rbx
mov qword [r10 + 8], rax
xor rax, rcx
ror rax, 0x10
mov qword [r10 + 0x60], rax
add rax, rdx
mov rdx, qword [rsp + 8]
mov qword [r10 + 0x58], rax
xor rax, rbx
rol rax, 1
mov qword [r10 + 0x30], rax
lea rax, [rdi + r14]
mov rcx, rax
xor rcx, r13
ror rcx, 0x20
add rdx, rcx
xor rdi, rdx
ror rdi, 0x18
add rax, rdi
mov qword [r10 + 0x10], rax
xor rax, rcx
ror rax, 0x10
mov qword [r10 + 0x68], rax
add rax, rdx
mov rdx, qword [rsp + 0x20]
mov qword [r10 + 0x40], rax
xor rax, rdi
rol rax, 1
mov qword [r10 + 0x38], rax
lea rax, [r9 + r15]
mov rcx, rax
xor rcx, qword [rsp + 0x18]
ror rcx, 0x20
add rdx, rcx
mov r8, rdx
xor r8, r9
ror r8, 0x18
add rax, r8
mov qword [r10 + 0x18], rax
xor rax, rcx
ror rax, 0x10
mov qword [r10 + 0x70], rax
add rax, rdx
mov qword [r10 + 0x48], rax
xor rax, r8
mov r8, qword [rsp + 0x78]
rol rax, 1
mov qword [r10 + 0x20], rax
lea rax, [r8 + 0x48]
lea rcx, [r8 - 0x10]
cmp r11, rax
ja 0x14005cb75
lea rax, [r11 + 0x58]
cmp rax, rcx
jb 0x14005cb75
xor eax, eax
xor ebx, ebx
jmp 0x14005cbd4
movdqu xmm0, xmmword [r10]
movdqu xmm1, xmmword [rcx]
movdqu xmm2, xmmword [r10 + 0x10]
pxor xmm1, xmm0
movdqu xmm0, xmmword [r8]
movdqu xmmword [r11], xmm1
movdqu xmm1, xmmword [r10 + 0x20]
pxor xmm2, xmm0
movdqu xmm0, xmmword [r8 + 0x10]
movdqu xmmword [r11 + 0x10], xmm2
movdqu xmm2, xmmword [r10 + 0x30]
pxor xmm1, xmm0
movdqu xmm0, xmmword [r8 + 0x20]
movdqu xmmword [r11 + 0x20], xmm1
pxor xmm2, xmm0
movdqu xmmword [r11 + 0x30], xmm2
mov eax, 0x40
mov rbx, 0xfffffffffffffff8
mov r9, qword [rsp + 0x28]
add rax, r10
add rbx, 0xc
lea rcx, [r9 + r8]
mov rdx, qword [rcx + rax]
lea rcx, [rax + r9]
xor rdx, qword [rax]
lea rax, [rax + 8]
mov qword [rcx + r11 + 0x10], rdx
sub rbx, 1
jne 0x14005cbe0
add r8, 0x60
lea rbx, [r10 + 0x40]
sub r11, 0x60
mov qword [rsp + 0x78], r8
sub qword [rsp], 1
mov qword [rsp + 0x80], r11
jne 0x14005c8c0
mov r15, qword [rsp + 0x30]
mov r14, qword [rsp + 0x38]
mov r13, qword [rsp + 0x40]
mov r12, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rbx, qword [rsp + 0x88]
add rsp, 0x60
pop rdi
ret