Function at 0x1400d9d90
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 + 0x68], r9
mov qword [rsp + 0x50], r8
mov rax, rcx
mov rcx, qword [0x14018e218]
xor rcx, rsp
mov qword [rsp + 0x170], rcx
mov rsi, qword [rax + 8]
mov r10, rdx
sub r10, rsi
movzx ecx, byte [rax + 0x100]
mov r8d, 1
shl r8d, cl
mov ecx, dword [rax + 0x1c]
mov r9d, r10d
sub r9d, ecx
mov ebp, r10d
sub ebp, r8d
cmp r9d, r8d
cmovbe ebp, ecx
mov r12, qword [rax + 0x70]
mov rbx, qword [rax + 0x38]
cmp dword [rax + 0x28], 0
mov edi, 1
cmovne ebp, ecx
mov r9d, dword [rax + 0x10c]
cmp r9d, 4
mov ecx, 4
cmovb ecx, r9d
shl edi, cl
mov r8d, dword [rax + 0x34]
mov r9, qword [rax + 0x60]
cmp dword [rax + 0x12c], 0
je 0x1400d9e4e
movabs r14, 0xcf1bbcdcbb000000
imul r14, qword [rdx]
xor r14, r9
mov cl, 0x38
sub cl, r8b
shr r14, cl
mov dword [rax + 0x2c], r10d
jmp 0x1400da1dd
mov qword [rsp + 0x30], rbx
movabs r15, 0xcf1bbcdcbb000000
mov r13d, dword [rax + 0x2c]
mov ecx, r10d
sub ecx, r13d
cmp ecx, 0x181
mov dword [rsp + 0x2c], ebp
mov dword [rsp + 0x28], r8d
mov qword [rsp + 0x48], r9
jb 0x1400d9fc8
mov r14, qword [rsp + 0x30]
mov rbx, r12
cmp r13d, 0xffffff9f
ja 0x1400d9f63
mov qword [rsp + 0x38], r10
lea r9, [r13 + 0x60]
mov ecx, 0x38
sub ecx, dword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
nop word [rax + rax]
mov rbx, qword [rsi + r13 + 8]
movabs r8, 0xcf1bbcdcbb000000
imul rbx, r8
xor rbx, qword [rax + 0x60]
shr rbx, cl
mov r14, rbx
shr r14, 4
and r14d, 0xffffff0
prefetcht0 byte [r12 + r14*4]
prefetcht0 byte [r15 + r14]
mov r14d, r13d
and r14d, 7
mov r10, rsi
mov ebp, dword [rax + r14*4 + 0x40]
mov dword [rax + r14*4 + 0x40], ebx
mov rbx, rbp
shr rbx, 4
and ebx, 0xffffff0
lea r14, [r12 + rbx*4]
movzx r11d, byte [r15 + rbx]
dec r11b
and r11b, 0xf
mov r8d, 0
mov esi, 0xf
cmove r8d, esi
lea rsi, [r15 + rbx]
movzx r11d, r11b
add r11, r8
mov byte [r15 + rbx], r11b
mov byte [rsi + r11], bpl
mov rsi, r10
mov dword [r14 + r11*4], r13d
inc r13
cmp r9, r13
jne 0x1400d9eb0
mov r14, qword [rax + 0x38]
mov rbx, qword [rax + 0x70]
mov r10, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x2c]
movabs r15, 0xcf1bbcdcbb000000
lea r13d, [r10 - 0x20]
lea rcx, [rdx + 1]
lea r8, [rsi + r13]
mov r9d, ecx
sub r9d, r8d
inc r9d
cmp r9d, 8
mov r11d, 8
cmovb r11d, r9d
xor r9d, r9d
cmp r8, rcx
cmovbe r9d, r11d
add r9d, r10d
add r9d, 0xffffffe0
cmp r9d, r13d
jbe 0x1400da0ab
mov qword [rsp + 0x40], r12
mov r11, qword [rax + 0x60]
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r12d, r9d
sub r9d, r13d
mov rbp, r13
not rbp
test r9b, 1
jne 0x1400d9fe6
mov r9, r13
jmp 0x1400da01c
mov r14, qword [rsp + 0x30]
mov rbx, r12
cmp r13d, r10d
jb 0x1400da0be
mov r11d, r10d
mov rbx, qword [rsp + 0x30]
jmp 0x1400da1a2
mov r8, qword [rsi + r13]
imul r8, r15
xor r8, r11
shr r8, cl
mov r9, r8
shr r9, 4
and r9d, 0xffffff0
prefetcht0 byte [rbx + r9*4]
prefetcht0 byte [r14 + r9]
mov r9d, r13d
and r9d, 7
mov dword [rax + r9*4 + 0x40], r8d
lea r9, [r13 + 1]
add rbp, r12
je 0x1400da0a2
mov qword [rsp + 0x38], r10
mov r10, rsi
nop dword [rax]
mov r8, qword [r10 + r9]
imul r8, r15
xor r8, r11
shr r8, cl
mov rsi, r8
shr rsi, 4
and esi, 0xffffff0
prefetcht0 byte [rbx + rsi*4]
prefetcht0 byte [r14 + rsi]
mov esi, r9d
and esi, 7
mov dword [rax + rsi*4 + 0x40], r8d
lea r8d, [r9 + 1]
mov rsi, qword [r10 + r9 + 1]
imul rsi, r15
xor rsi, r11
shr rsi, cl
mov rbp, rsi
shr rbp, 4
and ebp, 0xffffff0
prefetcht0 byte [rbx + rbp*4]
prefetcht0 byte [r14 + rbp]
and r8d, 7
mov dword [rax + r8*4 + 0x40], esi
add r9, 2
cmp r12, r9
jne 0x1400da030
mov rsi, r10
mov r10, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x2c]
mov r12, qword [rsp + 0x40]
mov r8d, dword [rsp + 0x28]
mov r9, qword [rsp + 0x48]
cmp r13d, r10d
jae 0x1400d9fd9
mov dword [rsp + 0x5c], edi
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x60], rsi
mov ecx, 0x38
sub ecx, dword [rax + 0x34]
mov r9, qword [rax + 8]
mov r13d, r13d
mov qword [rsp + 0x38], r10
mov r11d, r10d
nop word cs:[rax + rax]
mov r8, qword [r9 + r13 + 8]
imul r8, r15
xor r8, qword [rax + 0x60]
shr r8, cl
mov rsi, r8
shr rsi, 4
and esi, 0xffffff0
prefetcht0 byte [rbx + rsi*4]
prefetcht0 byte [r14 + rsi]
mov esi, r13d
and esi, 7
mov ebp, dword [rax + rsi*4 + 0x40]
mov dword [rax + rsi*4 + 0x40], r8d
mov r8, rbp
shr r8, 4
and r8d, 0xffffff0
lea rsi, [rbx + r8*4]
movzx r12d, byte [r14 + r8]
dec r12b
and r12b, 0xf
mov rdi, r15
mov r15d, 0
mov r10d, 0xf
cmove r15d, r10d
lea r10, [r14 + r8]
movzx r12d, r12b
add r12, r15
mov r15, rdi
mov byte [r14 + r8], r12b
mov byte [r10 + r12], bpl
mov dword [rsi + r12*4], r13d
inc r13
cmp r11, r13
jne 0x1400da0f0
mov rsi, qword [rsp + 0x60]
mov r10, qword [rsp + 0x38]
mov ebp, dword [rsp + 0x2c]
mov r12, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x30]
mov edi, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x28]
mov r9, qword [rsp + 0x48]
mov dword [rax + 0x2c], r10d
imul r15, qword [rsi + r11 + 8]
xor r15, r9
mov cl, 0x38
sub cl, r8b
shr r15, cl
mov rcx, r15
shr rcx, 4
and ecx, 0xffffff0
prefetcht0 byte [r12 + rcx*4]
prefetcht0 byte [rbx + rcx]
mov ecx, r10d
and ecx, 7
mov r14d, dword [rax + rcx*4 + 0x40]
mov dword [rax + rcx*4 + 0x40], r15d
add dword [rax + 0x68], r14d
mov r8d, r14d
shr r8d, 4
and r8d, 0xfffffff0
lea r15, [rbx + r8]
movzx ecx, byte [rbx + r8]
movd xmm0, r14d
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm0, xmm0, 0
movdqu xmm1, xmmword [rbx + r8]
pcmpeqb xmm1, xmm0
pmovmskb r9d, xmm1
lea r11, [r12 + r8*4]
xor r12d, r12d
test r9d, r9d
je 0x1400da265
ror r9w, cl
movzx r8d, r9w
xor ebx, ebx
nop dword [rax]
tzcnt r9, r8
add r9d, ecx
and r9d, 0xf
je 0x1400da256
mov r9d, dword [r11 + r9*4]
cmp r9d, ebp
jb 0x1400da267
prefetcht0 byte [rsi + r9]
mov dword [rsp + rbx*4 + 0x70], r9d
inc rbx
dec edi
lea r9, [r8 - 1]
and r8, r9
je 0x1400da267
test edi, edi
jne 0x1400da230
jmp 0x1400da267
xor ebx, ebx
dec ecx
and ecx, 0xf
mov r8d, 0xf
cmove r12d, r8d
add r12, rcx
mov byte [r15], r12b
mov byte [r15 + r12], r14b
mov ecx, dword [rax + 0x2c]
lea r8d, [rcx + 1]
mov dword [rax + 0x2c], r8d
mov dword [r11 + r12*4], ecx
test rbx, rbx
je 0x1400da3d9
mov r15, qword [rsp + 0x50]
lea rax, [r15 - 7]
lea rcx, [r15 - 3]
lea rdi, [r15 - 1]
lea r11d, [r10 + 3]
lea r14, [rdx + 8]
mov r10, rsi
lea r8, [rsi + 8]
mov qword [rsp + 0x30], r8
mov r13d, 3
xor r12d, r12d
jmp 0x1400da2df
inc r12
mov rsi, r13
cmp r12, rbx
je 0x1400da3de
mov ebp, dword [rsp + r12*4 + 0x70]
lea r9, [r10 + rbp]
mov r8d, dword [r13 + r9 - 3]
cmp r8d, dword [rdx + r13 - 3]
jne 0x1400da2d0
cmp rax, rdx
jbe 0x1400da310
mov r8, qword [rdx]
xor r8, qword [r9]
je 0x1400da32a
tzcnt rsi, r8
shr rsi, 3
jmp 0x1400da3b0
mov rsi, rdx
cmp rsi, rcx
jae 0x1400da380
mov r8d, dword [r9]
cmp r8d, dword [rsi]
jne 0x1400da380
add rsi, 4
add r9, 4
jmp 0x1400da380
mov r8, qword [rsp + 0x30]
lea r9, [r8 + rbp]
xor r8d, r8d
nop word cs:[rax + rax]
lea rsi, [r14 + r8]
cmp rsi, rax
jae 0x1400da36c
mov rsi, qword [rsi]
lea r15, [r8 + 8]
xor rsi, qword [r9 + r8]
mov r8, r15
je 0x1400da340
tzcnt rsi, rsi
shr rsi, 3
add rsi, r15
mov r15, qword [rsp + 0x50]
jmp 0x1400da3b0
add r9, r8
mov r15, qword [rsp + 0x50]
cmp rsi, rcx
jb 0x1400da318
nop dword [rax]
cmp rsi, rdi
jae 0x1400da397
movzx r8d, word [r9]
cmp r8w, word [rsi]
jne 0x1400da397
add rsi, 2
add r9, 2
cmp rsi, r15
jae 0x1400da3ad
movzx r8d, byte [r9]
xor r9d, r9d
cmp r8b, byte [rsi]
sete r9b
add rsi, r9
sub rsi, rdx
cmp rsi, r13
jbe 0x1400da2d0
mov r8d, r11d
sub r8d, ebp
mov r9, qword [rsp + 0x68]
mov qword [r9], r8
lea r8, [rdx + rsi]
mov r13, rsi
cmp r8, r15
jne 0x1400da2d0
jmp 0x1400da3de
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