Function at 0x29e85ae534d
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 8], rdi
mov qword [rsp + 0x10], rsi
mov rax, rsp
mov rdi, rcx
mov rsi, rdx
mov rdx, r8
mov rcx, r9
mov r8, qword [rsp + 0x28]
mov r9, qword [rsp + 0x30]
test r9d, 3
jne 0x29e85ae53a0
cmp r9d, 8
jb 0x29e85ae53a0
cmp rdx, rsi
jne 0x29e85ae5633
test r9d, 7
je 0x29e85ae5ba3
jmp 0x29e85ae5633
push rbx
push rbp
push r12
push r13
push r14
push r15
mov r9d, r9d
lea r10, [r9 + 2]
mov r11, rsp
neg r10
lea rsp, [rsp + r10*8]
and rsp, 0xfffffffffffffc00
mov qword [rsp + r9*8 + 8], r11
mov r12, rdx
mov r8, qword [r8]
mov rbx, qword [r12]
mov rax, qword [rsi]
xor r14, r14
xor r15, r15
mov rbp, r8
mul rbx
mov r10, rax
mov rax, qword [rcx]
imul rbp, r10
mov r11, rdx
mul rbp
add r10, rax
mov rax, qword [rsi + 8]
adc rdx, 0
mov r13, rdx
lea r15, [r15 + 1]
jmp 0x29e85ae542d
add r13, rax
mov rax, qword [rsi + r15*8]
adc rdx, 0
add r13, r11
mov r11, r10
adc rdx, 0
mov qword [rsp + r15*8 - 0x10], r13
mov r13, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + r15*8]
adc rdx, 0
lea r15, [r15 + 1]
mov r10, rdx
mul rbp
cmp r15, r9
jne 0x29e85ae5410
add r13, rax
mov rax, qword [rsi]
adc rdx, 0
add r13, r11
adc rdx, 0
mov qword [rsp + r15*8 - 0x10], r13
mov r13, rdx
mov r11, r10
xor rdx, rdx
add r13, r11
adc rdx, 0
mov qword [rsp + r9*8 - 8], r13
mov qword [rsp + r9*8], rdx
lea r14, [r14 + 1]
jmp 0x29e85ae5490
mov rbx, qword [r12 + r14*8]
xor r15, r15
mov rbp, r8
mov r10, qword [rsp]
mul rbx
add r10, rax
mov rax, qword [rcx]
adc rdx, 0
imul rbp, r10
mov r11, rdx
mul rbp
add r10, rax
mov rax, qword [rsi + 8]
adc rdx, 0
mov r10, qword [rsp + 8]
mov r13, rdx
lea r15, [r15 + 1]
jmp 0x29e85ae54fe
add r13, rax
mov rax, qword [rsi + r15*8]
adc rdx, 0
add r13, r10
mov r10, qword [rsp + r15*8]
adc rdx, 0
mov qword [rsp + r15*8 - 0x10], r13
mov r13, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + r15*8]
adc rdx, 0
add r10, r11
mov r11, rdx
adc r11, 0
lea r15, [r15 + 1]
mul rbp
cmp r15, r9
jne 0x29e85ae54e0
add r13, rax
mov rax, qword [rsi]
adc rdx, 0
add r13, r10
mov r10, qword [rsp + r15*8]
adc rdx, 0
mov qword [rsp + r15*8 - 0x10], r13
mov r13, rdx
xor rdx, rdx
add r13, r11
adc rdx, 0
add r13, r10
adc rdx, 0
mov qword [rsp + r9*8 - 8], r13
mov qword [rsp + r9*8], rdx
lea r14, [r14 + 1]
cmp r14, r9
jb 0x29e85ae5490
xor r14, r14
mov rax, qword [rsp]
lea rsi, [rsp]
mov r15, r9
jmp 0x29e85ae5580
sbb rax, qword [rcx + r14*8]
mov qword [rdi + r14*8], rax
mov rax, qword [rsi + r14*8 + 8]
lea r14, [r14 + 1]
dec r15
jne 0x29e85ae5580
sbb rax, 0
xor r14, r14
mov r15, r9
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov rsi, qword [rsp + r14*8]
mov rcx, qword [rdi + r14*8]
xor rsi, rcx
and rsi, rax
xor rsi, rcx
mov qword [rsp + r14*8], r14
mov qword [rdi + r14*8], rsi
lea r14, [r14 + 1]
sub r15, 1
jne 0x29e85ae55b0
mov rsi, qword [rsp + r9*8 + 8]
mov eax, 1
mov r15, qword [rsi]
mov r14, qword [rsi + 8]
mov r13, qword [rsi + 0x10]
mov r12, qword [rsi + 0x18]
mov rbp, qword [rsi + 0x20]
mov rbx, qword [rsi + 0x28]
lea rsp, [rsi + 0x30]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
push rbx
push rbp
push r12
push r13
push r14
push r15
mov r9d, r9d
lea r10, [r9 + 4]
mov r11, rsp
neg r10
lea rsp, [rsp + r10*8]
and rsp, 0xfffffffffffffc00
mov qword [rsp + r9*8 + 8], r11
mov qword [rsp + r9*8 + 0x10], rdi
mov r12, rdx
mov r8, qword [r8]
mov rbx, qword [r12]
mov rax, qword [rsi]
xor r14, r14
xor r15, r15
mov rbp, r8
mul rbx
mov r10, rax
mov rax, qword [rcx]
imul rbp, r10
mov r11, rdx
mul rbp
add r10, rax
mov rax, qword [rsi + 8]
adc rdx, 0
mov rdi, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + 8]
adc rdx, 0
mov r10, rdx
mul rbp
add rdi, rax
mov rax, qword [rsi + 0x10]
adc rdx, 0
add rdi, r11
lea r15, [r15 + 4]
adc rdx, 0
mov qword [rsp], rdi
mov r13, rdx
jmp 0x29e85ae56d0
mul rbx
add r10, rax
mov rax, qword [rcx + r15*8 - 0x10]
adc rdx, 0
mov r11, rdx
mul rbp
add r13, rax
mov rax, qword [rsi + r15*8 - 8]
adc rdx, 0
add r13, r10
adc rdx, 0
mov qword [rsp + r15*8 - 0x18], r13
mov rdi, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + r15*8 - 8]
adc rdx, 0
mov r10, rdx
mul rbp
add rdi, rax
mov rax, qword [rsi + r15*8]
adc rdx, 0
add rdi, r11
adc rdx, 0
mov qword [rsp + r15*8 - 0x10], rdi
mov r13, rdx
mul rbx
add r10, rax
mov rax, qword [rcx + r15*8]
adc rdx, 0
mov r11, rdx
mul rbp
add r13, rax
mov rax, qword [rsi + r15*8 + 8]
adc rdx, 0
add r13, r10
adc rdx, 0
mov qword [rsp + r15*8 - 8], r13
mov rdi, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + r15*8 + 8]
adc rdx, 0
lea r15, [r15 + 4]
mov r10, rdx
mul rbp
add rdi, rax
mov rax, qword [rsi + r15*8 - 0x10]
adc rdx, 0
add rdi, r11
adc rdx, 0
mov qword [rsp + r15*8 - 0x20], rdi
mov r13, rdx
cmp r15, r9
jb 0x29e85ae56d0
mul rbx
add r10, rax
mov rax, qword [rcx + r15*8 - 0x10]
adc rdx, 0
mov r11, rdx
mul rbp
add r13, rax
mov rax, qword [rsi + r15*8 - 8]
adc rdx, 0
add r13, r10
adc rdx, 0
mov qword [rsp + r15*8 - 0x18], r13
mov rdi, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + r15*8 - 8]
adc rdx, 0
mov r10, rdx
mul rbp
add rdi, rax
mov rax, qword [rsi]
adc rdx, 0
add rdi, r11
adc rdx, 0
mov qword [rsp + r15*8 - 0x10], rdi
mov r13, rdx
xor rdi, rdi
add r13, r10
adc rdi, 0
mov qword [rsp + r15*8 - 8], r13
mov qword [rsp + r15*8], rdi
lea r14, [r14 + 1]
mov rbx, qword [r12 + r14*8]
xor r15, r15
mov r10, qword [rsp]
mov rbp, r8
mul rbx
add r10, rax
mov rax, qword [rcx]
adc rdx, 0
imul rbp, r10
mov r11, rdx
mul rbp
add r10, rax
mov rax, qword [rsi + 8]
adc rdx, 0
mov rdi, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + 8]
adc rdx, 0
add r11, qword [rsp + 8]
adc rdx, 0
mov r10, rdx
mul rbp
add rdi, rax
mov rax, qword [rsi + 0x10]
adc rdx, 0
add rdi, r11
lea r15, [r15 + 4]
adc rdx, 0
mov qword [rsp], rdi
mov r13, rdx
jmp 0x29e85ae5890
mul rbx
add r10, rax
mov rax, qword [rcx + r15*8 - 0x10]
adc rdx, 0
add r10, qword [rsp + r15*8 - 0x10]
adc rdx, 0
mov r11, rdx
mul rbp
add r13, rax
mov rax, qword [rsi + r15*8 - 8]
adc rdx, 0
add r13, r10
adc rdx, 0
mov qword [rsp + r15*8 - 0x18], r13
mov rdi, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + r15*8 - 8]
adc rdx, 0
add r11, qword [rsp + r15*8 - 8]
adc rdx, 0
mov r10, rdx
mul rbp
add rdi, rax
mov rax, qword [rsi + r15*8]
adc rdx, 0
add rdi, r11
adc rdx, 0
mov qword [rsp + r15*8 - 0x10], rdi
mov r13, rdx
mul rbx
add r10, rax
mov rax, qword [rcx + r15*8]
adc rdx, 0
add r10, qword [rsp + r15*8]
adc rdx, 0
mov r11, rdx
mul rbp
add r13, rax
mov rax, qword [rsi + r15*8 + 8]
adc rdx, 0
add r13, r10
adc rdx, 0
mov qword [rsp + r15*8 - 8], r13
mov rdi, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + r15*8 + 8]
adc rdx, 0
add r11, qword [rsp + r15*8 + 8]
adc rdx, 0
lea r15, [r15 + 4]
mov r10, rdx
mul rbp
add rdi, rax
mov rax, qword [rsi + r15*8 - 0x10]
adc rdx, 0
add rdi, r11
adc rdx, 0
mov qword [rsp + r15*8 - 0x20], rdi
mov r13, rdx
cmp r15, r9
jb 0x29e85ae5890
mul rbx
add r10, rax
mov rax, qword [rcx + r15*8 - 0x10]
adc rdx, 0
add r10, qword [rsp + r15*8 - 0x10]
adc rdx, 0
mov r11, rdx
mul rbp
add r13, rax
mov rax, qword [rsi + r15*8 - 8]
adc rdx, 0
add r13, r10
adc rdx, 0
mov qword [rsp + r15*8 - 0x18], r13
mov rdi, rdx
mul rbx
add r11, rax
mov rax, qword [rcx + r15*8 - 8]
adc rdx, 0
add r11, qword [rsp + r15*8 - 8]
adc rdx, 0
lea r14, [r14 + 1]
mov r10, rdx
mul rbp
add rdi, rax
mov rax, qword [rsi]
adc rdx, 0
add rdi, r11
adc rdx, 0
mov qword [rsp + r15*8 - 0x10], rdi
mov r13, rdx
xor rdi, rdi
add r13, r10
adc rdi, 0
add r13, qword [rsp + r9*8]
adc rdi, 0
mov qword [rsp + r15*8 - 8], r13
mov qword [rsp + r15*8], rdi
cmp r14, r9
jb 0x29e85ae5810
mov rdi, qword [rsp + r9*8 + 0x10]
mov rax, qword [rsp]
mov rdx, qword [rsp + 8]
shr r9, 2
lea rsi, [rsp]
xor r14, r14
sub rax, qword [rcx]
mov rbx, qword [rsi + 0x10]
mov rbp, qword [rsi + 0x18]
sbb rdx, qword [rcx + 8]
lea r15, [r9 - 1]
jmp 0x29e85ae5a50
mov qword [rdi + r14*8], rax
mov qword [rdi + r14*8 + 8], rdx
sbb rbx, qword [rcx + r14*8 + 0x10]
mov rax, qword [rsi + r14*8 + 0x20]
mov rdx, qword [rsi + r14*8 + 0x28]
sbb rbp, qword [rcx + r14*8 + 0x18]
mov qword [rdi + r14*8 + 0x10], rbx
mov qword [rdi + r14*8 + 0x18], rbp
sbb rax, qword [rcx + r14*8 + 0x20]
mov rbx, qword [rsi + r14*8 + 0x30]
mov rbp, qword [rsi + r14*8 + 0x38]
sbb rdx, qword [rcx + r14*8 + 0x28]
lea r14, [r14 + 4]
dec r15
jne 0x29e85ae5a50
mov qword [rdi + r14*8], rax
mov rax, qword [rsi + r14*8 + 0x20]
sbb rbx, qword [rcx + r14*8 + 0x10]
mov qword [rdi + r14*8 + 8], rdx
sbb rbp, qword [rcx + r14*8 + 0x18]
mov qword [rdi + r14*8 + 0x10], rbx
sbb rax, 0
movq xmm0, rax
punpcklqdq xmm0, xmm0
mov qword [rdi + r14*8 + 0x18], rbp
xor r14, r14
mov r15, r9
pxor xmm5, xmm5
jmp 0x29e85ae5ae0
movdqu xmm2, xmmword [rsp + r14]
movdqu xmm4, xmmword [rsp + r14 + 0x10]
movdqu xmm1, xmmword [rdi + r14]
movdqu xmm3, xmmword [rdi + r14 + 0x10]
pxor xmm2, xmm1
pxor xmm4, xmm3
pand xmm2, xmm0
pand xmm4, xmm0
pxor xmm2, xmm1
pxor xmm4, xmm3
movdqu xmmword [rdi + r14], xmm2
movdqu xmmword [rdi + r14 + 0x10], xmm4
movdqa xmmword [rsp + r14], xmm5
movdqa xmmword [rsp + r14 + 0x10], xmm5
lea r14, [r14 + 0x20]
dec r15
jne 0x29e85ae5ae0
shl r9, 2
mov rsi, qword [rsp + r9*8 + 8]
mov eax, 1
mov r15, qword [rsi]
mov r14, qword [rsi + 8]
mov r13, qword [rsi + 0x10]
mov r12, qword [rsi + 0x18]
mov rbp, qword [rsi + 0x20]
mov rbx, qword [rsi + 0x28]
lea rsp, [rsi + 0x30]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret
mov rax, rsp
push rbx
push rbp
push r12
push r13
push r14
push r15
mov r10d, r9d
shl r9d, 3
shl r10, 5
neg r9
lea r11, [rsp + r9*4 - 0x40]
mov r8, qword [r8]
sub r11, rsi
and r11, 0xfff
cmp r10, r11
jb 0x29e85ae5c00
sub rsp, r11
lea rsp, [rsp + r9*4 - 0x40]
jmp 0x29e85ae5c1d
lea r10, [r9*4 + 0xfc0]
lea rsp, [rsp + r9*4 - 0x40]
sub r11, r10
mov r10d, 0
cmovb r11, r10
sub rsp, r11
and rsp, 0xffffffffffffffc0
mov r10, r9
neg r9
lea r11, [rsp + r9*2 + 0x40]
mov qword [rsp + 0x20], r8
mov qword [rsp + 0x28], rax
mov rbp, r9
movq xmm2, r11
shr rbp, 5
mov eax, dword [0x29e85cc4590]
jmp 0x29e85ae5c60
movq xmm0, qword [rcx]
movq xmm1, qword [rcx + 8]
movq xmm3, qword [rcx + 0x10]
movq xmm4, qword [rcx + 0x18]
lea rcx, [rcx + 0x20]
movdqa xmmword [r11], xmm0
movdqa xmmword [r11 + 0x10], xmm1
movdqa xmmword [r11 + 0x20], xmm3
movdqa xmmword [r11 + 0x30], xmm4
lea r11, [r11 + 0x40]
dec rbp
jne 0x29e85ae5c60
pxor xmm0, xmm0
movq xmm1, rdi
movq xmm3, r10
call fcn.29e85ae7540
pxor xmm0, xmm0
lea rax, [rsp + 0x30]
lea rdx, [rsp + r9*2 + 0x40]
shr r9, 5
mov rsi, qword [rsp + 0x28]
jmp 0x29e85ae5ce0
movdqa xmmword [rax], xmm0
movdqa xmmword [rax + 0x10], xmm0
movdqa xmmword [rax + 0x20], xmm0
movdqa xmmword [rax + 0x30], xmm0
lea rax, [rax + 0x40]
movdqa xmmword [rdx], xmm0
movdqa xmmword [rdx + 0x10], xmm0
movdqa xmmword [rdx + 0x20], xmm0
movdqa xmmword [rdx + 0x30], xmm0
lea rdx, [rdx + 0x40]
dec r9
jne 0x29e85ae5ce0
mov eax, 1
mov r15, qword [rsi - 0x30]
mov r14, qword [rsi - 0x28]
mov r13, qword [rsi - 0x20]
mov r12, qword [rsi - 0x18]
mov rbp, qword [rsi - 0x10]
mov rbx, qword [rsi - 8]
lea rsp, [rsi]
mov rdi, qword [rsp + 8]
mov rsi, qword [rsp + 0x10]
repz ret