Function at 0x140233570
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 rdi
push r13
push r14
push r15
sub rsp, 0x148
mov rdx, qword [rcx + 0x18]
mov rbx, rcx
shr rdx, 0x20
xor r11d, r11d
mov r15, r8
mov ecx, r11d
mov r8d, dword [r8 + 0xc]
mov r10d, 1
cmp edx, dword [rbx + 0x18]
mov r14, r9
mov r9, qword [rsp + 0x1a0]
setb cl
mov dword [rsp + 0xa0], ecx
mov ecx, dword [r15 + 8]
shl r10d, cl
mov dword [rsp + 0x9c], r10d
mov r10d, dword [r15 + 4]
sub r10d, ecx
cmp edx, dword [rbx + 0x18]
mov rdx, qword [rbx + 8]
mov dword [rsp + 0x98], r10d
mov r10d, dword [rbx + 0x18]
mov dword [rsp + 0xa4], r10d
mov qword [rsp + 0x30], rdx
jae 0x140233625
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 + 0xa8], rcx
jmp 0x140233637
mov dword [rsp + 0x70], r10d
mov qword [rsp + 0x68], r11
mov qword [rsp + 0xa8], r11
lea r13, [r14 + r9]
mov qword [rsp + 0xc0], r11
mov rax, r10
mov qword [rsp + 0xe8], r13
add rax, rdx
mov qword [rsp + 0x48], r8
mov qword [rsp + 0xb0], rax
lea rdi, [rbx + 0x40]
mov qword [rsp + 0xf0], rdi
lea rbp, [r13 - 8]
cmp r9, r8
jae 0x140233687
mov rax, r9
add rsp, 0x148
pop r15
pop r14
pop r13
pop rdi
pop rbp
pop rbx
ret
mov ecx, dword [r15 + 0x10]
mov eax, 0x40
cmp r8d, eax
mov r9d, 0xffffffff
cmovb eax, r8d
test ecx, ecx
je 0x1402336bb
cmp ecx, eax
ja 0x1402336bb
sub eax, ecx
mov r10d, 1
shl r10, cl
movzx ecx, al
dec r10
shl r10, cl
jmp 0x1402336c7
mov r10d, 1
shl r10, cl
dec r10
lea r11, [r8 + r14]
mov qword [rsp + 0x140], rsi
mov qword [rsp + 0xd8], r10
mov qword [rsp + 0x138], r12
mov qword [rsp + 0x90], r11
cmp r11, rbp
jae 0x1402340e1
movabs rax, 0xc2b2ae3d27d4eb4f
lea rsi, str.ww__
mov qword [rsp + 0x60], rax
movabs rax, 0x27d4eb2f165667c5
mov qword [rsp + 0xe0], rax
nop dword [rax]
xor r12d, r12d
mov qword [rsp + 0x40], r9
xor r8d, r8d
mov dword [rsp + 0x1a0], r12d
mov rdx, rbp
mov qword [rsp + 0x28], r8
sub rdx, r11
cmp rdx, 3
jbe 0x140233839
lea ecx, [r12 + 3]
nop dword [rax]
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [rsi + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x40], r9
test r9, r10
jne 0x140233788
mov qword [rdi + r12*8], r8
inc r12d
mov dword [rsp + 0x1a0], r12d
cmp r12d, 0x40
je 0x140233879
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [rsi + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x40], r9
test r9, r10
jne 0x1402337c0
mov qword [rdi + r12*8], r8
inc r12d
mov dword [rsp + 0x1a0], r12d
cmp r12d, 0x40
je 0x140233879
movzx eax, byte [r8 + r11]
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [rsi + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x40], r9
test r9, r10
jne 0x1402337f8
mov qword [rdi + r12*8], r8
inc r12d
mov dword [rsp + 0x1a0], r12d
cmp r12d, 0x40
je 0x140233879
movzx eax, byte [r8 + r11]
add rcx, 4
inc r8
mov qword [rsp + 0x28], r8
mov rax, qword [rsi + rax*8]
lea r9, [rax + r9*2]
mov qword [rsp + 0x40], r9
test r9, r10
jne 0x140233830
mov qword [rdi + r12*8], r8
inc r12d
mov dword [rsp + 0x1a0], r12d
cmp r12d, 0x40
je 0x140233879
cmp rcx, rdx
jb 0x140233750
cmp r8, rdx
jae 0x140233879
nop
movzx eax, byte [r8 + r11]
inc r8
mov rax, qword [rsi + rax*8]
lea r9, [rax + r9*2]
test r9, r10
jne 0x140233862
mov qword [rdi + r12*8], r8
inc r12d
cmp r12d, 0x40
je 0x140233867
cmp r8, rdx
jb 0x140233840
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x28], r8
mov dword [rsp + 0x1a0], r12d
xor ebp, ebp
test r12d, r12d
je 0x1402340b7
mov r13, qword [rsp + 0x48]
lea rsi, [rbx + 0x24c]
mov r14, qword [rsp + 0x190]
mov r15, rdi
nop dword [rax + rax]
mov rdi, qword [r15]
sub rdi, r13
add rdi, r11
mov r8, rdi
cmp r13, 0x20
jb 0x140233a05
lea rcx, [r13 - 0x1f]
movabs rbx, 0x60ea27eeadc0b5d6
add rcx, rdi
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 0x1402338f0
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 r10, rax
imul rdx, rax
sub rdx, rbx
xor rdx, r11
mov r11, qword [rsp + 0x90]
imul rdx, rax
sub rdx, rbx
mov rbx, qword [rsp + 0x180]
jmp 0x140233a19
movabs rdx, 0x27d4eb2f165667c5
movabs r10, 0x9e3779b185ebca87
mov r9, r13
add rdx, r13
and r9d, 0x1f
cmp r9, 8
jb 0x140233a72
mov ecx, r9d
movabs r12, 0x7a1435883d4d519d
shr rcx, 3
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, r12
sub rcx, 1
jne 0x140233a41
mov r12d, dword [rsp + 0x1a0]
cmp r9, 4
jb 0x140233aab
mov ecx, dword [r8]
movabs rax, 0x165667b19e3779f9
imul rcx, r10
add r8, 4
xor rdx, rcx
movabs rcx, 0xc2b2ae3d27d4eb4f
rol rdx, 0x17
imul rdx, rcx
add rdx, rax
sub r9, 4
jmp 0x140233ab5
movabs rcx, 0xc2b2ae3d27d4eb4f
test r9, r9
je 0x140233ae2
nop word [rax + rax]
movzx eax, byte [r8]
lea r8, [r8 + 1]
imul rax, qword [rsp + 0xe0]
xor rdx, rax
rol rdx, 0xb
imul rdx, r10
sub r9, 1
jne 0x140233ac0
mov rax, rdx
mov qword [rsi - 0xc], rdi
shr rax, 0x21
lea r10, [rbx + 0x28]
xor rax, rdx
mov r8d, 1
imul rax, rcx
mov rcx, rax
shr rcx, 0x1d
xor rcx, rax
movabs rax, 0x165667b19e3779f9
imul rcx, rax
mov rdx, rcx
shr rdx, 0x20
mov dword [rsi], edx
mov rax, rdx
xor rax, rcx
mov ecx, dword [rsp + 0x98]
shl r8d, cl
dec r8d
and r8d, eax
mov dword [rsi - 4], r8d
mov ecx, dword [r14 + 8]
mov rax, qword [r10]
mov edx, r8d
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, r12d
jb 0x1402338a0
mov r8, qword [rsp + 0x30]
lea rcx, [rbx + 0x248]
mov rax, qword [rsp + 0x70]
lea r11, [rbx + 0x38]
mov r14, qword [rsp + 0x198]
mov ebp, r8d
mov r13, qword [rsp + 0xe8]
mov rdi, qword [rsp + 0x48]
mov dword [rsp + 0x38], r8d
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x30], r8
mov dword [rsp + 0x5c], 0
mov rsi, qword [rcx - 8]
xor eax, eax
mov edx, dword [rcx + 4]
xor ebx, ebx
mov r9d, dword [rcx]
mov r15, qword [rcx + 8]
xor ecx, ecx
mov qword [rsp + 0xc8], rax
mov eax, esi
sub eax, ebp
mov qword [rsp + 0x80], rbx
mov qword [rsp + 0x50], rbx
mov dword [rsp + 0x20], edx
mov dword [rsp + 0x58], r9d
mov qword [rsp + 0x78], rcx
mov dword [rsp + 0x88], eax
mov dword [rsp + 0x8c], edx
cmp rsi, r14
jae 0x140233c32
mov r15, qword [rsp + 0x190]
mov edx, r9d
mov r9, qword [r11]
mov rbx, qword [rsp + 0x180]
add r9, rdx
mov ecx, dword [r15 + 8]
movups xmm2, xmmword [r15]
shl rdx, cl
lea r11, [rbx + 0x38]
mov rcx, qword [r10]
lea r10, [rbx + 0x28]
jmp 0x14023402c
mov eax, dword [rsp + 0x9c]
lea rbp, [r15 + rax*8]
mov qword [rsp + 0xb8], rbp
cmp r15, rbp
jae 0x140234003
mov r12, qword [rsp + 0x68]
cmp dword [r15 + 4], edx
jne 0x140233ef3
mov eax, dword [r15]
cmp eax, dword [rsp + 0x70]
jbe 0x140233ef3
cmp dword [rsp + 0xa0], 0
je 0x140233dac
cmp eax, dword [rsp + 0xa4]
mov rdi, r8
mov rbp, qword [rsp + 0xb0]
mov r11, r13
cmovb rdi, qword [rsp + 0xc0]
mov r8, r13
add rdi, rax
cmp eax, dword [rsp + 0xa4]
mov rdx, rdi
cmovb r11, qword [rsp + 0xa8]
cmovb rbp, r12
mov rcx, r11
sub rcx, rdi
add rcx, rsi
cmp rcx, r13
cmovb r8, rcx
mov rcx, rsi
call fcn.1401f42c0
mov rbx, rax
lea rcx, [rax + rdi]
cmp rcx, r11
jne 0x140233cee
mov rdx, qword [rsp + 0xb0]
lea rcx, [rax + rsi]
mov r8, r13
call fcn.1401f42c0
add rbx, rax
cmp rbx, qword [rsp + 0x48]
jb 0x140233ed0
xor edx, edx
cmp rsi, r14
jbe 0x140233d34
mov r8, rsi
lea rcx, [rdi - 1]
sub r8, rdi
nop word [rax + rax]
lea rax, [rcx + 1]
cmp rax, rbp
jbe 0x140233d34
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x140233d34
dec rcx
inc rdx
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x140233d10
sub rdi, rdx
cmp rdi, rbp
jne 0x140233d9a
mov r10, qword [rsp + 0x68]
cmp rbp, r10
je 0x140233d97
mov rax, rsi
xor r9d, r9d
sub rax, rdx
cmp rax, r14
jbe 0x140233d94
mov rax, qword [rsp + 0xa8]
mov r8, rsi
sub r8, rdx
sub r8, rax
lea rcx, [rax - 1]
nop dword [rax]
lea rax, [rcx + 1]
cmp rax, r10
jbe 0x140233d94
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x140233d94
dec rcx
inc r9
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x140233d70
add rdx, r9
mov r12, r10
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xb8]
jmp 0x140233e84
lea r9, [rax + r8]
mov rax, rsi
lea r8, [r13 - 7]
mov rdx, r9
cmp rsi, r8
jae 0x140233df9
mov rax, qword [rsi]
xor rax, qword [r9]
je 0x140233dd1
bsf rbx, rax
shr rbx, 3
jmp 0x140233e3e
lea rax, [rsi + 8]
lea rdx, [r9 + 8]
cmp rax, r8
jae 0x140233df9
nop
mov rcx, qword [rax]
xor rcx, qword [rdx]
jne 0x140233ebd
add rax, 8
add rdx, 8
cmp rax, r8
jb 0x140233de0
lea rcx, [r13 - 3]
cmp rax, rcx
jae 0x140233e10
mov ecx, dword [rax]
cmp dword [rdx], ecx
jne 0x140233e10
add rax, 4
add rdx, 4
lea rcx, [r13 - 1]
cmp rax, rcx
jae 0x140233e29
movzx ecx, word [rax]
cmp word [rdx], cx
jne 0x140233e29
add rax, 2
add rdx, 2
cmp rax, r13
jae 0x140233e38
movzx ecx, byte [rax]
cmp byte [rdx], cl
jne 0x140233e38
inc rax
mov rbx, rax
sub rbx, rsi
cmp rbx, rdi
jb 0x140233edd
xor edx, edx
cmp rsi, r14
jbe 0x140233e84
mov r8, rsi
lea rcx, [r9 - 1]
sub r8, r9
mov r9, qword [rsp + 0xb0]
lea rax, [rcx + 1]
cmp rax, r9
jbe 0x140233e84
movzx eax, byte [rcx]
cmp byte [rcx + r8], al
jne 0x140233e84
dec rcx
inc rdx
lea rax, [rcx + 1]
add rax, r8
cmp rax, r14
ja 0x140233e60
mov r8, qword [rsp + 0x30]
lea rax, [rdx + rbx]
cmp rax, qword [rsp + 0xc8]
jbe 0x140233ee2
mov rcx, r15
mov qword [rsp + 0x50], rdx
mov r10, rdx
mov qword [rsp + 0x78], rcx
mov edx, dword [rsp + 0x20]
mov qword [rsp + 0xc8], rax
mov qword [rsp + 0x80], rbx
jmp 0x140233ef8
bsf rbx, rcx
shr rbx, 3
sub rbx, rsi
add rbx, rax
jmp 0x140233e3e
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0xb8]
mov r8, qword [rsp + 0x30]
mov rcx, qword [rsp + 0x78]
mov edx, dword [rsp + 0x20]
mov rbx, qword [rsp + 0x80]
mov r10, qword [rsp + 0x50]
add r15, 8
cmp r15, rbp
jb 0x140233c53
mov r12d, dword [rsp + 0x1a0]
test rcx, rcx
jne 0x140233f2c
mov rbx, qword [rsp + 0x180]
mov r9d, dword [rsp + 0x58]
lea r11, [rbx + 0x38]
lea r10, [rbx + 0x28]
jmp 0x14023400b
mov r11, qword [rsp + 0x188]
mov r8d, esi
sub r8d, dword [rcx]
sub r8d, dword [rsp + 0x38]
mov rdx, qword [r11 + 0x18]
mov rax, qword [r11]
lea rcx, [rdx + rdx*2]
lea r9, [rax + rcx*4]
cmp rdx, qword [r11 + 0x20]
je 0x1402340d8
mov edx, dword [rsp + 0x58]
mov eax, esi
mov rbp, qword [rsp + 0x190]
sub eax, r10d
sub eax, r14d
mov dword [r9], r8d
mov dword [r9 + 4], eax
lea r14, [rsi + rbx]
lea eax, [r10 + rbx]
mov qword [rsp + 0x198], r14
mov r10, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x180]
mov dword [r9 + 8], eax
inc qword [r11 + 0x18]
lea r11, [r10 + 0x38]
mov ecx, dword [rbp + 8]
add r10, 0x28
mov r9, qword [r11]
movups xmm2, xmmword [rbp]
mov rax, qword [rsp + 0x88]
add r9, rdx
shl rdx, cl
mov rcx, qword [r10]
psrldq xmm2, 8
movzx r8d, byte [r9]
add rdx, r8
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 + 0x90]
add rax, r8
cmp r14, rax
ja 0x14023408f
mov ebp, dword [rsp + 0x38]
jmp 0x14023405f
mov rbx, qword [rsp + 0x180]
mov rcx, qword [rsp + 0x190]
mov ebp, dword [rsp + 0x38]
mov edx, r9d
mov r9, qword [r11]
movups xmm2, xmmword [rcx]
mov ecx, dword [rcx + 8]
add r9, rdx
shl rdx, cl
mov rcx, qword [r10]
movzx r8d, byte [r9]
mov rax, qword [rsp + 0x88]
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 + 0x5c]
mov rcx, qword [rsp + 0xd0]
inc r9d
add rcx, 0x18
mov dword [rsp + 0x5c], r9d
mov qword [rsp + 0xd0], rcx
cmp r9d, r12d
jae 0x14023409f
mov r8, qword [rsp + 0x30]
jmp 0x140233bb0
mov rdi, qword [rsp + 0xf0]
mov r11, r14
sub r11, r8
jmp 0x1402340ab
mov r11, qword [rsp + 0x90]
lea rdi, [rbx + 0x40]
mov r9, qword [rsp + 0x40]
lea rsi, str.ww__
add r11, r8
lea rbp, [r13 - 8]
mov qword [rsp + 0x90], r11
cmp r11, rbp
jae 0x1402340e1
mov r10, qword [rsp + 0xd8]
jmp 0x140233720
mov rax, 0xffffffffffffffba
jmp 0x1402340e7
sub r13, r14
mov rax, r13
mov rsi, qword [rsp + 0x140]
mov r12, qword [rsp + 0x138]
add rsp, 0x148
pop r15
pop r14
pop r13
pop rdi
pop rbp
pop rbx
ret