// File: cjc12[P]ezSTL/src/../include/queue.h
// Function: ezSTL::priority_queue<int, ezSTL::less<int>>::pop()
void pop() {
			size_type i = 0;
			base_vector[0] = base_vector[size() - 1];
			base_vector.pop_back();
			// percolateDown
			// if it has both left child and right child
			while (i * 2 + 2 < size()) {
				if (cmp(base_vector[i * 2 + 1], base_vector[i]) &&
					!cmp(base_vector[i * 2 + 2], base_vector[i * 2 + 1])) {
					ezSTL::swap(base_vector[i], base_vector[i * 2 + 1]);
					i = i * 2 + 1;
				}
				else if (cmp(base_vector[i * 2 + 2], base_vector[i]) &&
					!cmp(base_vector[i * 2 + 1], base_vector[i * 2 + 2])) {
					ezSTL::swap(base_vector[i], base_vector[i * 2 + 2]);
					i = i * 2 + 2;
				}
				else break;
			}
			// if it has only left child
			if (i * 2 + 1 < size()) {
				if (cmp(base_vector[i * 2 + 1], base_vector[i]))
					ezSTL::swap(base_vector[i], base_vector[i * 2 + 1]);
			}
		}

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x90(%rsp)
movq 0x90(%rsp), %rdi
movq %rdi, 0x80(%rsp)
movl $0x0, 0x8c(%rsp)
callq 0x11fb0
movq 0x80(%rsp), %rdi
movl %eax, %esi
subl $0x1, %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movl (%rax), %eax
movl %eax, 0x7c(%rsp)
xorl %esi, %esi
callq 0x11a80
movl 0x7c(%rsp), %ecx
movq 0x80(%rsp), %rdi
movl %ecx, (%rax)
callq 0xb550
movq 0x80(%rsp), %rdi
movl 0x8c(%rsp), %eax
shll %eax
addl $0x2, %eax
movl %eax, 0x78(%rsp)
callq 0x11fb0
movl %eax, %ecx
movl 0x78(%rsp), %eax
cmpl %ecx, %eax
jae 0xcefc
movq 0x80(%rsp), %rdi
movq %rdi, %rax
addq $0x18, %rax
movq %rax, 0x68(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x1, %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movq %rax, 0x70(%rsp)
movl 0x8c(%rsp), %esi
callq 0x11a80
movq 0x68(%rsp), %rdi
movq 0x70(%rsp), %rsi
movq %rax, %rdx
callq 0x11ff0
testb $0x1, %al
jne 0xcd3d
jmp 0xcded
movq 0x80(%rsp), %rdi
movq %rdi, %rax
addq $0x18, %rax
movq %rax, 0x58(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x2, %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movq %rax, 0x60(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x1, %esi
callq 0x11a80
movq 0x58(%rsp), %rdi
movq 0x60(%rsp), %rsi
movq %rax, %rdx
callq 0x11ff0
testb $0x1, %al
jne 0xcded
movq 0x80(%rsp), %rdi
movl 0x8c(%rsp), %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movq %rax, 0x50(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x1, %esi
callq 0x11a80
movq 0x50(%rsp), %rdi
movq %rax, %rsi
callq 0x12020
movl 0x8c(%rsp), %eax
shll %eax
addl $0x1, %eax
movl %eax, 0x8c(%rsp)
jmp 0xcef7
movq 0x80(%rsp), %rdi
movq %rdi, %rax
addq $0x18, %rax
movq %rax, 0x40(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x2, %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movq %rax, 0x48(%rsp)
movl 0x8c(%rsp), %esi
callq 0x11a80
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rsi
movq %rax, %rdx
callq 0x11ff0
testb $0x1, %al
jne 0xce46
jmp 0xcef3
movq 0x80(%rsp), %rdi
movq %rdi, %rax
addq $0x18, %rax
movq %rax, 0x30(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x1, %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movq %rax, 0x38(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x2, %esi
callq 0x11a80
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rsi
movq %rax, %rdx
callq 0x11ff0
testb $0x1, %al
jne 0xcef3
movq 0x80(%rsp), %rdi
movl 0x8c(%rsp), %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movq %rax, 0x28(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x2, %esi
callq 0x11a80
movq 0x28(%rsp), %rdi
movq %rax, %rsi
callq 0x12020
movl 0x8c(%rsp), %eax
shll %eax
addl $0x2, %eax
movl %eax, 0x8c(%rsp)
jmp 0xcef5
jmp 0xcefc
jmp 0xcef7
jmp 0xccb9
movq 0x80(%rsp), %rdi
movl 0x8c(%rsp), %eax
shll %eax
addl $0x1, %eax
movl %eax, 0x24(%rsp)
callq 0x11fb0
movl %eax, %ecx
movl 0x24(%rsp), %eax
cmpl %ecx, %eax
jae 0xcfbe
movq 0x80(%rsp), %rdi
movq %rdi, %rax
addq $0x18, %rax
movq %rax, 0x10(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x1, %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movq %rax, 0x18(%rsp)
movl 0x8c(%rsp), %esi
callq 0x11a80
movq 0x10(%rsp), %rdi
movq 0x18(%rsp), %rsi
movq %rax, %rdx
callq 0x11ff0
testb $0x1, %al
jne 0xcf7d
jmp 0xcfbc
movq 0x80(%rsp), %rdi
movl 0x8c(%rsp), %esi
callq 0x11a80
movq 0x80(%rsp), %rdi
movq %rax, 0x8(%rsp)
movl 0x8c(%rsp), %esi
shll %esi
addl $0x1, %esi
callq 0x11a80
movq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x12020
jmp 0xcfbe
addq $0x98, %rsp
retq
nopw %cs:(%rax,%rax)