// File: /workspace/github_cpp_makefile_star2_O3/miniplane[P]mintree/./BpTree.h
// Function: BpTree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2ul>::Node::merge_nodes(BpTree<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 2ul>::Node*, unsigned long)
void merge_nodes(Node* other, size_t pos_in_parent) { // always called from previous

			push_right(parent->keys[pos_in_parent]);

			size_t i;
			for (i = 0; i < other->elements; i++) {
				children[elements] = other->children[i];
				children[elements]->parent = this;
				push_right(other->keys[i]); // all values from next() are appended to this
			}

			children[elements] = other->children[i];
			children[elements]->parent = this;

			// parent is in inconsistent state here

			for (size_t i = pos_in_parent; i < parent->elements-1; i++) {// moves children from parent node
				parent->keys[i] = parent->keys[i+1];
				parent->children[i+1] = parent->children[i+2];
			}

			parent->elements--;
			other->elements = -1;
			delete other;
			parent->after_removal_from_inner();
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x78, %rsp
movq %rdx, %r15
movq %rsi, -0x30(%rbp)
movq %rdi, %rbx
callq 0x2150
movq (%rbx), %rax
movq %r15, %r13
shlq $0x5, %r13
leaq -0x88(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x38(%rax,%r13), %rsi
movq 0x40(%rax,%r13), %rdx
addq %rsi, %rdx
leaq -0x98(%rbp), %r12
movq %r12, %rdi
callq 0x346e
movq 0xb8(%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0xb8(%rbx)
shlq $0x5, %rax
movq %rbx, -0x38(%rbp)
leaq (%rbx,%rax), %rdi
addq $0x38, %rdi
movq %r12, %rsi
callq 0x20f0
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0x4a6e
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x21d0
movq %r13, -0x48(%rbp)
movq %r15, -0x50(%rbp)
movq -0x30(%rbp), %rax
cmpq $0x0, 0xb8(%rax)
movq -0x38(%rbp), %rcx
je 0x4b26
addq $0x38, %rcx
movq %rcx, -0x58(%rbp)
leaq -0x68(%rbp), %r15
leaq 0x40(%rax), %r14
xorl %r12d, %r12d
movq %r15, -0x40(%rbp)
movq -0x38(%rbp), %r13
movq 0x8(%rax,%r12,8), %rax
movq 0xb8(%r13), %rcx
movq %rax, 0x8(%r13,%rcx,8)
movq %r13, (%rax)
movq %r15, -0x78(%rbp)
movq -0x8(%r14), %rsi
movq (%r14), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %rbx
movq %rbx, %rdi
callq 0x346e
movq 0xb8(%r13), %rdi
leaq 0x1(%rdi), %rax
movq %rax, 0xb8(%r13)
shlq $0x5, %rdi
addq -0x58(%rbp), %rdi
movq %rbx, %rsi
callq 0x20f0
movq -0x78(%rbp), %rdi
cmpq %r15, %rdi
je 0x4b10
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x21d0
leaq -0x68(%rbp), %r15
incq %r12
addq $0x20, %r14
movq -0x30(%rbp), %rax
cmpq 0xb8(%rax), %r12
jb 0x4aa7
jmp 0x4b29
xorl %r12d, %r12d
movq 0x8(%rax,%r12,8), %rax
movq -0x38(%rbp), %rbx
movq 0xb8(%rbx), %rcx
movq %rax, 0x8(%rbx,%rcx,8)
movq %rbx, (%rax)
movq (%rbx), %rdi
movq 0xb8(%rdi), %rax
decq %rax
movq -0x50(%rbp), %r15
cmpq %r15, %rax
jbe 0x4b99
movq -0x48(%rbp), %r12
addq $0x38, %r12
leaq 0x1(%r15), %r14
leaq (%rdi,%r12), %rsi
addq $0x20, %rsi
addq %r12, %rdi
callq 0x20f0
movq (%rbx), %rax
movq 0x18(%rax,%r15,8), %rcx
movq %rcx, 0x10(%rax,%r15,8)
movq (%rbx), %rdi
movq 0xb8(%rdi), %rax
decq %rax
addq $0x20, %r12
movq %r14, %r15
cmpq %rax, %r14
jb 0x4b5f
movq %rax, 0xb8(%rdi)
movq -0x30(%rbp), %r14
movq $-0x1, 0xb8(%r14)
movq %r14, %rdi
callq 0x39fc
movl $0xc8, %esi
movq %r14, %rdi
callq 0x21d0
movq (%rbx), %rdi
callq 0x4654
addq $0x78, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq -0x98(%rbp), %rdi
movq %r14, -0x40(%rbp)
cmpq %r14, %rdi
jne 0x4bfc
jmp 0x4c0b
movq %rax, %rbx
movq -0x78(%rbp), %rdi
cmpq %r15, %rdi
je 0x4c0b
movq -0x40(%rbp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x21d0
movq %rbx, %rdi
callq 0x22b0
nop