Function at 0x4438b0
Capabilities:
Encode data using xor

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x138
lea r10, [r8 - 1]
mov rsi, rcx
mov rdi, r8
mov rcx, r10
shr rcx, 0xa
test r9, r9
jne 0x443b59
mov eax, 0xc2b2ae3d
test rcx, rcx
lea r11, [rsp + 0x70]
mov qword [rsp + 0x70], rax
movabs rax, 0x9e3779b185ebca87
mov qword [rsp + 0x78], rax
movabs rax, 0xc2b2ae3d27d4eb4f
mov qword [rsp + 0x80], rax
movabs rax, 0x165667b19e3779f9
mov qword [rsp + 0x88], rax
movabs rax, 0x85ebca77c2b2ae63
mov qword [rsp + 0x90], rax
mov eax, 0x85ebca77
mov qword [rsp + 0x98], rax
movabs rax, 0x27d4eb2f165667c5
mov qword [rsp + 0xa0], rax
mov eax, 0x9e3779b1
mov qword [rsp + 0xa8], rax
je 0x443a3f
lea rbp, [rdx + 0x180]
shl rcx, 0xa
lea rbx, [0x00543c00]
lea r11, [rsp + 0x70]
movdqa xmm3, xmmword [0x00543c40]
lea r12, [rbp + rcx]
nop word cs:[rax + rax]
lea rcx, [0x00543b80]
mov r9, rbp
nop word [rax + rax]
lea r8, [r9 - 0x180]
xor eax, eax
prefetcht0 byte [r9]
movdqu xmm1, xmmword [r8 + rax]
movdqu xmm0, xmmword [rcx + rax]
pxor xmm0, xmm1
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm0, 0x31
pmuludq xmm0, xmm2
paddq xmm0, xmm1
paddq xmm0, xmmword [r11 + rax]
movaps xmmword [r11 + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x4439ad
add rcx, 8
add r9, 0x40
cmp rbx, rcx
jne 0x4439a0
xor eax, eax
movdqa xmm0, xmmword [r11 + rax]
movdqa xmm1, xmm0
pxor xmm0, xmmword [rbx + rax]
psrlq xmm1, 0x2f
pxor xmm0, xmm1
pshufd xmm1, xmm0, 0x31
pmuludq xmm0, xmm3
pmuludq xmm1, xmm3
psllq xmm1, 0x20
paddq xmm0, xmm1
movaps xmmword [r11 + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x4439f2
add rbp, 0x400
cmp r12, rbp
jne 0x443990
mov rax, r10
and rax, 0xfffffffffffffc00
sub r10, rax
shr r10, 6
test r10, r10
je 0x443ac0
lea rcx, [0x00543b80]
lea r9, [rdx + rax + 0x180]
lea r10, [rcx + r10*8]
nop word [rax + rax]
lea r8, [r9 - 0x180]
xor eax, eax
prefetcht0 byte [r9]
movdqu xmm1, xmmword [r8 + rax]
movdqu xmm0, xmmword [rcx + rax]
pxor xmm0, xmm1
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm0, 0x31
pmuludq xmm0, xmm2
paddq xmm0, xmm1
paddq xmm0, xmmword [r11 + rax]
movaps xmmword [r11 + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x443a7d
add rcx, 8
add r9, 0x40
cmp r10, rcx
jne 0x443a70
lea rcx, [0x00543bf9]
xor eax, eax
add rdx, rdi
movdqu xmm1, xmmword [rdx + rax - 0x40]
movdqu xmm0, xmmword [rcx + rax]
pxor xmm0, xmm1
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm0, 0x31
pmuludq xmm0, xmm2
paddq xmm0, xmm1
paddq xmm0, xmmword [r11 + rax]
movaps xmmword [r11 + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x443acc
movabs r8, 0x9e3779b185ebca87
lea rdx, [0x00543b8b]
mov rcx, r11
imul r8, rdi
call fcn.00442e70
movabs r8, 0xc2b2ae3d27d4eb4f
lea rdx, [0x00543bf5]
mov rbx, rax
imul r8, rdi
not r8
call fcn.00442e70
mov qword [rsi], rbx
mov qword [rsi + 8], rax
mov rax, rsi
add rsp, 0x138
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rax, r9
mov qword [rsp + 0x28], r9
lea r11, [rsp + 0x70]
neg rax
movq xmm1, qword [rsp + 0x28]
mov qword [rsp + 0x28], rax
lea r9, [0x00543b80]
xor eax, eax
movhps xmm1, qword [rsp + 0x28]
mov r8, r11
movdqa xmm0, xmmword [r9 + rax]
paddq xmm0, xmm1
movaps xmmword [r8 + rax], xmm0
add rax, 0x10
cmp rax, 0xc0
jne 0x443b85
mov eax, 0xc2b2ae3d
test rcx, rcx
lea rbx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
movabs rax, 0x9e3779b185ebca87
mov qword [rsp + 0x38], rax
movabs rax, 0xc2b2ae3d27d4eb4f
mov qword [rsp + 0x40], rax
movabs rax, 0x165667b19e3779f9
mov qword [rsp + 0x48], rax
movabs rax, 0x85ebca77c2b2ae63
mov qword [rsp + 0x50], rax
mov eax, 0x85ebca77
mov qword [rsp + 0x58], rax
movabs rax, 0x27d4eb2f165667c5
mov qword [rsp + 0x60], rax
mov eax, 0x9e3779b1
mov qword [rsp + 0x68], rax
je 0x443cec
lea r12, [rdx + 0x180]
shl rcx, 0xa
lea rbx, [rsp + 0x30]
movdqa xmm3, xmmword [0x00543c40]
lea rbp, [r11 + 0x80]
lea r13, [r12 + rcx]
nop word [rax + rax]
mov rcx, r11
mov r9, r12
nop word cs:[rax + rax]
lea r8, [r9 - 0x180]
xor eax, eax
prefetcht0 byte [r9]
movdqu xmm1, xmmword [r8 + rax]
movdqu xmm0, xmmword [rcx + rax]
pxor xmm0, xmm1
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm0, 0x31
pmuludq xmm0, xmm2
paddq xmm0, xmm1
paddq xmm0, xmmword [rbx + rax]
movaps xmmword [rbx + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x443c5d
add rcx, 8
add r9, 0x40
cmp rbp, rcx
jne 0x443c50
xor eax, eax
movdqa xmm0, xmmword [rbx + rax]
movdqa xmm1, xmm0
pxor xmm0, xmmword [rbp + rax]
psrlq xmm1, 0x2f
pxor xmm0, xmm1
pshufd xmm1, xmm0, 0x31
pmuludq xmm0, xmm3
pmuludq xmm1, xmm3
psllq xmm1, 0x20
paddq xmm0, xmm1
movaps xmmword [rbx + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x443ca0
add r12, 0x400
cmp r13, r12
jne 0x443c40
mov rax, r10
and rax, 0xfffffffffffffc00
sub r10, rax
shr r10, 6
test r10, r10
je 0x443d5e
lea r9, [rdx + rax + 0x180]
lea r10, [r11 + r10*8]
mov rcx, r11
lea r8, [r9 - 0x180]
xor eax, eax
prefetcht0 byte [r9]
movdqu xmm1, xmmword [r8 + rax]
movdqu xmm0, xmmword [rcx + rax]
pxor xmm0, xmm1
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm0, 0x31
pmuludq xmm0, xmm2
paddq xmm0, xmm1
paddq xmm0, xmmword [rbx + rax]
movaps xmmword [rbx + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x443d1d
add rcx, 8
add r9, 0x40
cmp r10, rcx
jne 0x443d10
lea rcx, [r11 + 0x79]
xor eax, eax
add rdx, rdi
movdqu xmm1, xmmword [rdx + rax - 0x40]
movdqu xmm0, xmmword [rcx + rax]
pxor xmm0, xmm1
pshufd xmm1, xmm1, 0x4e
pshufd xmm2, xmm0, 0x31
pmuludq xmm0, xmm2
paddq xmm0, xmm1
paddq xmm0, xmmword [rbx + rax]
movaps xmmword [rbx + rax], xmm0
add rax, 0x10
cmp rax, 0x40
jne 0x443d67
movabs r8, 0x9e3779b185ebca87
lea rdx, [r11 + 0xb]
mov rcx, rbx
imul r8, rdi
call fcn.00442e70
movabs r8, 0xc2b2ae3d27d4eb4f
lea rdx, [r11 + 0x75]
mov rbp, rax
imul r8, rdi
not r8
call fcn.00442e70
mov qword [rsi], rbp
mov qword [rsi + 8], rax
jmp 0x443b46