Function at 0x140063960
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x68
movdqa xmmword [rsp + 0x50], xmm6
mov rbx, r9
mov r12, r8
mov qword [rsp + 0x48], rdx
mov r14, rcx
mov rsi, qword [rsp + 0xd0]
cmp byte [rsi + 0x28], 0
jne 0x140063a19
mov rcx, qword [rsi + 0x10]
mov rdi, qword [rsi + 0x20]
cmp rcx, qword [rsi + 0x18]
jne 0x1400639fb
mov r15, r14
mov r14, rsi
mov rsi, rbx
lea rax, [rcx + rcx*2]
shr rax, 1
test rcx, rcx
mov ebx, 0x20
cmovne rbx, rax
cmp rbx, rcx
jbe 0x140063a09
mov rax, rbx
shr rax, 0x3d
jne 0x140063a09
lea rdx, [rbx*8]
mov rcx, qword [r14 + 8]
call fcn.14009eae0
test rax, rax
je 0x140063a09
mov qword [r14 + 8], rax
mov qword [r14 + 0x18], rbx
mov rcx, qword [r14 + 0x10]
mov rbx, rsi
mov rsi, r14
mov r14, r15
jmp 0x1400639ff
mov rax, qword [rsi + 8]
mov qword [rax + rcx*8], rdi
inc qword [rsi + 0x10]
jmp 0x140063a19
mov word [r14 + 0x28], 0x101
mov rbx, rsi
mov rsi, r14
mov r14, r15
mov rcx, rsi
call fcn.140055ae0
xor ebp, ebp
test rax, rax
je 0x1400649f4
mov r15, rax
lea r9, [rbx + 0x18]
mov r8, qword [r14 + 8]
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], rsi
mov rcx, rax
mov rdx, r12
call fcn.14005a260
test eax, eax
je 0x1400649f4
mov qword [rsp + 0x20], rsi
mov rcx, r15
mov rdx, r15
mov r8, rbx
mov r9, rbx
call fcn.140059900
test eax, eax
je 0x1400649f4
mov r8, qword [r14 + 0x10]
movsxd rax, dword [r15 + 8]
movsxd rdx, dword [r8 + 8]
cmp eax, edx
jge 0x140063a9b
mov r9, qword [r8]
mov r10, rdx
sub r10, rax
cmp r10, 4
jae 0x140063aa2
xor ecx, ecx
mov r11, rax
jmp 0x140063bb0
xor ecx, ecx
jmp 0x140063bbc
lea rdi, [r10 - 4]
mov r11, rdi
shr r11, 2
inc r11
mov ecx, r11d
and ecx, 3
mov r13, rbx
cmp rdi, 0xc
jae 0x140063acf
pxor xmm0, xmm0
xor r12d, r12d
pxor xmm1, xmm1
jmp 0x140063b51
and r11, 0xfffffffffffffffc
lea rdi, [r9 + rax*8]
add rdi, 0x70
pxor xmm0, xmm0
xor r12d, r12d
pxor xmm1, xmm1
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + r12*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rdi + r12*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rdi + r12*8 - 0x50]
movdqu xmm3, xmmword [rdi + r12*8 - 0x40]
movdqu xmm4, xmmword [rdi + r12*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rdi + r12*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rdi + r12*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rdi + r12*8]
por xmm1, xmm2
add r12, 0x10
add r11, 0xfffffffffffffffc
jne 0x140063af0
mov r11, r10
and r11, 0xfffffffffffffffc
test rcx, rcx
je 0x140063b8c
add r12, rax
lea rdi, [r9 + r12*8]
add rdi, 0x10
shl rcx, 5
xor ebx, ebx
nop
movdqu xmm2, xmmword [rdi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp rcx, rbx
jne 0x140063b70
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rcx, xmm1
cmp r10, r11
jne 0x140063ba8
mov rbx, r13
jmp 0x140063bbc
add r11, rax
mov rbx, r13
nop
or rcx, qword [r9 + r11*8]
inc r11
cmp rdx, r11
jne 0x140063bb0
cmp edx, eax
jge 0x140063cec
mov r9, qword [r15]
mov r10, rax
sub r10, rdx
cmp r10, 4
jae 0x140063bdb
mov r11, rdx
jmp 0x140063ce0
movq xmm0, rcx
lea rdi, [r10 - 4]
mov r11, rdi
shr r11, 2
inc r11
mov ecx, r11d
and ecx, 3
mov r13, rbx
cmp rdi, 0xc
jae 0x140063c09
pxor xmm1, xmm1
xor r12d, r12d
jmp 0x140063c81
and r11, 0xfffffffffffffffc
lea rdi, [r9 + rdx*8]
add rdi, 0x70
pxor xmm1, xmm1
xor r12d, r12d
nop dword [rax]
movdqu xmm2, xmmword [rdi + r12*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rdi + r12*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rdi + r12*8 - 0x50]
movdqu xmm3, xmmword [rdi + r12*8 - 0x40]
movdqu xmm4, xmmword [rdi + r12*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rdi + r12*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rdi + r12*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rdi + r12*8]
por xmm1, xmm2
add r12, 0x10
add r11, 0xfffffffffffffffc
jne 0x140063c20
mov r11, r10
and r11, 0xfffffffffffffffc
test rcx, rcx
je 0x140063cbc
add r12, rdx
lea rdi, [r9 + r12*8]
add rdi, 0x10
shl rcx, 5
xor ebx, ebx
nop
movdqu xmm2, xmmword [rdi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp rcx, rbx
jne 0x140063ca0
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rcx, xmm1
cmp r10, r11
jne 0x140063cd8
mov rbx, r13
jmp 0x140063cec
add r11, rdx
mov rbx, r13
nop
or rcx, qword [r9 + r11*8]
inc r11
cmp rax, r11
jne 0x140063ce0
cmp eax, edx
cmovl edx, eax
test edx, edx
jle 0x140063e13
mov r9, qword [r15]
mov r10, qword [r8]
mov r11d, edx
cmp edx, 4
jae 0x140063d0e
xor edx, edx
jmp 0x140063e00
mov edx, r11d
and edx, 0xfffffffc
movq xmm0, rcx
lea rcx, [r11 - 4]
mov r12, rcx
shr r12, 2
inc r12
cmp rcx, 4
jae 0x140063d35
pxor xmm1, xmm1
xor ecx, ecx
jmp 0x140063db0
mov rdi, r12
and rdi, 0xfffffffffffffffe
pxor xmm1, xmm1
xor ecx, ecx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [r9 + rcx*8]
movdqu xmm3, xmmword [r9 + rcx*8 + 0x10]
movdqu xmm4, xmmword [r9 + rcx*8 + 0x20]
movdqu xmm5, xmmword [r9 + rcx*8 + 0x30]
movdqu xmm6, xmmword [r10 + rcx*8]
pxor xmm6, xmm2
por xmm6, xmm0
movdqu xmm2, xmmword [r10 + rcx*8 + 0x10]
pxor xmm2, xmm3
por xmm2, xmm1
movdqu xmm0, xmmword [r10 + rcx*8 + 0x20]
pxor xmm0, xmm4
por xmm0, xmm6
movdqu xmm1, xmmword [r10 + rcx*8 + 0x30]
pxor xmm1, xmm5
por xmm1, xmm2
add rcx, 8
add rdi, 0xfffffffffffffffe
jne 0x140063d50
test r12b, 1
je 0x140063de0
movdqu xmm2, xmmword [r9 + rcx*8]
movdqu xmm3, xmmword [r9 + rcx*8 + 0x10]
movdqu xmm4, xmmword [r10 + rcx*8]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm2, xmmword [r10 + rcx*8 + 0x10]
pxor xmm2, xmm3
por xmm1, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq rcx, xmm1
cmp rdx, r11
je 0x140063e13
nop word [rax + rax]
mov rdi, qword [r10 + rdx*8]
xor rdi, qword [r9 + rdx*8]
or rcx, rdi
inc rdx
cmp r11, rdx
jne 0x140063e00
mov edx, dword [r15 + 0x10]
mov r10d, dword [r8 + 0x10]
xor r10d, edx
mov r8, qword [r14 + 0x18]
movsxd r9, dword [r8 + 8]
cmp eax, r9d
jge 0x140063e45
mov r11, qword [r8]
mov r13, r9
sub r13, rax
cmp r13, 4
jae 0x140063e4d
xor r12d, r12d
mov rbp, rax
jmp 0x140063f60
xor r12d, r12d
jmp 0x140063f6c
mov qword [rsp + 0x38], rbx
lea rdi, [r13 - 4]
mov rbp, rdi
shr rbp, 2
inc rbp
mov r12d, ebp
and r12d, 3
cmp rdi, 0xc
jae 0x140063e79
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x140063ee9
and rbp, 0xfffffffffffffffc
lea rbx, [r11 + rax*8]
add rbx, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop
movdqu xmm2, xmmword [rbx + rdi*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbx + rdi*8 - 0x50]
movdqu xmm3, xmmword [rbx + rdi*8 - 0x40]
movdqu xmm4, xmmword [rbx + rdi*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbx + rdi*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbx + rdi*8]
por xmm1, xmm2
add rdi, 0x10
add rbp, 0xfffffffffffffffc
jne 0x140063e90
mov rbp, r13
and rbp, 0xfffffffffffffffc
test r12, r12
je 0x140063f2c
add rdi, rax
lea rdi, [r11 + rdi*8]
add rdi, 0x10
shl r12, 5
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp r12, rbx
jne 0x140063f10
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r12, xmm1
cmp r13, rbp
jne 0x140063f4a
mov rbx, qword [rsp + 0x38]
jmp 0x140063f6c
add rbp, rax
mov rbx, qword [rsp + 0x38]
nop word cs:[rax + rax]
or r12, qword [r11 + rbp*8]
inc rbp
cmp r9, rbp
jne 0x140063f60
movsxd r10, r10d
cmp r9d, eax
jge 0x1400640ac
mov r11, qword [r15]
mov r13, rax
sub r13, r9
cmp r13, 4
jae 0x140063f8f
mov rbp, r9
jmp 0x1400640a0
mov qword [rsp + 0x38], rbx
movq xmm0, r12
lea rdi, [r13 - 4]
mov rbp, rdi
shr rbp, 2
inc rbp
mov r12d, ebp
and r12d, 3
cmp rdi, 0xc
jae 0x140063fbc
pxor xmm1, xmm1
xor edi, edi
jmp 0x140064029
and rbp, 0xfffffffffffffffc
lea rbx, [r11 + r9*8]
add rbx, 0x70
pxor xmm1, xmm1
xor edi, edi
nop
movdqu xmm2, xmmword [rbx + rdi*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbx + rdi*8 - 0x50]
movdqu xmm3, xmmword [rbx + rdi*8 - 0x40]
movdqu xmm4, xmmword [rbx + rdi*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbx + rdi*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbx + rdi*8]
por xmm1, xmm2
add rdi, 0x10
add rbp, 0xfffffffffffffffc
jne 0x140063fd0
mov rbp, r13
and rbp, 0xfffffffffffffffc
test r12, r12
je 0x14006406c
add rdi, r9
lea rdi, [r11 + rdi*8]
add rdi, 0x10
shl r12, 5
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp r12, rbx
jne 0x140064050
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r12, xmm1
cmp r13, rbp
jne 0x14006408a
mov rbx, qword [rsp + 0x38]
jmp 0x1400640ac
add rbp, r9
mov rbx, qword [rsp + 0x38]
nop word cs:[rax + rax]
or r12, qword [r11 + rbp*8]
inc rbp
cmp rax, rbp
jne 0x1400640a0
or rcx, r10
cmp eax, r9d
cmovl r9d, eax
test r9d, r9d
jle 0x1400641d3
mov rax, qword [r15]
mov r10, qword [r8]
mov r11d, r9d
cmp r9d, 4
jae 0x1400640d6
xor r9d, r9d
jmp 0x1400641c0
mov r9d, r11d
and r9d, 0xfffffffc
movq xmm0, r12
lea rdi, [r11 - 4]
mov r13, rdi
shr r13, 2
inc r13
cmp rdi, 4
jae 0x1400640ff
pxor xmm1, xmm1
xor r12d, r12d
jmp 0x140064170
mov rdi, r13
and rdi, 0xfffffffffffffffe
pxor xmm1, xmm1
xor r12d, r12d
nop dword [rax]
movdqu xmm2, xmmword [rax + r12*8]
movdqu xmm3, xmmword [rax + r12*8 + 0x10]
movdqu xmm4, xmmword [rax + r12*8 + 0x20]
movdqu xmm5, xmmword [rax + r12*8 + 0x30]
movdqu xmm6, xmmword [r10 + r12*8]
pxor xmm6, xmm2
por xmm6, xmm0
movdqu xmm2, xmmword [r10 + r12*8 + 0x10]
pxor xmm2, xmm3
por xmm2, xmm1
movdqu xmm0, xmmword [r10 + r12*8 + 0x20]
pxor xmm0, xmm4
por xmm0, xmm6
movdqu xmm1, xmmword [r10 + r12*8 + 0x30]
pxor xmm1, xmm5
por xmm1, xmm2
add r12, 8
add rdi, 0xfffffffffffffffe
jne 0x140064110
test r13b, 1
je 0x1400641a0
movdqu xmm2, xmmword [rax + r12*8]
movdqu xmm3, xmmword [rax + r12*8 + 0x10]
movdqu xmm4, xmmword [r10 + r12*8]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm2, xmmword [r10 + r12*8 + 0x10]
pxor xmm2, xmm3
por xmm1, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r12, xmm1
cmp r9, r11
je 0x1400641d3
nop word [rax + rax]
mov rdi, qword [r10 + r9*8]
xor rdi, qword [rax + r9*8]
or r12, rdi
inc r9
cmp r11, r9
jne 0x1400641c0
test rcx, rcx
sete al
xor edx, dword [r8 + 0x10]
movsxd rcx, edx
or rcx, r12
sete cl
or cl, al
movzx r12d, cl
neg r12
cmp dword [r14 + 0x20], 2
jl 0x1400649e3
mov ebp, 1
mov qword [rsp + 0x40], r14
nop word cs:[rax + rax]
cmp dword [r14 + 0x24], ebp
jne 0x140064220
cmp r12, 0xffffffffffffffff
jne 0x1400649e3
mov qword [rsp + 0x20], rsi
mov rcx, r15
mov rdx, r15
mov r8, r15
mov r9, rbx
call fcn.140059900
test eax, eax
je 0x140064a2b
mov rdx, qword [r14 + 0x18]
movsxd r13, dword [r15 + 8]
movsxd rcx, dword [rdx + 8]
cmp r13d, ecx
jge 0x140064270
mov r8, qword [rdx]
mov r9, rcx
sub r9, r13
cmp r9, 4
jae 0x140064280
mov r11, r13
xor r10d, r10d
jmp 0x140064380
xor r10d, r10d
jmp 0x14006438c
lea rax, [r9 - 4]
mov r11, rax
shr r11, 2
inc r11
mov r10d, r11d
and r10d, 3
cmp rax, 0xc
jae 0x1400642a7
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
jmp 0x140064319
and r11, 0xfffffffffffffffc
lea rdi, [r8 + r13*8]
add rdi, 0x70
pxor xmm0, xmm0
xor eax, eax
pxor xmm1, xmm1
nop dword [rax]
movdqu xmm2, xmmword [rdi + rax*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rdi + rax*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rdi + rax*8 - 0x50]
movdqu xmm3, xmmword [rdi + rax*8 - 0x40]
movdqu xmm4, xmmword [rdi + rax*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rdi + rax*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rdi + rax*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rdi + rax*8]
por xmm1, xmm2
add rax, 0x10
add r11, 0xfffffffffffffffc
jne 0x1400642c0
mov r11, r9
and r11, 0xfffffffffffffffc
test r10, r10
je 0x14006435c
add rax, r13
lea rax, [r8 + rax*8]
add rax, 0x10
shl r10, 5
xor edi, edi
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rax + rdi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rax + rdi]
por xmm1, xmm2
add rdi, 0x20
cmp r10, rdi
jne 0x140064340
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp r9, r11
je 0x14006438c
add r11, r13
nop word cs:[rax + rax]
or r10, qword [r8 + r11*8]
inc r11
cmp rcx, r11
jne 0x140064380
cmp ecx, r13d
jge 0x1400644bc
mov r8, qword [r15]
mov r9, r13
sub r9, rcx
cmp r9, 4
jae 0x1400643b0
mov r11, rcx
jmp 0x1400644b0
movq xmm0, r10
lea rax, [r9 - 4]
mov r11, rax
shr r11, 2
inc r11
mov r10d, r11d
and r10d, 3
cmp rax, 0xc
jae 0x1400643d8
pxor xmm1, xmm1
xor eax, eax
jmp 0x140064449
and r11, 0xfffffffffffffffc
lea rdi, [r8 + rcx*8]
add rdi, 0x70
pxor xmm1, xmm1
xor eax, eax
nop word [rax + rax]
movdqu xmm2, xmmword [rdi + rax*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rdi + rax*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rdi + rax*8 - 0x50]
movdqu xmm3, xmmword [rdi + rax*8 - 0x40]
movdqu xmm4, xmmword [rdi + rax*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rdi + rax*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rdi + rax*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rdi + rax*8]
por xmm1, xmm2
add rax, 0x10
add r11, 0xfffffffffffffffc
jne 0x1400643f0
mov r11, r9
and r11, 0xfffffffffffffffc
test r10, r10
je 0x14006448c
add rax, rcx
lea rax, [r8 + rax*8]
add rax, 0x10
shl r10, 5
xor edi, edi
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rax + rdi - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rax + rdi]
por xmm1, xmm2
add rdi, 0x20
cmp r10, rdi
jne 0x140064470
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp r9, r11
je 0x1400644bc
add r11, rcx
nop word cs:[rax + rax]
or r10, qword [r8 + r11*8]
inc r11
cmp r13, r11
jne 0x1400644b0
cmp r13d, ecx
cmovl ecx, r13d
test ecx, ecx
jle 0x1400645d3
mov r8, qword [r15]
mov r9, qword [rdx]
mov r11d, ecx
cmp ecx, 4
jae 0x1400644e0
xor edi, edi
jmp 0x1400645c0
movq xmm0, r10
lea rax, [r11 - 4]
mov rcx, rax
shr rcx, 2
inc rcx
cmp rax, 4
jae 0x140064501
pxor xmm1, xmm1
xor eax, eax
jmp 0x140064570
mov r10, rcx
and r10, 0xfffffffffffffffe
pxor xmm1, xmm1
xor eax, eax
nop
movdqu xmm2, xmmword [r8 + rax*8]
movdqu xmm3, xmmword [r8 + rax*8 + 0x10]
movdqu xmm4, xmmword [r8 + rax*8 + 0x20]
movdqu xmm5, xmmword [r8 + rax*8 + 0x30]
movdqu xmm6, xmmword [r9 + rax*8]
pxor xmm6, xmm2
por xmm6, xmm0
movdqu xmm2, xmmword [r9 + rax*8 + 0x10]
pxor xmm2, xmm3
por xmm2, xmm1
movdqu xmm0, xmmword [r9 + rax*8 + 0x20]
pxor xmm0, xmm4
por xmm0, xmm6
movdqu xmm1, xmmword [r9 + rax*8 + 0x30]
pxor xmm1, xmm5
por xmm1, xmm2
add rax, 8
add r10, 0xfffffffffffffffe
jne 0x140064510
mov edi, r11d
and edi, 0xfffffffc
test cl, 1
je 0x1400645a5
movdqu xmm2, xmmword [r8 + rax*8]
movdqu xmm3, xmmword [r8 + rax*8 + 0x10]
movdqu xmm4, xmmword [r9 + rax*8]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm2, xmmword [r9 + rax*8 + 0x10]
pxor xmm2, xmm3
por xmm1, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp rdi, r11
je 0x1400645d3
nop dword [rax]
mov rax, qword [r9 + rdi*8]
xor rax, qword [r8 + rdi*8]
or r10, rax
inc rdi
cmp r11, rdi
jne 0x1400645c0
mov ecx, dword [r15 + 0x10]
mov eax, dword [rdx + 0x10]
xor eax, ecx
cdqe
or rax, r10
mov rax, 0xffffffffffffffff
cmove r12, rax
mov rdx, qword [r14 + 0x10]
movsxd r8, dword [rdx + 8]
cmp r13d, r8d
jge 0x140064620
mov r9, qword [rdx]
mov r11, r8
sub r11, r13
cmp r11, 4
jae 0x140064630
mov rax, r13
xor r10d, r10d
jmp 0x140064750
xor r10d, r10d
jmp 0x14006475c
lea rdi, [r11 - 4]
mov rax, rdi
shr rax, 2
inc rax
mov r10d, eax
and r10d, 3
mov r14, rsi
mov rsi, rbx
cmp rdi, 0xc
jae 0x14006465d
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
jmp 0x1400646d9
and rax, 0xfffffffffffffffc
lea rbx, [r9 + r13*8]
add rbx, 0x70
pxor xmm0, xmm0
xor edi, edi
pxor xmm1, xmm1
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rbx + rdi*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbx + rdi*8 - 0x50]
movdqu xmm3, xmmword [rbx + rdi*8 - 0x40]
movdqu xmm4, xmmword [rbx + rdi*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbx + rdi*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbx + rdi*8]
por xmm1, xmm2
add rdi, 0x10
add rax, 0xfffffffffffffffc
jne 0x140064680
mov rax, r11
and rax, 0xfffffffffffffffc
test r10, r10
je 0x14006471c
add rdi, r13
lea rdi, [r9 + rdi*8]
add rdi, 0x10
shl r10, 5
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp r10, rbx
jne 0x140064700
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp r11, rax
jne 0x140064740
mov rbx, rsi
mov rsi, r14
mov r14, qword [rsp + 0x40]
jmp 0x14006475c
add rax, r13
mov rbx, rsi
mov rsi, r14
mov r14, qword [rsp + 0x40]
nop
or r10, qword [r9 + rax*8]
inc rax
cmp r8, rax
jne 0x140064750
cmp r8d, r13d
jge 0x14006489c
mov r9, qword [r15]
mov r11, r13
sub r11, r8
cmp r11, 4
jae 0x140064780
mov rax, r8
jmp 0x140064890
movq xmm0, r10
lea rdi, [r11 - 4]
mov rax, rdi
shr rax, 2
inc rax
mov r10d, eax
and r10d, 3
mov r14, rsi
mov rsi, rbx
cmp rdi, 0xc
jae 0x1400647ae
pxor xmm1, xmm1
xor edi, edi
jmp 0x140064819
and rax, 0xfffffffffffffffc
lea rbx, [r9 + r8*8]
add rbx, 0x70
pxor xmm1, xmm1
xor edi, edi
movdqu xmm2, xmmword [rbx + rdi*8 - 0x70]
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x60]
por xmm0, xmm1
movdqu xmm1, xmmword [rbx + rdi*8 - 0x50]
movdqu xmm3, xmmword [rbx + rdi*8 - 0x40]
movdqu xmm4, xmmword [rbx + rdi*8 - 0x30]
por xmm4, xmm1
por xmm4, xmm2
movdqu xmm2, xmmword [rbx + rdi*8 - 0x20]
por xmm2, xmm3
por xmm2, xmm0
movdqu xmm0, xmmword [rbx + rdi*8 - 0x10]
por xmm0, xmm4
movdqu xmm1, xmmword [rbx + rdi*8]
por xmm1, xmm2
add rdi, 0x10
add rax, 0xfffffffffffffffc
jne 0x1400647c0
mov rax, r11
and rax, 0xfffffffffffffffc
test r10, r10
je 0x14006485c
add rdi, r8
lea rdi, [r9 + rdi*8]
add rdi, 0x10
shl r10, 5
xor ebx, ebx
nop word cs:[rax + rax]
movdqu xmm2, xmmword [rdi + rbx - 0x10]
por xmm0, xmm2
movdqu xmm2, xmmword [rdi + rbx]
por xmm1, xmm2
add rbx, 0x20
cmp r10, rbx
jne 0x140064840
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp r11, rax
jne 0x140064880
mov rbx, rsi
mov rsi, r14
mov r14, qword [rsp + 0x40]
jmp 0x14006489c
add rax, r8
mov rbx, rsi
mov rsi, r14
mov r14, qword [rsp + 0x40]
nop
or r10, qword [r9 + rax*8]
inc rax
cmp r13, rax
jne 0x140064890
cmp r13d, r8d
cmovl r8d, r13d
test r8d, r8d
jle 0x1400649c3
mov rax, qword [r15]
mov r9, qword [rdx]
mov r11d, r8d
cmp r8d, 4
jae 0x1400648d0
xor edi, edi
jmp 0x1400649b0
movq xmm0, r10
lea r10, [r11 - 4]
mov r8, r10
shr r8, 2
inc r8
cmp r10, 4
jae 0x1400648f2
pxor xmm1, xmm1
xor r10d, r10d
jmp 0x140064960
mov rdi, r8
and rdi, 0xfffffffffffffffe
pxor xmm1, xmm1
xor r10d, r10d
movdqu xmm2, xmmword [rax + r10*8]
movdqu xmm3, xmmword [rax + r10*8 + 0x10]
movdqu xmm4, xmmword [rax + r10*8 + 0x20]
movdqu xmm5, xmmword [rax + r10*8 + 0x30]
movdqu xmm6, xmmword [r9 + r10*8]
pxor xmm6, xmm2
por xmm6, xmm0
movdqu xmm2, xmmword [r9 + r10*8 + 0x10]
pxor xmm2, xmm3
por xmm2, xmm1
movdqu xmm0, xmmword [r9 + r10*8 + 0x20]
pxor xmm0, xmm4
por xmm0, xmm6
movdqu xmm1, xmmword [r9 + r10*8 + 0x30]
pxor xmm1, xmm5
por xmm1, xmm2
add r10, 8
add rdi, 0xfffffffffffffffe
jne 0x140064900
mov edi, r11d
and edi, 0xfffffffc
test r8b, 1
je 0x140064996
movdqu xmm2, xmmword [rax + r10*8]
movdqu xmm3, xmmword [rax + r10*8 + 0x10]
movdqu xmm4, xmmword [r9 + r10*8]
pxor xmm4, xmm2
por xmm0, xmm4
movdqu xmm2, xmmword [r9 + r10*8 + 0x10]
pxor xmm2, xmm3
por xmm1, xmm2
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
movq r10, xmm1
cmp rdi, r11
je 0x1400649c3
nop dword [rax]
mov r8, qword [r9 + rdi*8]
xor r8, qword [rax + rdi*8]
or r10, r8
inc rdi
cmp r11, rdi
jne 0x1400649b0
xor ecx, dword [rdx + 0x10]
movsxd rax, ecx
mov ecx, r12d
and ecx, 1
or rcx, r10
or rcx, rax
je 0x1400649e3
inc ebp
cmp ebp, dword [r14 + 0x20]
jl 0x140064210
and r12d, 1
mov rax, qword [rsp + 0x48]
mov dword [rax], r12d
mov ebp, 1
cmp byte [rsi + 0x28], 0
jne 0x140064a13
mov rax, qword [rsi + 8]
mov rcx, qword [rsi + 0x10]
lea rdx, [rcx - 1]
mov qword [rsi + 0x10], rdx
mov rax, qword [rax + rcx*8 - 8]
mov qword [rsi + 0x20], rax
mov eax, ebp
movaps xmm6, xmmword [rsp + 0x50]
add rsp, 0x68
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
xor ebp, ebp
cmp byte [rsi + 0x28], 0
jne 0x140064a13
jmp 0x1400649fa