Function at 0x1400d9770
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 + 0x38], 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 r10d, ebp
sub r10d, ecx
mov r11d, ebp
sub r11d, r8d
cmp r10d, r8d
cmovbe r11d, ecx
mov r14, qword [rax + 0x70]
mov r15, qword [rax + 0x38]
cmp dword [rax + 0x28], 0
mov edi, 1
cmovne r11d, ecx
mov dword [rsp + 0x48], r11d
mov r8d, dword [rax + 0x10c]
cmp r8d, 6
mov ecx, 6
cmovb ecx, r8d
shl edi, cl
mov r8d, dword [rax + 0x34]
mov r10, qword [rax + 0x60]
cmp dword [rax + 0x12c], 0
mov qword [rsp + 0x30], rdx
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x58], r9
je 0x1400d9837
imul r12d, dword [rdx], 0x9e3779b1
xor r12d, r10d
mov cl, 0x18
sub cl, r8b
shr r12d, cl
mov dword [rax + 0x2c], ebp
jmp 0x1400d9af5
mov r12d, dword [rax + 0x2c]
mov ecx, ebp
sub ecx, r12d
cmp ecx, 0x181
mov dword [rsp + 0x2c], r8d
mov qword [rsp + 0x50], r10
mov r13, r15
mov rbx, r14
jb 0x1400d99c6
cmp r12d, 0xffffff9f
ja 0x1400d9920
mov rdx, rbp
lea r10, [r12 + 0x60]
mov ecx, 0x18
sub ecx, dword [rsp + 0x2c]
nop word [rax + rax]
imul r8d, dword [rsi + r12 + 8], 0x9e3779b1
xor r8d, dword [rax + 0x60]
shr r8d, cl
mov r11d, r8d
shr r11d, 2
and r11d, 0xffffffc0
prefetcht0 byte [r14 + r11*4]
prefetcht0 byte [r14 + r11*4 + 0x40]
prefetcht0 byte [r15 + r11]
prefetcht0 byte [r15 + r11 + 0x20]
mov r11d, r12d
and r11d, 7
mov r13d, dword [rax + r11*4 + 0x40]
mov dword [rax + r11*4 + 0x40], r8d
mov r8, r13
shr r8, 2
and r8d, 0x3fffffc0
lea r11, [r14 + r8*4]
movzx ebp, byte [r15 + r8]
dec bpl
and bpl, 0x3f
mov ebx, 0
mov esi, 0x3f
cmove ebx, esi
lea rsi, [r15 + r8]
movzx ebp, bpl
add rbp, rbx
mov byte [r15 + r8], bpl
mov byte [rsi + rbp], r13b
mov rsi, qword [rsp + 0x40]
mov dword [r11 + rbp*4], r12d
inc r12
cmp r10, r12
jne 0x1400d9880
mov r13, qword [rax + 0x38]
mov rbx, qword [rax + 0x70]
mov rbp, rdx
lea r12d, [rbp - 0x20]
mov rcx, qword [rsp + 0x30]
inc rcx
lea r8, [rsi + r12]
mov r10d, ecx
sub r10d, r8d
inc r10d
cmp r10d, 8
mov r11d, 8
cmovb r11d, r10d
xor r10d, r10d
cmp r8, rcx
cmovbe r10d, r11d
lea r8d, [r10 + rbp]
add r8d, 0xffffffe0
cmp r8d, r12d
jbe 0x1400d99c6
mov rdx, rbp
mov r10d, dword [rax + 0x60]
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r11d, r8d
mov rbp, r12
nop word cs:[rax + rax]
imul r8d, dword [rsi + rbp], 0x9e3779b1
xor r8d, r10d
shr r8d, cl
mov esi, r8d
shr esi, 2
and esi, 0xffffffc0
prefetcht0 byte [rbx + rsi*4]
prefetcht0 byte [rbx + rsi*4 + 0x40]
prefetcht0 byte [r13 + rsi]
prefetcht0 byte [r13 + rsi + 0x20]
mov esi, ebp
and esi, 7
mov dword [rax + rsi*4 + 0x40], r8d
mov rsi, qword [rsp + 0x40]
inc rbp
cmp r11, rbp
jne 0x1400d9980
mov rbp, rdx
cmp r12d, ebp
jae 0x1400d9aa5
mov qword [rsp + 0x60], r15
mov qword [rsp + 0x68], r14
mov ecx, 0x18
sub ecx, dword [rax + 0x34]
mov r8, rbp
mov rbp, qword [rax + 8]
mov r12d, r12d
mov rdx, 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 esi, r8d
shr esi, 2
and esi, 0xffffffc0
prefetcht0 byte [rbx + rsi*4]
prefetcht0 byte [rbx + rsi*4 + 0x40]
prefetcht0 byte [r13 + rsi]
prefetcht0 byte [r13 + rsi + 0x20]
mov esi, r12d
and esi, 7
mov r15d, dword [rax + rsi*4 + 0x40]
mov dword [rax + rsi*4 + 0x40], r8d
mov r8, r15
shr r8, 2
and r8d, 0x3fffffc0
lea rsi, [rbx + r8*4]
movzx r11d, byte [r13 + r8]
dec r11b
and r11b, 0x3f
mov r10d, 0
mov r14d, 0x3f
cmove r10d, r14d
lea r14, [r8 + r13]
movzx r11d, r11b
add r11, r10
mov byte [r13 + r8], r11b
mov byte [r14 + r11], r15b
mov dword [rsi + r11*4], r12d
inc r12
cmp r9, r12
jne 0x1400d9a00
mov rsi, qword [rsp + 0x40]
mov rbp, rdx
mov r14, qword [rsp + 0x68]
mov r15, qword [rsp + 0x60]
jmp 0x1400d9aa8
mov r9d, ebp
mov edx, dword [rsp + 0x2c]
mov rcx, qword [rsp + 0x50]
mov dword [rax + 0x2c], ebp
imul r8d, dword [rsi + r9 + 8], 0x9e3779b1
xor r8d, ecx
mov cl, 0x18
sub cl, dl
shr r8d, cl
mov ecx, r8d
shr ecx, 2
and ecx, 0xffffffc0
prefetcht0 byte [r14 + rcx*4]
prefetcht0 byte [r14 + rcx*4 + 0x40]
prefetcht0 byte [r15 + rcx]
prefetcht0 byte [r15 + rcx + 0x20]
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 r11d, r12d
shr r11d, 2
and r11d, 0xffffffc0
lea r13, [r15 + r11]
movzx ecx, byte [r15 + r11]
movd xmm0, r12d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [r15 + r11]
movdqu xmm2, xmmword [r15 + r11 + 0x10]
movdqu xmm3, xmmword [r15 + r11 + 0x20]
movdqu xmm4, xmmword [r15 + r11 + 0x30]
pcmpeqb xmm1, xmm0
pmovmskb r9d, xmm1
pcmpeqb xmm2, xmm0
pmovmskb edx, xmm2
pcmpeqb xmm3, xmm0
pmovmskb r8d, xmm3
pcmpeqb xmm4, xmm0
pmovmskb r10d, xmm4
lea r14, [r14 + r11*4]
shl r10, 0x30
shl r8, 0x20
or r8, r10
shl rdx, 0x10
or rdx, r8
xor r15d, r15d
or r9, rdx
je 0x1400d9bc7
ror r9, cl
xor ebx, ebx
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x38]
nop dword [rax + rax]
tzcnt r8, r9
add r8d, ecx
and r8d, 0x3f
je 0x1400d9bb8
mov r8d, dword [r14 + r8*4]
cmp r8d, dword [rsp + 0x48]
jb 0x1400d9bd3
prefetcht0 byte [rsi + r8]
mov dword [rsp + rbx*4 + 0x70], r8d
inc rbx
dec edi
lea rdx, [r9 - 1]
and r9, rdx
je 0x1400d9bd3
test edi, edi
jne 0x1400d9b90
jmp 0x1400d9bd3
xor ebx, ebx
mov r10, qword [rsp + 0x58]
mov r11, qword [rsp + 0x38]
dec ecx
and ecx, 0x3f
mov edx, 0x3f
cmove r15d, edx
add r15, rcx
mov byte [r13], r15b
mov byte [r13 + r15], r12b
mov ecx, dword [rax + 0x2c]
lea edx, [rcx + 1]
mov dword [rax + 0x2c], edx
mov dword [r14 + r15*4], ecx
test rbx, rbx
je 0x1400d9d56
lea rax, [r11 - 7]
lea rcx, [r11 - 3]
lea rdi, [r11 - 1]
lea r8d, [rbp + 3]
mov r9, qword [rsp + 0x30]
lea r14, [r9 + 8]
lea rdx, [rsi + 8]
mov qword [rsp + 0x48], rdx
mov r13d, 3
xor r12d, r12d
jmp 0x1400d9c3f
inc r12
mov rsi, r13
cmp r12, rbx
je 0x1400d9d5b
mov ebp, dword [rsp + r12*4 + 0x70]
mov rdx, qword [rsp + 0x40]
lea r15, [rdx + rbp]
mov edx, dword [r13 + r15 - 3]
cmp edx, dword [r9 + r13 - 3]
jne 0x1400d9c30
cmp rax, r9
jbe 0x1400d9c80
mov r9, qword [r9]
xor r9, qword [r15]
je 0x1400d9c99
tzcnt rsi, r9
shr rsi, 3
mov r9, qword [rsp + 0x30]
jmp 0x1400d9d33
mov rsi, r9
cmp rsi, rcx
jae 0x1400d9d00
mov edx, dword [r15]
cmp edx, dword [rsi]
jne 0x1400d9d00
add rsi, 4
add r15, 4
jmp 0x1400d9d00
mov rdx, qword [rsp + 0x48]
lea r15, [rdx + rbp]
xor r9d, r9d
nop word cs:[rax + rax]
lea rsi, [r14 + r9]
cmp rsi, rax
jae 0x1400d9ce1
mov rsi, qword [rsi]
lea r11, [r9 + 8]
xor rsi, qword [r15 + r9]
mov r9, r11
je 0x1400d9cb0
tzcnt rsi, rsi
shr rsi, 3
add rsi, r11
mov r11, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
jmp 0x1400d9d33
add r15, r9
mov r11, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
cmp rsi, rcx
jb 0x1400d9c88
nop word cs:[rax + rax]
cmp rsi, rdi
jae 0x1400d9d16
movzx edx, word [r15]
cmp dx, word [rsi]
jne 0x1400d9d16
add rsi, 2
add r15, 2
cmp rsi, r11
jae 0x1400d9d30
movzx edx, byte [r15]
xor r9d, r9d
cmp dl, byte [rsi]
sete r9b
add rsi, r9
mov r9, qword [rsp + 0x30]
sub rsi, r9
cmp rsi, r13
jbe 0x1400d9c30
mov edx, r8d
sub edx, ebp
mov qword [r10], rdx
lea rdx, [r9 + rsi]
mov r13, rsi
cmp rdx, r11
jne 0x1400d9c30
jmp 0x1400d9d5b
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