// File: /workspace/github_cpp_makefile_star2_O1/deadshot465[P]OwoifyCpp/./owoify.h
// Function: std::deque<Word, std::allocator<Word>> Utility::interleaveArrays<Word>(std::deque<Word, std::allocator<Word>> const&, std::deque<Word, std::allocator<Word>> const&)
static std::deque<T> interleaveArrays(const std::deque<T>& a, const std::deque<T>& b)
	{
		auto arr = std::deque<T>();
		auto observed = a;
		auto other = b;

		while (observed.size() > 0)
		{
			arr.emplace_back(observed[0]);
			observed.pop_front();
			
			std::swap(observed, other);
		}

		if (other.size() > 0)
		{
			std::move(other.begin(), other.end(), std::back_inserter(arr));
		}

		return arr;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %rbx
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rdi)
movups %xmm0, 0x30(%rdi)
movups %xmm0, 0x20(%rdi)
movups %xmm0, 0x10(%rdi)
movups %xmm0, (%rdi)
xorl %esi, %esi
callq 0x104d2
leaq 0x50(%rsp), %rdi
movq %r15, %rsi
callq 0x10c08
movq %rsp, %rdi
movq %r14, %rsi
callq 0x10c08
movabsq $0x2e8ba2e8ba2e8ba3, %r13 # imm = 0x2E8BA2E8BA2E8BA3
movabsq $-0x2e8ba2e8ba2e8ba3, %r12 # imm = 0xD1745D1745D1745D
leaq 0x50(%rsp), %r14
movq %rsp, %r15
movabsq $-0x3333333333333333, %rbp # imm = 0xCCCCCCCCCCCCCCCD
movq 0x98(%rsp), %rax
movq %rax, %rcx
subq 0x78(%rsp), %rcx
sarq $0x3, %rcx
cmpq $0x1, %rax
adcq $-0x1, %rcx
leaq (%rcx,%rcx,4), %rax
movq 0x80(%rsp), %rcx
subq 0x88(%rsp), %rcx
sarq $0x3, %rcx
imulq %r13, %rcx
addq %rax, %rcx
movq 0x60(%rsp), %rsi
movq 0x70(%rsp), %rax
subq %rsi, %rax
sarq $0x3, %rax
imulq %r12, %rax
cmpq %rax, %rcx
je 0x102c7
movq %rsi, %rcx
subq 0x68(%rsp), %rcx
movq %rcx, %rax
sarq $0x3, %rax
imulq %r13, %rax
cmpq $0x5, %rax
jb 0x1025d
testq %rcx, %rcx
jle 0x1023d
mulq %rbp
shrq $0x2, %rdx
jmp 0x1024a
notq %rax
mulq %rbp
shrq $0x2, %rdx
notq %rdx
movq 0x78(%rsp), %rax
imulq $-0x1b8, %rdx, %rsi     # imm = 0xFE48
addq (%rax,%rdx,8), %rsi
addq %rcx, %rsi
movq %rbx, %rdi
callq 0x10ce4
movq %r14, %rdi
callq 0x10d2a
movups 0x50(%rsp), %xmm0
movups 0x60(%rsp), %xmm1
movups 0x70(%rsp), %xmm2
movups 0x80(%rsp), %xmm3
movaps %xmm0, 0xa0(%rsp)
movups 0x90(%rsp), %xmm0
movl $0xa, %ecx
movq %r14, %rdi
movq %r15, %rsi
rep  movsq (%rsi), %es:(%rdi)
movaps 0xa0(%rsp), %xmm4
movaps %xmm4, (%rsp)
movaps %xmm1, 0x10(%rsp)
movaps %xmm2, 0x20(%rsp)
movaps %xmm3, 0x30(%rsp)
movaps %xmm0, 0x40(%rsp)
jmp 0x101bd
movq 0x48(%rsp), %rax
movq 0x28(%rsp), %rcx
movq %rax, %rdx
subq %rcx, %rdx
sarq $0x3, %rdx
cmpq $0x1, %rax
adcq $-0x1, %rdx
leaq (%rdx,%rdx,4), %rsi
movq 0x30(%rsp), %rdx
movq 0x38(%rsp), %r8
movq %rdx, %rdi
subq %r8, %rdi
sarq $0x3, %rdi
imulq %r13, %rdi
addq %rsi, %rdi
movq 0x10(%rsp), %r9
movq 0x20(%rsp), %rsi
movq %rsi, %r10
subq %r9, %r10
sarq $0x3, %r10
imulq %r12, %r10
cmpq %r10, %rdi
je 0x1035f
movq 0x18(%rsp), %r10
movq 0x40(%rsp), %r11
leaq 0xa0(%rsp), %rdi
movq %r9, (%rdi)
movq %r10, 0x8(%rdi)
movq %rsi, 0x10(%rdi)
movq %rcx, 0x18(%rdi)
leaq 0xc8(%rsp), %rsi
movq %rdx, (%rsi)
movq %r8, 0x8(%rsi)
movq %r11, 0x10(%rsi)
movq %rax, 0x18(%rsi)
movq %rbx, %rdx
callq 0x1110c
movq %rsp, %rdi
callq 0x10488
leaq 0x50(%rsp), %rdi
callq 0x10488
movq %rbx, %rax
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x10392
movq %rax, %r14
jmp 0x1039d
movq %rax, %r14
jmp 0x103a7
movq %rax, %r14
movq %rsp, %rdi
callq 0x10488
leaq 0x50(%rsp), %rdi
callq 0x10488
movq %rbx, %rdi
callq 0x10488
movq %r14, %rdi
callq 0x5470
nop