// File: CodyNault[P]Image-Filter-Dataflow/src/filter.cpp
// Function: Filter::Update()
void Filter::Update()
{
	updateSourceRefs(this);
	char msg[128];
	if(inputImg1 != NULL){
        	sprintf(msg, "%s: about to update input1", SourceName());
        	Logger::LogEvent(msg);
		inputImg1->Update();
        	sprintf(msg, "%s: done updating input1", SourceName());
        	Logger::LogEvent(msg);
	}
	if(inputImg2 != NULL){
        	sprintf(msg, "%s: about to update input2", SourceName());
        	Logger::LogEvent(msg);
		inputImg2->Update();
        	sprintf(msg, "%s: done updating input2", SourceName());
        	Logger::LogEvent(msg);
	}
	sprintf(msg, "%s: about to execute", SourceName());
	Logger::LogEvent(msg);
	try{
		Execute();
	}catch(DataFlowException& except){
        	sprintf(msg, "Throwing exception: (%s): %s", SourceName(), except.what());
        	Logger::LogEvent(msg);
		throw except;
	}
	Source::removeFromSourceRefs(this);
	sprintf(msg, "%s: done executing", SourceName());
	Logger::LogEvent(msg);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xb0(%rbp)
callq 0x4340
movq -0xb0(%rbp), %rax
cmpq $0x0, 0x30(%rax)
je 0x81cf
movq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq (%rdi), %rax
callq *0x8(%rax)
movq -0xc0(%rbp), %rdi
movq %rax, %rdx
leaq 0x121e(%rip), %rsi      # 0x938b
movb $0x0, %al
callq 0x3050
leaq -0x90(%rbp), %rdi
callq 0x8470
movq -0xb0(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x3f00
movq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq (%rdi), %rax
callq *0x8(%rax)
movq -0xb8(%rbp), %rdi
movq %rax, %rdx
leaq 0x11ea(%rip), %rsi      # 0x93a6
movb $0x0, %al
callq 0x3050
leaq -0x90(%rbp), %rdi
callq 0x8470
movq -0xb0(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x826f
movq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq (%rdi), %rax
callq *0x8(%rax)
movq -0xd0(%rbp), %rdi
movq %rax, %rdx
leaq 0x11b2(%rip), %rsi      # 0x93bf
movb $0x0, %al
callq 0x3050
leaq -0x90(%rbp), %rdi
callq 0x8470
movq -0xb0(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x3f00
movq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq (%rdi), %rax
callq *0x8(%rax)
movq -0xc8(%rbp), %rdi
movq %rax, %rdx
leaq 0x117e(%rip), %rsi      # 0x93da
movb $0x0, %al
callq 0x3050
leaq -0x90(%rbp), %rdi
callq 0x8470
movq -0xb0(%rbp), %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
callq *%rax
movq %rax, %rdx
leaq 0xe3b(%rip), %rsi       # 0x90c4
xorl %eax, %eax
leaq -0x90(%rbp), %rdi
movq %rdi, -0xd8(%rbp)
callq 0x3050
movq -0xd8(%rbp), %rdi
callq 0x8470
movq -0xb0(%rbp), %rdi
movq (%rdi), %rax
movq (%rax), %rax
callq *%rax
jmp 0x82bb
jmp 0x83b6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
movl -0x9c(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0x840a
movq -0x98(%rbp), %rdi
callq 0x3080
movq -0xb0(%rbp), %rdi
movq %rax, -0xa8(%rbp)
leaq -0x90(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq (%rdi), %rax
movq 0x8(%rax), %rax
callq *%rax
movq %rax, -0xe0(%rbp)
jmp 0x831f
movq -0xa8(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
callq *%rax
movq -0xe8(%rbp), %rdi
movq -0xe0(%rbp), %rdx
movq %rax, %rcx
leaq 0xd92(%rip), %rsi       # 0x90d9
xorl %eax, %eax
callq 0x3050
leaq -0x90(%rbp), %rdi
callq 0x8470
jmp 0x835c
movl $0x408, %edi            # imm = 0x408
callq 0x30a0
movq %rax, %rdi
movq %rdi, -0xf0(%rbp)
movq -0xa8(%rbp), %rsi
callq 0x5d00
movq -0xf0(%rbp), %rdi
leaq 0x44fe(%rip), %rsi      # 0xc888
leaq -0x4101(%rip), %rdx     # 0x4290
callq 0x31c0
jmp 0x841e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x98(%rbp)
movl %eax, -0x9c(%rbp)
callq 0x31b0
jmp 0x83b4
jmp 0x840a
movq -0xb0(%rbp), %rdi
callq 0x4420
movq -0xb0(%rbp), %rdi
leaq -0x90(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq (%rdi), %rax
callq *0x8(%rax)
movq -0xf8(%rbp), %rdi
movq %rax, %rdx
leaq 0xd08(%rip), %rsi       # 0x90f6
movb $0x0, %al
callq 0x3050
leaq -0x90(%rbp), %rdi
callq 0x8470
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0x98(%rbp), %rdi
callq 0x31d0
movq %rax, %rdi
callq 0x4670
nop