// File: /workspace/github_c_makefile_star2_O0/pwelke[P]GraphMiningTools/intSet.c
// Function: addIntSortedNoDuplicates
void addIntSortedNoDuplicates(struct IntSet* s, int i) {
	if (s->last != NULL) {
		if (s->last->value == i) {
			return;
		}
		if (s->last->value < i) {
			struct IntElement* newElement = getIntElement();
			newElement->value = i;
			s->last->next = newElement;
			s->last = newElement;
			s->size += 1;
			return;
		}
		if (s->last->value > i) {
			if (s->first->value == i) {
				return;
			}
			if (s->first->value > i) {
				struct IntElement* newElement = getIntElement();
				newElement->value = i;
				newElement->next = s->first;
				s->first = newElement;
				s->size += 1;
				return;
			}
			if (s->first->value < i) {
				for (struct IntElement* e=s->first; e!=NULL; e=e->next) {
					if (e->next->value == i) {
						return;
					}
					if (e->next->value > i) {
						struct IntElement* newElement = getIntElement();
						newElement->value = i;
						newElement->next = e->next;
						e->next = newElement;
						s->size += 1;
						return;
					}
				}
			}
		}
	} else {
		struct IntElement* newElement = getIntElement();
		newElement->value = i;
		s->first = s->last = newElement;
		s->size += 1;
		return;
	}
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x30(%rsp)
movl %esi, 0x2c(%rsp)
movq 0x30(%rsp), %rax
cmpq $0x0, 0x8(%rax)
je 0xe289
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jne 0xe0f3
jmp 0xe2c2
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jge 0xe14f
callq 0xdc50
movq %rax, 0x20(%rsp)
movl 0x2c(%rsp), %ecx
movq 0x20(%rsp), %rax
movl %ecx, (%rax)
movq 0x20(%rsp), %rcx
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x8(%rax)
movq 0x20(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x18(%rax)
jmp 0xe2c2
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jle 0xe287
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jne 0xe179
jmp 0xe2c2
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jle 0xe1d2
callq 0xdc50
movq %rax, 0x18(%rsp)
movl 0x2c(%rsp), %ecx
movq 0x18(%rsp), %rax
movl %ecx, (%rax)
movq 0x30(%rsp), %rax
movq (%rax), %rcx
movq 0x18(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x18(%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x18(%rax)
jmp 0xe2c2
movq 0x30(%rsp), %rax
movq (%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jge 0xe285
movq 0x30(%rsp), %rax
movq (%rax), %rax
movq %rax, 0x10(%rsp)
cmpq $0x0, 0x10(%rsp)
je 0xe283
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jne 0xe215
jmp 0xe2c2
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movl (%rax), %eax
cmpl 0x2c(%rsp), %eax
jle 0xe26e
callq 0xdc50
movq %rax, 0x8(%rsp)
movl 0x2c(%rsp), %ecx
movq 0x8(%rsp), %rax
movl %ecx, (%rax)
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x8(%rsp), %rcx
movq 0x10(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x18(%rax)
jmp 0xe2c2
jmp 0xe270
movq 0x10(%rsp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x10(%rsp)
jmp 0xe1f3
jmp 0xe285
jmp 0xe287
jmp 0xe2c2
callq 0xdc50
movq %rax, (%rsp)
movl 0x2c(%rsp), %ecx
movq (%rsp), %rax
movl %ecx, (%rax)
movq (%rsp), %rcx
movq 0x30(%rsp), %rax
movq %rcx, 0x8(%rax)
movq 0x30(%rsp), %rax
movq %rcx, (%rax)
movq 0x30(%rsp), %rax
movq 0x18(%rax), %rcx
addq $0x1, %rcx
movq %rcx, 0x18(%rax)
addq $0x38, %rsp
retq
nopw (%rax,%rax)