// File: yogesh1q2w[P]Dynamic-Graph-Algorithms/MST.cpp
// Function: MST::remove_edge_level(int, int, int, bool)
void MST::remove_edge_level(int u, int v, int level, bool is_treeedge) {
	if(u > v)
		swap(u, v);
	pair <int ,int> p = make_pair(u, v);
	edge_level[p].erase(edge_level[p].find(level));

	if(is_treeedge) {
		treeadj[level][u].erase(treeadj[level][u].find(make_pair(weight[make_pair(u,v)],v)));
		treeadj[level][v].erase(treeadj[level][v].find(make_pair(weight[make_pair(u,v)],u)));
	}
	else {
		adj[level][u].erase(adj[level][u].find(make_pair(weight[make_pair(u,v)],v)));
		adj[level][v].erase(adj[level][v].find(make_pair(weight[make_pair(u,v)],u)));
	}

	min_spf[level].update_adjacent(u, -1, is_treeedge);
	min_spf[level].update_adjacent(v, -1, is_treeedge);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
andb $0x1, %al
movb %al, -0x15(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0xb8(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jle 0x13720
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0xa9b0
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0xb8(%rbp), %rdi
movq %rax, -0x20(%rbp)
addq $0xe8, %rdi
leaq -0x20(%rbp), %rsi
callq 0xaaf0
movq -0xb8(%rbp), %rdi
movq %rax, -0xc0(%rbp)
addq $0xe8, %rdi
leaq -0x20(%rbp), %rsi
callq 0xaaf0
movq %rax, %rdi
leaq -0x14(%rbp), %rsi
callq 0xab60
movq -0xc0(%rbp), %rdi
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rsi
callq 0xab20
movq %rax, -0x30(%rbp)
testb $0x1, -0x15(%rbp)
je 0x138f3
movq -0xb8(%rbp), %rdi
addq $0xd0, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x14a30
movq -0xb8(%rbp), %rdi
movq %rax, -0xd8(%rbp)
addq $0xd0, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x14a30
movq %rax, -0xe0(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0xb8(%rbp), %rdi
movq %rax, -0x48(%rbp)
leaq -0x48(%rbp), %rsi
callq 0x14aa0
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0xe0(%rbp), %rdi
movq %rax, -0x40(%rbp)
leaq -0x40(%rbp), %rsi
callq 0x14b10
movq -0xd8(%rbp), %rdi
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rsi
callq 0x14ad0
movq -0xb8(%rbp), %rdi
movq %rax, -0x50(%rbp)
addq $0xd0, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x14a30
movq -0xb8(%rbp), %rdi
movq %rax, -0xc8(%rbp)
addq $0xd0, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x14a30
movq %rax, -0xd0(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0xb8(%rbp), %rdi
movq %rax, -0x68(%rbp)
leaq -0x68(%rbp), %rsi
callq 0x14aa0
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x3520
movq -0xd0(%rbp), %rdi
movq %rax, -0x60(%rbp)
leaq -0x60(%rbp), %rsi
callq 0x14b10
movq -0xc8(%rbp), %rdi
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
callq 0x14ad0
movq %rax, -0x70(%rbp)
jmp 0x13a6b
movq -0xb8(%rbp), %rdi
addq $0xb8, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x14a30
movq -0xb8(%rbp), %rdi
movq %rax, -0xf8(%rbp)
addq $0xb8, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x14a30
movq %rax, -0x100(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0xb8(%rbp), %rdi
movq %rax, -0x88(%rbp)
leaq -0x88(%rbp), %rsi
callq 0x14aa0
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0x100(%rbp), %rdi
movq %rax, -0x80(%rbp)
leaq -0x80(%rbp), %rsi
callq 0x14b10
movq -0xf8(%rbp), %rdi
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rsi
callq 0x14ad0
movq -0xb8(%rbp), %rdi
movq %rax, -0x90(%rbp)
addq $0xb8, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x14a30
movq -0xb8(%rbp), %rdi
movq %rax, -0xe8(%rbp)
addq $0xb8, %rdi
movslq -0x14(%rbp), %rsi
callq 0x14a10
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x14a30
movq %rax, -0xf0(%rbp)
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0xb8(%rbp), %rdi
movq %rax, -0xa8(%rbp)
leaq -0xa8(%rbp), %rsi
callq 0x14aa0
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0x3520
movq -0xf0(%rbp), %rdi
movq %rax, -0xa0(%rbp)
leaq -0xa0(%rbp), %rsi
callq 0x14b10
movq -0xe8(%rbp), %rdi
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rsi
callq 0x14ad0
movq %rax, -0xb0(%rbp)
movq -0xb8(%rbp), %rdi
addq $0x68, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaad0
movq %rax, %rdi
movl -0xc(%rbp), %esi
movb -0x15(%rbp), %al
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
andb $0x1, %al
movzbl %al, %ecx
callq 0x3420
movq -0xb8(%rbp), %rdi
addq $0x68, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaad0
movq %rax, %rdi
movl -0x10(%rbp), %esi
movb -0x15(%rbp), %al
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
andb $0x1, %al
movzbl %al, %ecx
callq 0x3420
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
nopl (%rax)