Function at 0x1400d90d0
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x178
mov qword [rsp + 0x48], r9
mov r11, r8
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x170], rcx
mov rsi, qword [rax + 8]
mov rbp, rdx
sub rbp, rsi
movzx ecx, byte [rax + 0x100]
mov r8d, 1
shl r8d, cl
mov ecx, dword [rax + 0x1c]
mov r9d, ebp
sub r9d, ecx
mov r14d, ebp
sub r14d, r8d
cmp r9d, r8d
cmovbe r14d, ecx
mov r15, qword [rax + 0x70]
mov r10, qword [rax + 0x38]
cmp dword [rax + 0x28], 0
mov edi, 1
cmovne r14d, ecx
mov r8d, dword [rax + 0x10c]
cmp r8d, 5
mov ecx, 5
cmovb ecx, r8d
shl edi, cl
mov r8d, dword [rax + 0x34]
mov r9, qword [rax + 0x60]
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x60], rsi
mov dword [rsp + 0x54], r14d
je 0x1400d9195
imul r12d, dword [rdx], 0x9e3779b1
xor r12d, r9d
mov cl, 0x18
sub cl, r8b
shr r12d, cl
mov dword [rax + 0x2c], ebp
jmp 0x1400d9515
mov r11d, dword [rax + 0x2c]
mov ecx, ebp
sub ecx, r11d
cmp ecx, 0x181
mov qword [rsp + 0x28], r10
mov dword [rsp + 0x34], r8d
mov qword [rsp + 0x58], r9
mov r13, r10
mov rbx, r15
jb 0x1400d938d
cmp r11d, 0xffffff9f
ja 0x1400d9286
mov r14, rbp
lea r9, [r11 + 0x60]
mov ecx, 0x18
sub ecx, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x28]
nop
imul r8d, dword [rsi + r11 + 8], 0x9e3779b1
xor r8d, dword [rax + 0x60]
shr r8d, cl
mov r12d, r8d
shr r12d, 3
and r12d, 0xffffffe0
prefetcht0 byte [r15 + r12*4]
prefetcht0 byte [r15 + r12*4 + 0x40]
prefetcht0 byte [rbx + r12]
mov r12d, r11d
and r12d, 7
mov r13d, dword [rax + r12*4 + 0x40]
mov dword [rax + r12*4 + 0x40], r8d
mov r8, r13
shr r8, 3
and r8d, 0x1fffffe0
lea r12, [r15 + r8*4]
movzx ebp, byte [rbx + r8]
dec bpl
and bpl, 0x1f
mov ebx, 0
mov r10d, 0x1f
cmove ebx, r10d
mov r10, r15
mov r15, qword [rsp + 0x28]
add r15, r8
movzx ebp, bpl
add rbp, rbx
mov rbx, qword [rsp + 0x28]
mov byte [rbx + r8], bpl
mov byte [r15 + rbp], r13b
mov r15, r10
mov dword [r12 + rbp*4], r11d
inc r11
cmp r9, r11
jne 0x1400d91e0
mov r13, qword [rax + 0x38]
mov rbx, qword [rax + 0x70]
mov rbp, r14
lea r11d, [rbp - 0x20]
lea rcx, [rdx + 1]
lea r8, [rsi + r11]
mov r9d, ecx
sub r9d, r8d
inc r9d
cmp r9d, 8
mov r10, rbp
mov ebp, 8
cmovb ebp, r9d
xor r9d, r9d
cmp r8, rcx
cmovbe r9d, ebp
lea r12d, [r9 + r10]
add r12d, 0xffffffe0
cmp r12d, r11d
jbe 0x1400d938a
mov ebp, dword [rax + 0x60]
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r14d, r12d
sub r12d, r11d
mov r8, r11
not r8
test r12b, 1
jne 0x1400d9466
mov r12, r11
add r8, r14
je 0x1400d94b5
mov qword [rsp + 0x40], r15
nop dword [rax + rax]
imul r8d, dword [rsi + r12], 0x9e3779b1
xor r8d, ebp
shr r8d, cl
mov r15d, r8d
shr r15d, 3
and r15d, 0xffffffe0
prefetcht0 byte [rbx + r15*4]
prefetcht0 byte [rbx + r15*4 + 0x40]
prefetcht0 byte [r13 + r15]
mov r15d, r12d
and r15d, 7
mov dword [rax + r15*4 + 0x40], r8d
imul r8d, dword [rsi + r12 + 1], 0x9e3779b1
xor r8d, ebp
shr r8d, cl
lea r15d, [r12 + 1]
mov r9d, r8d
shr r9d, 3
and r9d, 0xffffffe0
prefetcht0 byte [rbx + r9*4]
prefetcht0 byte [rbx + r9*4 + 0x40]
prefetcht0 byte [r13 + r9]
and r15d, 7
mov dword [rax + r15*4 + 0x40], r8d
add r12, 2
cmp r14, r12
jne 0x1400d9300
mov rbp, r10
mov r15, qword [rsp + 0x40]
cmp r11d, ebp
jb 0x1400d9396
jmp 0x1400d94c1
mov rbp, r10
cmp r11d, ebp
jae 0x1400d94c1
mov qword [rsp + 0x40], r15
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r8, rbp
mov rbp, qword [rax + 8]
mov r12d, r11d
mov qword [rsp + 0x68], r8
mov r9d, r8d
nop word cs:[rax + rax]
imul r8d, dword [rbp + r12 + 8], 0x9e3779b1
xor r8d, dword [rax + 0x60]
shr r8d, cl
mov r15d, r8d
shr r15d, 3
and r15d, 0xffffffe0
prefetcht0 byte [rbx + r15*4]
prefetcht0 byte [rbx + r15*4 + 0x40]
prefetcht0 byte [r13 + r15]
mov r15d, r12d
and r15d, 7
mov esi, dword [rax + r15*4 + 0x40]
mov dword [rax + r15*4 + 0x40], r8d
mov r8, rsi
shr r8, 3
and r8d, 0x1fffffe0
lea r15, [rbx + r8*4]
movzx r11d, byte [r13 + r8]
dec r11b
and r11b, 0x1f
mov r14d, 0
mov r10d, 0x1f
cmove r14d, r10d
lea r10, [r8 + r13]
movzx r11d, r11b
add r11, r14
mov byte [r13 + r8], r11b
mov byte [r10 + r11], sil
mov dword [r15 + r11*4], r12d
inc r12
cmp r9, r12
jne 0x1400d93c0
mov r11, qword [rsp + 0x38]
mov rsi, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov r15, qword [rsp + 0x40]
jmp 0x1400d94c9
mov r12, r8
imul r8d, dword [rsi + r11], 0x9e3779b1
xor r8d, ebp
shr r8d, cl
mov r9, r15
mov r15d, r8d
shr r15d, 3
and r15d, 0xffffffe0
prefetcht0 byte [rbx + r15*4]
prefetcht0 byte [rbx + r15*4 + 0x40]
prefetcht0 byte [r13 + r15]
mov r15d, r11d
and r15d, 7
mov dword [rax + r15*4 + 0x40], r8d
mov r8, r12
mov r15, r9
lea r12, [r11 + 1]
add r8, r14
jne 0x1400d92f3
mov rbp, r10
cmp r11d, ebp
jb 0x1400d9396
mov r9d, ebp
mov r11, qword [rsp + 0x38]
mov r10, qword [rsp + 0x28]
mov ebx, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x58]
mov dword [rax + 0x2c], ebp
imul r8d, dword [rsi + r9 + 8], 0x9e3779b1
xor r8d, ecx
mov cl, 0x18
sub cl, bl
shr r8d, cl
mov ecx, r8d
shr ecx, 3
and ecx, 0xffffffe0
prefetcht0 byte [r15 + rcx*4]
prefetcht0 byte [r15 + rcx*4 + 0x40]
prefetcht0 byte [r10 + rcx]
mov ecx, ebp
and ecx, 7
mov r12d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r8d
add dword [rax + 0x68], r12d
mov r8d, r12d
shr r8d, 3
and r8d, 0xffffffe0
lea r13, [r10 + r8]
movzx ecx, byte [r10 + r8]
movd xmm0, r12d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r10 + r8]
movdqu xmm2, xmmword [r10 + r8 + 0x10]
pcmpeqb xmm1, xmm0
pmovmskb r10d, xmm1
pcmpeqb xmm2, xmm0
pmovmskb r9d, xmm2
lea r14, [r15 + r8*4]
shl r9d, 0x10
xor r15d, r15d
or r9d, r10d
je 0x1400d95b5
ror r9d, cl
xor ebx, ebx
mov r10d, dword [rsp + 0x54]
nop dword [rax]
tzcnt r8, r9
add r8d, ecx
and r8d, 0x1f
je 0x1400d95a6
mov r8d, dword [r14 + r8*4]
cmp r8d, r10d
jb 0x1400d95b7
prefetcht0 byte [rsi + r8]
mov dword [rsp + rbx*4 + 0x70], r8d
inc rbx
dec edi
lea r8, [r9 - 1]
and r9, r8
je 0x1400d95b7
test edi, edi
jne 0x1400d9580
jmp 0x1400d95b7
xor ebx, ebx
dec ecx
and ecx, 0x1f
mov r8d, 0x1f
cmove r15d, r8d
add r15, rcx
mov byte [r13], r15b
mov byte [r13 + r15], r12b
mov ecx, dword [rax + 0x2c]
lea r8d, [rcx + 1]
mov dword [rax + 0x2c], r8d
mov dword [r14 + r15*4], ecx
test rbx, rbx
je 0x1400d9744
lea rax, [r11 - 7]
lea rcx, [r11 - 3]
lea rdi, [r11 - 1]
lea r8d, [rbp + 3]
lea r14, [rdx + 8]
lea r9, [rsi + 8]
mov qword [rsp + 0x28], r9
mov r13d, 3
xor r12d, r12d
mov r15, qword [rsp + 0x48]
jmp 0x1400d962f
inc r12
mov rsi, r13
cmp r12, rbx
je 0x1400d9749
mov ebp, dword [rsp + r12*4 + 0x70]
mov r9, qword [rsp + 0x60]
add r9, rbp
mov r10d, dword [r13 + r9 - 3]
cmp r10d, dword [rdx + r13 - 3]
jne 0x1400d9620
cmp rax, rdx
jbe 0x1400d9670
mov r11, qword [rdx]
xor r11, qword [r9]
je 0x1400d968a
tzcnt rsi, r11
shr rsi, 3
mov r11, qword [rsp + 0x38]
jmp 0x1400d9720
mov rsi, rdx
cmp rsi, rcx
jae 0x1400d96f0
mov r10d, dword [r9]
cmp r10d, dword [rsi]
jne 0x1400d96f0
add rsi, 4
add r9, 4
jmp 0x1400d96f0
mov r9, qword [rsp + 0x28]
add r9, rbp
xor r15d, r15d
nop word cs:[rax + rax]
lea rsi, [r14 + r15]
cmp rsi, rax
jae 0x1400d96d1
mov rsi, qword [rsi]
lea r11, [r15 + 8]
xor rsi, qword [r9 + r15]
mov r15, r11
je 0x1400d96a0
tzcnt rsi, rsi
shr rsi, 3
add rsi, r11
mov r15, qword [rsp + 0x48]
mov r11, qword [rsp + 0x38]
jmp 0x1400d9720
add r9, r15
mov r15, qword [rsp + 0x48]
mov r11, qword [rsp + 0x38]
cmp rsi, rcx
jb 0x1400d9678
nop word cs:[rax + rax]
cmp rsi, rdi
jae 0x1400d9707
movzx r10d, word [r9]
cmp r10w, word [rsi]
jne 0x1400d9707
add rsi, 2
add r9, 2
cmp rsi, r11
jae 0x1400d971d
movzx r9d, byte [r9]
xor r10d, r10d
cmp r9b, byte [rsi]
sete r10b
add rsi, r10
sub rsi, rdx
cmp rsi, r13
jbe 0x1400d9620
mov r9d, r8d
sub r9d, ebp
mov qword [r15], r9
lea r9, [rdx + rsi]
mov r13, rsi
cmp r9, r11
jne 0x1400d9620
jmp 0x1400d9749
mov esi, 3
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.14011fde0
mov rax, rsi
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret