Function at 0x1400d2960
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x308
lea rbp, [rsp + 0x80]
mov rsi, r8
mov r8, rdx
mov qword [rbp + 0x270], rcx
movabs rax, 0x3fffffffffffffff
add rax, rdx
mov rcx, rax
or rcx, rdx
shr rcx, 0x20
je 0x1400d29a8
xor edx, edx
div r8
jmp 0x1400d29ad
xor edx, edx
div r8d
mov qword [rbp + 0x240], rax
cmp r8, 0x1001
mov qword [rbp + 0x260], r8
mov rax, r8
jae 0x1400d29e3
shr rax, 1
sub r8, rax
cmp r8, 0x40
mov eax, 0x40
cmovb rax, r8
mov qword [rbp + 0x268], rax
jmp 0x1400d2a0b
or rax, 1
bsr rcx, rax
xor ecx, 0xffffffc0
add ecx, 0x41
shr ecx, 1
mov eax, 1
shl rax, cl
shr r8, cl
add r8, rax
shr r8, 1
mov qword [rbp + 0x268], r8
mov rax, qword [rbp + 0x270]
lea rcx, [rax + 0x20]
mov qword [rbp + 0x248], rcx
lea rcx, [rax + 0x10]
mov qword [rbp + 0x228], rcx
add rax, 0xfffffffffffffff0
mov qword [rbp + 0x238], rax
mov r15d, 1
xor r13d, r13d
xor r10d, r10d
mov qword [rbp + 0x278], r9
mov qword [rbp + 0x280], rsi
nop dword [rax]
mov r11, qword [rbp + 0x260]
sub r11, r13
jbe 0x1400d2ad0
mov rdx, r13
shl rdx, 4
mov rax, qword [rbp + 0x270]
lea rcx, [rax + rdx]
cmp r11, qword [rbp + 0x268]
jae 0x1400d2af0
cmp byte [rbp + 0x2f0], 0
je 0x1400d2b04
mov rbx, r11
cmp r11, 0x20
mov eax, 0x20
cmovae rbx, rax
mov qword [rsp + 0x28], 0
mov dword [rsp + 0x20], 0
mov rdx, rbx
mov r8, rsi
mov rdi, r10
call fcn.1400d30b0
mov r10, rdi
mov r9, qword [rbp + 0x278]
mov eax, ebx
lea rcx, [rax*2 + 1]
jmp 0x1400d2c68
xor ecx, ecx
mov eax, 1
mov qword [rbp + 0x230], rax
cmp r10, 2
jae 0x1400d2cc0
jmp 0x1400d2f96
cmp r11, 2
mov r9, r11
jae 0x1400d2b1d
mov r14, r10
mov r11, r9
jmp 0x1400d2c56
mov rax, qword [rbp + 0x268]
mov rcx, r11
cmp rax, r11
cmovb rcx, rax
add rcx, rcx
jmp 0x1400d2c68
mov r8, qword [rcx]
mov rdi, qword [rcx + 0x10]
mov r14, r10
cmp rdi, r8
jae 0x1400d2b72
cmp r9, 2
jne 0x1400d2bb9
lea r8, [rcx + 0x10]
mov r9d, 1
mov eax, 2
xor r10d, r10d
mov rdx, r10
not rdx
add rdx, r9
shl r10, 4
shl rdx, 4
movups xmm0, xmmword [rcx + r10]
movups xmm1, xmmword [r8 + rdx]
movups xmmword [rcx + r10], xmm1
movups xmmword [r8 + rdx], xmm0
jmp 0x1400d2c53
mov r11d, 2
cmp r9, 2
je 0x1400d2c56
mov rax, qword [rbp + 0x248]
lea r10, [rax + rdx]
mov eax, 2
mov r11, rdi
nop word cs:[rax + rax]
mov rsi, r11
mov r11, qword [r10]
cmp r11, rsi
jb 0x1400d2bef
inc rax
add r10, 0x10
cmp r9, rax
jne 0x1400d2ba0
jmp 0x1400d2be7
mov rax, qword [rbp + 0x248]
lea r10, [rax + rdx]
mov eax, 2
mov r11, rdi
nop dword [rax]
mov rsi, r11
mov r11, qword [r10]
cmp r11, rsi
jae 0x1400d2bef
inc rax
add r10, 0x10
cmp r9, rax
jne 0x1400d2bd0
mov r11, r9
mov rax, r9
jmp 0x1400d2bf2
mov r11, r9
cmp rax, qword [rbp + 0x268]
mov r9, qword [rbp + 0x278]
mov rsi, qword [rbp + 0x280]
mov r10, r14
jb 0x1400d2a77
mov r14, r10
cmp rdi, r8
jae 0x1400d2c53
mov r11d, 1
cmp rax, 2
jb 0x1400d2c56
mov r9, rax
shr r9, 1
mov r8, rax
shl r8, 4
add r8, rcx
mov r10, r9
shl r10, 4
sub r8, r10
cmp r9, 1
jne 0x1400d2fc8
mov r9d, 1
jmp 0x1400d2b45
mov r11, rax
lea rcx, [r11*2 + 1]
mov r9, qword [rbp + 0x278]
mov r10, r14
mov rax, r15
shr rax, 1
mov qword [rbp + 0x230], rcx
shr rcx, 1
lea rdx, [r13*2]
sub rdx, rax
lea rax, [rcx + r13*2]
mov rcx, qword [rbp + 0x240]
imul rdx, rcx
imul rax, rcx
xor rax, rdx
je 0x1400d2cae
bsr rcx, rax
xor rcx, 0x3f
cmp r10, 2
jae 0x1400d2cc0
jmp 0x1400d2f96
mov ecx, 0x40
cmp r10, 2
jb 0x1400d2f96
nop dword [rax]
mov rdx, r13
shl rdx, 4
mov rax, qword [rbp + 0x270]
add rax, rdx
mov qword [rbp + 0x220], rax
add rdx, qword [rbp + 0x238]
mov qword [rbp + 0x218], rdx
mov qword [rbp + 0x258], rcx
mov qword [rbp + 0x210], r13
jmp 0x1400d2d3f
mov r13, rbx
mov rdx, r10
sub r15, rdx
mov rcx, r13
mov r8, r15
call sub.msvcrt.dll_memcpy
mov r9, qword [rbp + 0x278]
mov r10, qword [rbp + 0x250]
mov rcx, qword [rbp + 0x258]
lea r15, [r12*2 + 1]
mov rsi, qword [rbp + 0x280]
mov r13, qword [rbp + 0x210]
cmp r10, 1
jbe 0x1400d2f90
cmp byte [rbp + r10 + 0x1cd], cl
jb 0x1400d2f96
dec r10
mov rbx, qword [rbp + r10*8 - 0x48]
mov rdi, rbx
shr rdi, 1
mov r14, r15
shr r14, 1
lea r12, [rdi + r14]
cmp r12, r9
ja 0x1400d2d90
mov eax, ebx
or eax, r15d
and eax, 1
jne 0x1400d2d90
add r12, r12
mov r15, r12
cmp r10, 1
ja 0x1400d2d3f
jmp 0x1400d2f90
sub r13, r12
shl r13, 4
add r13, qword [rbp + 0x270]
test bl, 1
mov qword [rbp + 0x250], r10
jne 0x1400d2e00
mov rax, rdi
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rcx, r13
mov rdx, rdi
mov r8, rsi
call fcn.1400d30b0
mov rcx, qword [rbp + 0x258]
mov r10, qword [rbp + 0x250]
mov r9, qword [rbp + 0x278]
test r15b, 1
je 0x1400d2e06
cmp r15, 2
jae 0x1400d2e5a
jmp 0x1400d2d1f
test r15b, 1
jne 0x1400d2df3
mov rcx, rdi
shl rcx, 4
add rcx, r13
mov rax, r14
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rdx, r14
mov r8, rsi
call fcn.1400d30b0
mov rcx, qword [rbp + 0x258]
mov r10, qword [rbp + 0x250]
mov r9, qword [rbp + 0x278]
cmp r15, 2
jb 0x1400d2d1f
cmp rbx, 2
jb 0x1400d2d1f
cmp rdi, r14
mov rsi, r14
cmovb rsi, rdi
cmp rsi, r9
ja 0x1400d2d1f
mov rbx, rdi
shl rbx, 4
add rbx, r13
cmp r14, rdi
mov rdx, r13
cmovb rdx, rbx
mov r15, rsi
shl r15, 4
mov rcx, qword [rbp + 0x280]
mov r8, r15
call sub.msvcrt.dll_memcpy
add r15, qword [rbp + 0x280]
cmp r14, rdi
jae 0x1400d2f15
mov rax, qword [rbp + 0x218]
mov r10, qword [rbp + 0x280]
nop dword [rax + rax]
lea rcx, [rbx - 0x10]
mov rdx, qword [r15 - 0x10]
xor r8d, r8d
xor r9d, r9d
cmp rdx, qword [rbx - 0x10]
lea rdx, [r15 - 0x10]
setb r8b
cmovb rdx, rcx
setae r9b
movups xmm0, xmmword [rdx]
movups xmmword [rax], xmm0
shl r9d, 4
add rbx, r9
add rbx, 0xfffffffffffffff0
shl r8d, 4
add r15, r8
add r15, 0xfffffffffffffff0
cmp rbx, r13
je 0x1400d2cf6
add rax, 0xfffffffffffffff0
cmp r15, r10
jne 0x1400d2ec0
jmp 0x1400d2cf6
test rsi, rsi
je 0x1400d2f78
mov rdx, qword [rbp + 0x280]
mov r10, qword [rbp + 0x220]
nop dword [rax + rax]
mov r8, rdx
mov rcx, qword [rbx]
xor eax, eax
xor edx, edx
cmp rcx, qword [r8]
setb cl
setae dl
mov r9, r8
cmovb r9, rbx
movups xmm0, xmmword [r9]
movups xmmword [r13], xmm0
shl edx, 4
add rdx, r8
add r13, 0x10
cmp rdx, r15
je 0x1400d2cfc
mov al, cl
shl eax, 4
add rbx, rax
cmp rbx, r10
jne 0x1400d2f30
jmp 0x1400d2cfc
mov rdx, qword [rbp + 0x280]
jmp 0x1400d2cfc
mov r10d, 1
mov qword [rbp + r10*8 - 0x48], r15
mov byte [rbp + r10 + 0x1ce], cl
cmp qword [rbp + 0x260], r13
jbe 0x1400d3053
inc r10
mov r15, qword [rbp + 0x230]
mov rax, r15
shr rax, 1
add r13, rax
jmp 0x1400d2a50
mov r11, r9
and r11, 0xfffffffffffffffe
add rdx, qword [rbp + 0x228]
lea rdi, [rax + r13]
shl rdi, 4
add rdi, qword [rbp + 0x238]
xor r10d, r10d
movabs rbx, 0xffffffffffffffe
nop word cs:[rax + rax]
movups xmm0, xmmword [rdx - 0x10]
movups xmm1, xmmword [rdi]
movups xmmword [rdx - 0x10], xmm1
movups xmmword [rdi], xmm0
mov rsi, r10
xor rsi, rbx
add rsi, r9
shl rsi, 4
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [r8 + rsi]
movups xmmword [rdx], xmm1
movups xmmword [r8 + rsi], xmm0
add r10, 2
add rdx, 0x20
add rdi, 0xffffffffffffffe0
cmp r11, r10
jne 0x1400d3000
mov r11, rax
test al, 2
mov rsi, qword [rbp + 0x280]
je 0x1400d2c56
jmp 0x1400d2b48
test r15b, 1
jne 0x1400d308f
mov rdx, qword [rbp + 0x260]
mov rax, rdx
or rax, 1
bsr rax, rax
xor eax, 0x3f
add eax, eax
xor eax, 0x7e
mov dword [rsp + 0x20], eax
mov qword [rsp + 0x28], 0
mov rcx, qword [rbp + 0x270]
mov r8, rsi
call fcn.1400d30b0
nop
add rsp, 0x308
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret