Function at 0x140061860
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x1c8
mov rax, qword [0x1400d6910]
xor rax, rsp
mov qword [rsp + 0x1b0], rax
mov r10, qword [rcx + 8]
mov r11, rcx
mov rax, qword [rcx + 0x70]
mov r15, rdx
mov r12d, dword [rcx + 0x34]
mov r14d, edx
mov qword [rsp + 0x80], rax
sub r14d, r10d
mov rax, qword [rcx + 0x38]
mov r13, r8
mov edi, dword [r11 + 0x10c]
mov rbp, qword [r11 + 0x60]
mov qword [rsp + 0x50], rax
mov eax, dword [rcx + 0x18]
mov ecx, dword [rcx + 0x100]
mov dword [rsp + 0x24], eax
add rax, r10
mov qword [rsp + 0xa0], rax
mov eax, r14d
sub eax, dword [r11 + 0x1c]
mov qword [rsp + 0x30], rdx
mov edx, 1
shl edx, cl
mov ecx, r14d
sub ecx, edx
mov qword [rsp + 0x88], r9
mov r9, qword [r15]
cmp eax, edx
mov qword [rsp + 0x38], r8
cmovbe ecx, dword [r11 + 0x1c]
xor ebx, ebx
cmp dword [r11 + 0x28], ebx
mov r8, qword [r11 + 0xf8]
cmovne ecx, dword [r11 + 0x1c]
mov dword [rsp + 0x28], ecx
lea eax, [rbx + 1]
lea ecx, [rbx + 4]
mov dword [rsp + 0x58], r12d
cmp edi, ecx
mov qword [rsp + 0x60], r10
lea esi, [rbx + 3]
mov dword [rsp + 0x44], r14d
cmovb ecx, edi
mov qword [rsp + 0xa8], rbp
shl eax, cl
lea ecx, [rbx + 0x42]
sub ecx, dword [r8 + 0x108]
mov dword [rsp + 0x40], eax
movabs rax, 0xcf1bbcdcbf9b0000
imul r9, rax
mov qword [rsp + 0x78], rsi
mov rdx, r9
mov qword [rsp + 0x68], r8
shr rdx, cl
lea rax, [rdx*4]
lea rcx, [rax*4]
mov qword [rsp + 0x98], rax
mov rax, qword [r8 + 0x70]
mov qword [rsp + 0x70], rcx
prefetcht0 byte [rcx + rax]
cmp edi, 4
jbe 0x1400619a5
lea ecx, [rdi - 4]
lea eax, [rbx + 1]
shl eax, cl
mov dword [rsp + 0x20], eax
jmp 0x1400619a9
mov dword [rsp + 0x20], ebx
cmp dword [r11 + 0x12c], ebx
jne 0x140061c81
mov edi, dword [r11 + 0x2c]
mov eax, r14d
sub eax, edi
mov ebp, 0x38
cmp eax, 0x180
jbe 0x140061b4f
lea eax, [rdi + 0x60]
cmp edi, eax
jae 0x140061a9c
mov r14, qword [rsp + 0x80]
lea r15, [r10 + 8]
mov r12d, ebp
mov r13d, edi
sub r12d, dword [rsp + 0x58]
mov esi, eax
mov rbp, qword [rsp + 0x50]
add r15, rdi
movabs rbx, 0xcf1bbcdcbf9b0000
mov rdx, qword [r15]
mov ecx, r12d
imul rdx, rbx
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [r14 + rax*4]
prefetcht0 byte [rax + rbp]
mov rax, r13
and eax, 7
mov r10d, dword [r11 + rax*4 + 0x40]
mov r9d, r10d
mov dword [r11 + rax*4 + 0x40], edx
shr r9, 4
and r9d, 0xffffff0
lea r8, [r9 + rbp]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc r13
not ecx
inc r15
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [rdx + r8], r10b
mov dword [r14 + rax*4], edi
inc edi
cmp edi, esi
jb 0x140061a05
mov rsi, qword [rsp + 0x78]
xor ebx, ebx
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov r14d, dword [rsp + 0x44]
mov r10, qword [rsp + 0x60]
lea ebp, [rbx + 0x38]
mov rcx, qword [r11 + 0x70]
lea edi, [r14 - 0x20]
mov r9d, edi
lea rax, [r15 + 1]
add r10, r9
mov qword [rsp + 0x48], rcx
mov rcx, qword [r11 + 0x38]
mov qword [rsp + 0x90], rcx
cmp r10, rax
jbe 0x140061ac8
mov eax, ebx
jmp 0x140061ad9
sub eax, dword [rsp + 0x60]
mov ecx, 8
sub eax, edi
inc eax
cmp eax, ecx
ja 0x140061adb
mov ecx, eax
lea eax, [rcx + rdi]
cmp edi, eax
jae 0x140061b4f
mov r13, qword [rsp + 0x48]
mov r8d, ebp
sub r8d, dword [r11 + 0x34]
movabs r15, 0xcf1bbcdcbf9b0000
mov rsi, qword [rsp + 0x90]
mov r12d, ecx
mov rdx, qword [r10]
mov ecx, r8d
imul rdx, r15
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [r13 + rax*4]
prefetcht0 byte [rax + rsi]
mov rax, r9
inc r10
and eax, 7
inc r9
mov dword [r11 + rax*4 + 0x40], edx
sub r12, 1
jne 0x140061b03
mov rsi, qword [rsp + 0x78]
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
mov rax, qword [r11 + 0x70]
mov rcx, qword [r11 + 0x38]
mov qword [rsp + 0x90], rax
mov rax, qword [r11 + 8]
cmp edi, r14d
jae 0x140061c1f
mov r15, qword [rsp + 0x90]
lea rsi, [rax + 8]
mov r13d, ebp
mov r12d, edi
sub r13d, dword [r11 + 0x34]
mov rbx, rcx
add rsi, r12
movabs rbp, 0xcf1bbcdcbf9b0000
mov rdx, qword [rsi]
mov ecx, r13d
imul rdx, rbp
xor rdx, qword [r11 + 0x60]
shr rdx, cl
mov ecx, 0xffffff0
mov eax, edx
shr rax, 4
and rax, rcx
prefetcht0 byte [r15 + rax*4]
prefetcht0 byte [rbx + rax]
mov rax, r12
and eax, 7
mov r10d, dword [r11 + rax*4 + 0x40]
mov r9d, r10d
mov dword [r11 + rax*4 + 0x40], edx
shr r9, 4
and r9, rcx
lea r8, [r9 + rbx]
movzx edx, byte [r8]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
inc r12
not ecx
inc rsi
and ecx, 0xf
add edx, ecx
mov byte [r8], dl
mov eax, edx
add rax, r9
mov byte [r8 + rdx], r10b
mov dword [r15 + rax*4], edi
inc edi
cmp edi, r14d
jb 0x140061b92
mov rsi, qword [rsp + 0x78]
xor ebx, ebx
mov r15, qword [rsp + 0x30]
mov r13, qword [rsp + 0x38]
lea ebp, [rbx + 0x38]
mov rax, qword [rsp + 0x60]
sub ebp, dword [rsp + 0x58]
mov cl, bpl
mov r8d, r14d
mov dword [r11 + 0x2c], r14d
mov rdx, qword [r8 + rax + 8]
movabs rax, 0xcf1bbcdcbf9b0000
imul rdx, rax
xor rdx, qword [rsp + 0xa8]
shr rdx, cl
mov rcx, qword [rsp + 0x80]
mov eax, edx
shr rax, 4
and eax, 0xffffff0
prefetcht0 byte [rcx + rax*4]
mov r10, qword [rsp + 0x50]
prefetcht0 byte [rax + r10]
and r8d, 7
mov r9d, dword [r11 + r8*4 + 0x40]
mov dword [r11 + r8*4 + 0x40], edx
jmp 0x140061ca0
mov r10, qword [rsp + 0x50]
mov ecx, 0x38
sub ecx, r12d
mov dword [r11 + 0x2c], r14d
xor r9, rbp
shr r9, cl
mov rcx, qword [rsp + 0x80]
add dword [r11 + 0x68], r9d
mov eax, r9d
shr rax, 4
mov rdi, rbx
and eax, 0xffffff0
mov rbp, rbx
lea rcx, [rcx + rax*4]
lea r12, [rax + r10]
mov qword [rsp + 0x50], rcx
movdqu xmm0, xmmword [r12]
movzx r8d, byte [r12]
movsx eax, r9b
and r8d, 0xf
mov ecx, r8d
neg ecx
and ecx, 0xf
movd xmm1, eax
punpcklbw xmm1, xmm1
punpcklwd xmm1, xmm1
pshufd xmm1, xmm1, 0
pcmpeqb xmm1, xmm0
pmovmskb edx, xmm1
movzx eax, dx
shl ax, cl
mov cl, r8b
movzx r10d, ax
movzx eax, dx
shr rax, cl
or r10, rax
jbe 0x140061d6f
mov r13d, dword [rsp + 0x40]
mov edx, r8d
mov r8, qword [rsp + 0x50]
mov r15d, dword [rsp + 0x28]
test r13d, r13d
je 0x140061d5e
bsf rcx, r10
mov dword [rsp + 0x28], ebx
add ecx, edx
and ecx, 0xf
je 0x140061d55
mov ecx, dword [r8 + rcx*4]
cmp ecx, r15d
jb 0x140061d5e
mov eax, ecx
add rax, qword [rsp + 0x60]
prefetcht0 byte [rax]
mov dword [rsp + rdi*4 + 0xb0], ecx
inc rdi
dec r13d
lea rax, [r10 - 1]
and r10, rax
ja 0x140061d21
mov r15, qword [rsp + 0x30]
mov dword [rsp + 0x40], r13d
mov r13, qword [rsp + 0x38]
jmp 0x140061d74
mov r8, qword [rsp + 0x50]
movzx edx, byte [r12]
dec edx
and edx, 0xf
mov eax, edx
neg eax
sbb ecx, ecx
not ecx
and ecx, 0xf
add edx, ecx
mov byte [r12], dl
mov byte [rdx + r12], r9b
mov ecx, dword [r11 + 0x2c]
lea eax, [rcx + 1]
mov dword [r11 + 0x2c], eax
mov dword [r8 + rdx*4], ecx
test rdi, rdi
je 0x140061dfe
mov rbx, qword [rsp + 0x60]
mov r11, qword [rsp + 0x88]
mov edx, dword [rsp + rbp*4 + 0xb0]
mov eax, dword [rsi + r15 - 3]
add rdx, rbx
cmp dword [rdx + rsi - 3], eax
jne 0x140061df4
mov r8, r13
mov rcx, r15
call fcn.14009ec70
cmp rax, rsi
jbe 0x140061df4
mov ecx, r14d
mov rsi, rax
sub ecx, dword [rsp + rbp*4 + 0xb0]
add rax, r15
add ecx, 3
mov qword [r11], rcx
cmp rax, r13
je 0x140061dfc
inc rbp
cmp rbp, rdi
jb 0x140061db4
xor ebx, ebx
mov r10, qword [rsp + 0x68]
mov edx, 3
mov r14d, dword [rsp + 0x20]
mov r11d, edx
add r14d, dword [rsp + 0x40]
mov rcx, qword [rsp + 0x70]
mov r8, qword [r10 + 8]
mov r9, qword [r10]
mov r12d, r8d
mov rdi, qword [r10 + 0x70]
sub r12d, r9d
add r12d, dword [rsp + 0x24]
cmp r14d, edx
mov qword [rsp + 0x38], r8
mov qword [rsp + 0x30], r9
cmovb r11d, r14d
add rcx, rdi
mov dword [rsp + 0x28], r11d
mov eax, dword [rcx]
prefetcht0 byte [rax + r8]
lea rcx, [rcx + 4]
sub rdx, 1
jne 0x140061e49
mov rax, qword [rsp + 0x98]
mov ecx, dword [rdi + rax*4 + 0xc]
mov rax, qword [r10 + 0x80]
shr rcx, 8
prefetcht0 byte [rax + rcx*4]
mov dword [rsp + 0x20], ebx
mov ebp, ebx
test r11d, r11d
je 0x140061f52
mov rax, qword [r10 + 0x70]
mov rcx, qword [rsp + 0x70]
mov eax, dword [rcx + rax]
mov dword [rsp + 0x24], eax
lea r11, [r8 + rax]
test eax, eax
je 0x14006204c
mov eax, dword [r15]
cmp dword [r11], eax
jne 0x140061f3c
add r11, 4
lea rcx, [r15 + 4]
sub rcx, r11
mov r8, r13
add rcx, r9
mov rdx, r11
cmp rcx, r13
cmovb r8, rcx
lea rcx, [r15 + 4]
call fcn.14009ec70
mov r9, qword [rsp + 0x30]
mov rdi, rax
lea rcx, [rax + r11]
cmp rcx, r9
jne 0x140061f00
mov rdx, qword [rsp + 0xa0]
lea rcx, [r15 + 4]
add rcx, rax
mov r8, r13
call fcn.14009ec70
mov r9, qword [rsp + 0x30]
add rdi, rax
lea rcx, [rdi + 4]
cmp rcx, rsi
jbe 0x140061f32
mov eax, dword [rsp + 0x44]
mov rsi, rcx
sub eax, dword [rsp + 0x24]
mov rdx, qword [rsp + 0x88]
sub eax, r12d
add eax, 3
mov qword [rdx], rax
lea rax, [rcx + r15]
cmp rax, r13
je 0x14006204f
mov r10, qword [rsp + 0x68]
mov r8, qword [rsp + 0x38]
add qword [rsp + 0x70], 4
inc ebp
mov dword [rsp + 0x20], ebp
cmp ebp, dword [rsp + 0x28]
jb 0x140061e84
sub r14d, dword [rsp + 0x20]
mov edx, ebx
mov rax, qword [r10 + 0x70]
mov rcx, qword [rsp + 0x98]
movzx ebp, byte [rax + rcx*4 + 0xc]
mov edi, dword [rax + rcx*4 + 0xc]
shr edi, 8
cmp r14d, ebp
cmovbe ebp, r14d
test ebp, ebp
je 0x14006204c
mov r11, qword [r10 + 0x80]
lea eax, [rdx + rdi]
mov eax, dword [r11 + rax*4]
prefetcht0 byte [rax + r8]
inc edx
cmp edx, ebp
jb 0x140061f87
mov rax, qword [r10 + 0x80]
mov eax, dword [rax + rdi*4]
mov dword [rsp + 0x24], eax
lea r11, [r8 + rax]
mov eax, dword [r15]
cmp dword [r11], eax
jne 0x14006203b
add r11, 4
lea rcx, [r15 + 4]
sub rcx, r11
mov r8, r13
add rcx, r9
mov rdx, r11
cmp rcx, r13
cmovb r8, rcx
lea rcx, [r15 + 4]
call fcn.14009ec70
mov r14, rax
lea rcx, [rax + r11]
cmp rcx, qword [rsp + 0x30]
jne 0x140062003
mov rdx, qword [rsp + 0xa0]
lea rcx, [r15 + 4]
add rcx, rax
mov r8, r13
call fcn.14009ec70
add r14, rax
add r14, 4
cmp r14, rsi
jbe 0x140062031
mov eax, dword [rsp + 0x44]
mov rsi, r14
sub eax, dword [rsp + 0x24]
mov rcx, qword [rsp + 0x88]
sub eax, r12d
add eax, 3
mov qword [rcx], rax
lea rax, [r14 + r15]
cmp rax, r13
je 0x14006204c
mov r10, qword [rsp + 0x68]
mov r8, qword [rsp + 0x38]
mov r9, qword [rsp + 0x30]
inc edi
inc ebx
cmp ebx, ebp
jb 0x140061f99
mov rcx, rsi
mov rax, rcx
mov rcx, qword [rsp + 0x1b0]
xor rcx, rsp
call fcn.14001bf00
add rsp, 0x1c8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret