Function at 0x140216b90
Capabilities:
Encode data using xor

Disassembly:
mov qword [rsp + 0x20], r9
mov qword [rsp + 0x18], r8
mov qword [rsp + 0x10], rdx
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push r12
push r14
push r15
sub rsp, 0x158
mov rdx, qword [rcx + 0x18]
mov rbx, rcx
xor r11d, r11d
mov r15, r8
mov r8d, dword [r8 + 0xc]
mov ecx, r11d
mov rax, rdx
mov r10d, 1
shr rax, 0x20
mov r14, r9
mov r12d, dword [r15 + 4]
cmp eax, edx
mov r9, qword [rsp + 0x1b0]
setb cl
mov dword [rsp + 0xa4], ecx
mov ecx, dword [r15 + 8]
sub r12d, ecx
shl r10d, cl
mov dword [rsp + 0xa0], r10d
cmp eax, edx
mov r10d, dword [rbx + 0x18]
mov rdx, qword [rbx + 8]
mov dword [rsp + 0xa8], r10d
mov qword [rsp + 0x30], rdx
mov dword [rsp + 0x58], r12d
jae 0x140216c43
mov eax, dword [rbx + 0x1c]
mov r11, qword [rbx + 0x10]
mov qword [rsp + 0x70], rax
lea rcx, [r11 + rax]
mov qword [rsp + 0x68], rcx
lea rcx, [r10 + r11]
mov qword [rsp + 0xb0], rcx
jmp 0x140216c55
mov dword [rsp + 0x70], r10d
mov qword [rsp + 0x68], r11
mov qword [rsp + 0xb0], r11
mov rax, r10
mov qword [rsp + 0xc8], r11
add rax, rdx
mov qword [rsp + 0x48], r8
mov qword [rsp + 0xb8], rax
lea rdx, [r14 + r9]
mov qword [rsp + 0xc0], rdx
lea rbp, [rdx - 8]
mov qword [rsp + 0x100], rbp
lea rsi, [rbx + 0x40]
mov qword [rsp + 0xf8], rsi
cmp r9, r8
jae 0x140216cad
mov rax, r9
add rsp, 0x158
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
ret
mov ecx, dword [r15 + 0x10]
mov eax, 0x40
cmp r8d, eax
mov qword [rsp + 0x150], rdi
mov r9d, 0xffffffff
cmovb eax, r8d
test ecx, ecx
je 0x140216ce8
cmp ecx, eax
ja 0x140216ce8
sub eax, ecx
mov edi, 1
shl rdi, cl
movzx ecx, al
dec rdi
shl rdi, cl
jmp 0x140216cf3
mov edi, 1
shl rdi, cl
dec rdi
lea r11, [r8 + r14]
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0x148], r13
mov qword [rsp + 0x98], r11
cmp r11, rbp
jae 0x140217744
movabs rax, 0xc2b2ae3d27d4eb4f
lea r15, str.ww__
mov qword [rsp + 0x60], rax
movabs rax, 0x27d4eb2f165667c5
mov qword [rsp + 0xf0], rax
xor r10d, r10d
mov qword [rsp + 0x40], r9
xor r8d, r8d
mov dword [rsp + 0x1b0], r10d
mov rdx, rbp
mov qword [rsp + 0x28], r8
sub rdx, r11
cmp rdx, 3
jbe 0x140216e59
mov ecx, 3
nop dword [rax]
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [r15 + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x40], r9
test r9, rdi
jne 0x140216da8
mov qword [rsi + r10*8], r8
inc r10d
mov dword [rsp + 0x1b0], r10d
cmp r10d, 0x40
je 0x140216e99
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [r15 + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x40], r9
test r9, rdi
jne 0x140216de0
mov qword [rsi + r10*8], r8
inc r10d
mov dword [rsp + 0x1b0], r10d
cmp r10d, 0x40
je 0x140216e99
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [r15 + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x40], r9
test r9, rdi
jne 0x140216e18
mov qword [rsi + r10*8], r8
inc r10d
mov dword [rsp + 0x1b0], r10d
cmp r10d, 0x40
je 0x140216e99
movzx eax, byte [r8 + r11]
add rcx, 4
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [r15 + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x40], r9
test r9, rdi
jne 0x140216e50
mov qword [rsi + r10*8], r8
inc r10d
mov dword [rsp + 0x1b0], r10d
cmp r10d, 0x40
je 0x140216e99
cmp rcx, rdx
jb 0x140216d70
cmp r8, rdx
jae 0x140216e99
nop
movzx eax, byte [r8 + r11]
inc r8
mov rax, qword [r15 + rax*8]
lea r9, [rax + r9*2]
test r9, rdi
jne 0x140216e82
mov qword [rsi + r10*8], r8
inc r10d
cmp r10d, 0x40
je 0x140216e87
cmp r8, rdx
jb 0x140216e60
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x28], r8
mov dword [rsp + 0x1b0], r10d
xor ebp, ebp
test r10d, r10d
je 0x14021770e
mov r14, qword [rsp + 0x48]
mov ecx, r12d
mov r13, r14
mov r12d, 1
and r13d, 0x1f
shl r12d, cl
mov r15, rsi
dec r12d
lea rsi, [rbx + 0x24c]
nop dword [rax]
mov rdi, qword [r15]
sub rdi, r14
add rdi, r11
mov r8, rdi
cmp r14, 0x20
jb 0x14021703a
lea rcx, [rdi - 0x1f]
movabs rbx, 0x60ea27eeadc0b5d6
add rcx, r14
movabs r9, 0xc2b2ae3d27d4eb4f
xor r10d, r10d
movabs rdx, 0x9e3779b185ebca87
movabs r11, 0x61c8864e7a143579
nop dword [rax + rax]
mov rax, qword [r8]
imul rax, qword [rsp + 0x60]
add rbx, rax
mov rax, qword [r8 + 8]
imul rax, qword [rsp + 0x60]
rol rbx, 0x1f
add r9, rax
mov rax, qword [r8 + 0x10]
imul rax, qword [rsp + 0x60]
imul rbx, rdx
add r10, rax
rol r9, 0x1f
mov rax, qword [r8 + 0x18]
add r8, 0x20
imul rax, qword [rsp + 0x60]
imul r9, rdx
add r11, rax
rol r10, 0x1f
rol r11, 0x1f
imul r11, rdx
imul r10, rdx
cmp r8, rcx
jb 0x140216f20
mov rcx, rbx
movabs rax, 0xc2b2ae3d27d4eb4f
imul rcx, rax
mov rax, r10
rol rbx, 1
rol rax, 0xc
rol rcx, 0x1f
imul rcx, rdx
mov rdx, r11
rol rdx, 0x12
add rdx, rax
mov rax, r9
rol rax, 7
add rdx, rax
movabs rax, 0x9e3779b185ebca87
add rdx, rbx
movabs rbx, 0x7a1435883d4d519d
xor rdx, rcx
movabs rcx, 0xc2b2ae3d27d4eb4f
imul rdx, rax
imul r10, rcx
imul r9, rcx
imul r11, rcx
sub rdx, rbx
rol r10, 0x1f
imul r10, rax
rol r9, 0x1f
rol r11, 0x1f
imul r9, rax
imul r11, rax
xor rdx, r9
imul rdx, rax
sub rdx, rbx
xor rdx, r10
mov r10d, dword [rsp + 0x1b0]
imul rdx, rax
sub rdx, rbx
xor rdx, r11
mov r11, qword [rsp + 0x98]
imul rdx, rax
sub rdx, rbx
mov rbx, qword [rsp + 0x190]
jmp 0x140217044
movabs rdx, 0x27d4eb2f165667c5
add rdx, r14
mov r9, r13
cmp r13, 8
jb 0x1402170ab
mov rcx, r13
movabs rbx, 0x7a1435883d4d519d
shr rcx, 3
movabs r10, 0x9e3779b185ebca87
imul rax, rcx, 0xfffffffffffffff8
add r9, rax
mov rax, qword [r8]
add r8, 8
imul rax, qword [rsp + 0x60]
rol rax, 0x1f
imul rax, r10
xor rdx, rax
rol rdx, 0x1b
imul rdx, r10
sub rdx, rbx
sub rcx, 1
jne 0x140217072
mov r10d, dword [rsp + 0x1b0]
mov rbx, qword [rsp + 0x190]
cmp r9, 4
jb 0x1402170ee
mov ecx, dword [r8]
movabs rax, 0x9e3779b185ebca87
imul rcx, rax
movabs rax, 0x165667b19e3779f9
add r8, 4
xor rdx, rcx
movabs rcx, 0xc2b2ae3d27d4eb4f
rol rdx, 0x17
imul rdx, rcx
add rdx, rax
sub r9, 4
jmp 0x1402170f8
movabs rcx, 0xc2b2ae3d27d4eb4f
test r9, r9
je 0x14021712e
movabs r14, 0x9e3779b185ebca87
movzx eax, byte [r8]
lea r8, [r8 + 1]
imul rax, qword [rsp + 0xf0]
xor rdx, rax
rol rdx, 0xb
imul rdx, r14
sub r9, 1
jne 0x140217107
mov r14, qword [rsp + 0x48]
mov rax, rdx
mov qword [rsi - 0xc], rdi
shr rax, 0x21
xor rax, rdx
imul rax, rcx
mov rcx, rax
shr rcx, 0x1d
xor rcx, rax
movabs rax, 0x165667b19e3779f9
imul rcx, rax
mov rax, rcx
shr rax, 0x20
mov rdx, rax
mov dword [rsi], eax
mov rax, qword [rsp + 0x1a0]
xor rdx, rcx
and edx, r12d
mov dword [rsi - 4], edx
mov ecx, dword [rax + 8]
mov rax, qword [rbx + 0x28]
shl rdx, cl
lea rcx, [rax + rdx*8]
mov qword [rsi + 4], rcx
prefetcht0 byte [rcx]
inc ebp
add r15, 8
add rsi, 0x18
cmp ebp, r10d
jb 0x140216ed0
mov r8, qword [rsp + 0x30]
lea rcx, [rbx + 0x248]
mov rax, qword [rsp + 0x70]
lea r10, [rbx + 0x38]
mov r14, qword [rsp + 0x1a8]
lea r11, [rbx + 0x28]
mov r12d, dword [rsp + 0x1b0]
mov ebp, r8d
mov rdi, qword [rsp + 0x48]
mov dword [rsp + 0x38], r8d
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x54], 0
nop dword [rax]
mov rsi, qword [rcx - 8]
xor eax, eax
mov edx, dword [rcx + 4]
xor ebx, ebx
mov r9d, dword [rcx]
xor r13d, r13d
mov r15, qword [rcx + 8]
xor ecx, ecx
mov qword [rsp + 0xd0], rax
mov eax, esi
sub eax, ebp
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], r13
mov dword [rsp + 0x20], edx
mov dword [rsp + 0x50], r9d
mov qword [rsp + 0x78], rcx
mov dword [rsp + 0x90], eax
mov dword [rsp + 0x94], edx
cmp rsi, r14
jae 0x140217278
mov r15, qword [rsp + 0x1a0]
mov edx, r9d
mov r9, qword [r10]
mov rbx, qword [rsp + 0x190]
add r9, rdx
mov ecx, dword [r15 + 8]
movups xmm2, xmmword [r15]
shl rdx, cl
lea r10, [rbx + 0x38]
mov rcx, qword [r11]
lea r11, [rbx + 0x28]
jmp 0x14021767e
mov eax, dword [rsp + 0xa0]
lea rbp, [r15 + rax*8]
mov qword [rsp + 0xd8], rbp
cmp r15, rbp
jae 0x140217655
mov r12, qword [rsp + 0x68]
nop dword [rax]
cmp dword [r15 + 4], edx
jne 0x14021754a
mov eax, dword [r15]
cmp eax, dword [rsp + 0x70]
jbe 0x14021754a
cmp dword [rsp + 0xa4], 0
mov r13, qword [rsp + 0xc0]
je 0x1402173fc
cmp eax, dword [rsp + 0xa8]
mov rdi, r8
mov rbp, qword [rsp + 0xb8]
mov r11, r13
cmovb rdi, qword [rsp + 0xc8]
mov r8, r13
add rdi, rax
cmp eax, dword [rsp + 0xa8]
mov rdx, rdi
cmovb r11, qword [rsp + 0xb0]
cmovb rbp, r12
mov rcx, r11
sub rcx, rdi
add rcx, rsi
cmp rcx, r13
cmovb r8, rcx
mov rcx, rsi
call fcn.1401d8350
mov rbx, rax
lea rcx, [rax + rdi]
cmp rcx, r11
jne 0x140217343
mov rdx, qword [rsp + 0xb8]
lea rcx, [rax + rsi]
mov r8, r13
call fcn.1401d8350
add rbx, rax
cmp rbx, qword [rsp + 0x48]
jb 0x14021751f
xor edx, edx
cmp rsi, r14
jbe 0x140217384
mov r8, rsi
lea rcx, [rdi - 1]
sub r8, rdi
nop
lea rax, [rcx + 1]
cmp rax, rbp
jbe 0x140217384
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x140217384
dec rcx
inc rdx
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x140217360
sub rdi, rdx
cmp rdi, rbp
jne 0x1402173ea
mov r10, qword [rsp + 0x68]
cmp rbp, r10
je 0x1402173e7
mov rax, rsi
xor r9d, r9d
sub rax, rdx
cmp rax, r14
jbe 0x1402173e4
mov rax, qword [rsp + 0xb0]
mov r8, rsi
sub r8, rdx
sub r8, rax
lea rcx, [rax - 1]
nop dword [rax]
lea rax, [rcx + 1]
cmp rax, r10
jbe 0x1402173e4
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x1402173e4
dec rcx
inc r9
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x1402173c0
add rdx, r9
mov r12, r10
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xd8]
jmp 0x1402174d4
lea r9, [rax + r8]
mov rax, rsi
lea r8, [r13 - 7]
mov rdx, r9
cmp rsi, r8
jae 0x140217449
mov rax, qword [rsi]
xor rax, qword [r9]
je 0x140217421
bsf rbx, rax
shr rbx, 3
jmp 0x14021748e
lea rax, [rsi + 8]
lea rdx, [r9 + 8]
cmp rax, r8
jae 0x140217449
nop
mov rcx, qword [rax]
xor rcx, qword [rdx]
jne 0x14021750c
add rax, 8
add rdx, 8
cmp rax, r8
jb 0x140217430
lea rcx, [r13 - 3]
cmp rax, rcx
jae 0x140217460
mov ecx, dword [rax]
cmp dword [rdx], ecx
jne 0x140217460
add rax, 4
add rdx, 4
lea rcx, [r13 - 1]
cmp rax, rcx
jae 0x140217479
movzx ecx, word [rax]
cmp word [rdx], cx
jne 0x140217479
add rax, 2
add rdx, 2
cmp rax, r13
jae 0x140217488
movzx ecx, byte [rax]
cmp byte [rdx], cl
jne 0x140217488
inc rax
mov rbx, rax
sub rbx, rsi
cmp rbx, rdi
jb 0x14021752c
xor edx, edx
cmp rsi, r14
jbe 0x1402174d4
mov r8, rsi
lea rcx, [r9 - 1]
sub r8, r9
mov r9, qword [rsp + 0xb8]
lea rax, [rcx + 1]
cmp rax, r9
jbe 0x1402174d4
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x1402174d4
dec rcx
inc rdx
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x1402174b0
mov r8, qword [rsp + 0x30]
lea rax, [rdx + rbx]
cmp rax, qword [rsp + 0xd0]
jbe 0x140217531
mov rcx, r15
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0x78], rcx
mov r13, rdx
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x88], rdx
jmp 0x140217546
bsf rbx, rcx
shr rbx, 3
sub rbx, rsi
add rbx, rax
jmp 0x14021748e
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xd8]
mov r8, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
mov rbx, qword [rsp + 0x80]
mov r13, qword [rsp + 0x88]
mov edx, dword [rsp + 0x20]
add r15, 8
cmp r15, rbp
jb 0x1402172a0
mov r12d, dword [rsp + 0x1b0]
test rcx, rcx
jne 0x14021757e
mov rbx, qword [rsp + 0x190]
mov r9d, dword [rsp + 0x50]
lea r10, [rbx + 0x38]
lea r11, [rbx + 0x28]
jmp 0x14021765d
mov r10, qword [rsp + 0x198]
mov r8d, esi
sub r8d, dword [rcx]
sub r8d, dword [rsp + 0x38]
mov rdx, qword [r10 + 0x18]
mov rax, qword [r10]
lea rcx, [rdx + rdx*2]
lea r9, [rax + rcx*4]
cmp rdx, qword [r10 + 0x20]
je 0x140217733
mov r11, qword [rsp + 0x190]
mov eax, esi
mov edx, dword [rsp + 0x50]
sub eax, r13d
mov rbp, qword [rsp + 0x1a0]
sub eax, r14d
mov dword [r9 + 4], eax
lea r14, [rsi + rbx]
mov dword [r9], r8d
lea eax, [rbx + r13]
mov rbx, qword [rsp + 0x190]
mov dword [r9 + 8], eax
inc qword [r10 + 0x18]
lea r10, [r11 + 0x38]
mov ecx, dword [rbp + 8]
add r11, 0x28
mov r9, qword [r10]
movups xmm2, xmmword [rbp]
mov rax, qword [rsp + 0x90]
add r9, rdx
shl rdx, cl
mov rcx, qword [r11]
psrldq xmm2, 8
movzx r8d, byte [r9]
add rdx, r8
mov qword [rsp + 0x1a8], r14
inc r8b
mov qword [rcx + rdx*8], rax
mov eax, 1
movd ecx, xmm2
shl al, cl
dec al
and al, r8b
mov r8, qword [rsp + 0x28]
mov byte [r9], al
mov rax, qword [rsp + 0x98]
add rax, r8
cmp r14, rax
ja 0x1402176e1
mov ebp, dword [rsp + 0x38]
jmp 0x1402176b1
mov rbx, qword [rsp + 0x190]
mov rcx, qword [rsp + 0x1a0]
mov ebp, dword [rsp + 0x38]
mov edx, r9d
mov r9, qword [r10]
movups xmm2, xmmword [rcx]
mov ecx, dword [rcx + 8]
add r9, rdx
shl rdx, cl
mov rcx, qword [r11]
movzx r8d, byte [r9]
mov rax, qword [rsp + 0x90]
add rdx, r8
inc r8b
psrldq xmm2, 8
mov qword [rcx + rdx*8], rax
mov eax, 1
movd ecx, xmm2
shl al, cl
dec al
and al, r8b
mov r8, qword [rsp + 0x28]
mov byte [r9], al
mov r9d, dword [rsp + 0x54]
mov rcx, qword [rsp + 0xe0]
inc r9d
add rcx, 0x18
mov dword [rsp + 0x54], r9d
mov qword [rsp + 0xe0], rcx
cmp r9d, r12d
jae 0x1402176f1
mov r8, qword [rsp + 0x30]
jmp 0x1402171f0
mov rsi, qword [rsp + 0xf8]
mov r11, r14
sub r11, r8
jmp 0x1402176fd
mov r11, qword [rsp + 0x98]
lea rsi, [rbx + 0x40]
mov r12d, dword [rsp + 0x58]
lea r15, str.ww__
mov r9, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x100]
add r11, r8
mov qword [rsp + 0x98], r11
cmp r11, rbp
jae 0x14021773c
mov rdi, qword [rsp + 0xe8]
jmp 0x140216d40
mov rax, 0xffffffffffffffba
jmp 0x14021774a
mov rdx, qword [rsp + 0xc0]
sub rdx, r14
mov rax, rdx
mov r13, qword [rsp + 0x148]
mov rdi, qword [rsp + 0x150]
add rsp, 0x158
pop r15
pop r14
pop r12
pop rsi
pop rbp
pop rbx
ret