// File: yogesh1q2w[P]Dynamic-Graph-Algorithms/connectivity.cpp
// Function: connectivity::remove_edge_level(int, int, int, bool)
void connectivity::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(v));
		treeadj[level][v].erase(treeadj[level][v].find(u));
	}
	else {
		adj[level][u].erase(adj[level][u].find(v));
		adj[level][v].erase(adj[level][v].find(u));
	}

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
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, -0x78(%rbp)
movl -0xc(%rbp), %eax
cmpl -0x10(%rbp), %eax
jle 0x9f8d
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0xa9b0
leaq -0xc(%rbp), %rdi
leaq -0x10(%rbp), %rsi
callq 0x3520
movq -0x78(%rbp), %rdi
movq %rax, -0x20(%rbp)
addq $0x78, %rdi
leaq -0x20(%rbp), %rsi
callq 0xaaf0
movq -0x78(%rbp), %rdi
movq %rax, -0x80(%rbp)
addq $0x78, %rdi
leaq -0x20(%rbp), %rsi
callq 0xaaf0
movq %rax, %rdi
leaq -0x14(%rbp), %rsi
callq 0xab60
movq -0x80(%rbp), %rdi
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rsi
callq 0xab20
movq %rax, -0x30(%rbp)
testb $0x1, -0x15(%rbp)
je 0xa0be
movq -0x78(%rbp), %rdi
addq $0x60, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaa50
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0xaa70
movq -0x78(%rbp), %rdi
movq %rax, -0x90(%rbp)
addq $0x60, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaa50
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0xaa70
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0xabe0
movq -0x90(%rbp), %rdi
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rsi
callq 0xaba0
movq -0x78(%rbp), %rdi
movq %rax, -0x40(%rbp)
addq $0x60, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaa50
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0xaa70
movq -0x78(%rbp), %rdi
movq %rax, -0x88(%rbp)
addq $0x60, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaa50
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0xaa70
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0xabe0
movq -0x88(%rbp), %rdi
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rsi
callq 0xaba0
movq %rax, -0x50(%rbp)
jmp 0xa188
movq -0x78(%rbp), %rdi
addq $0x48, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaa50
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0xaa70
movq -0x78(%rbp), %rdi
movq %rax, -0xa0(%rbp)
addq $0x48, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaa50
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0xaa70
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0xabe0
movq -0xa0(%rbp), %rdi
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
callq 0xaba0
movq -0x78(%rbp), %rdi
movq %rax, -0x60(%rbp)
addq $0x48, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaa50
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0xaa70
movq -0x78(%rbp), %rdi
movq %rax, -0x98(%rbp)
addq $0x48, %rdi
movslq -0x14(%rbp), %rsi
callq 0xaa50
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0xaa70
movq %rax, %rdi
leaq -0xc(%rbp), %rsi
callq 0xabe0
movq -0x98(%rbp), %rdi
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rsi
callq 0xaba0
movq %rax, -0x70(%rbp)
movq -0x78(%rbp), %rdi
addq $0x30, %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 -0x78(%rbp), %rdi
addq $0x30, %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 $0xa0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)