// File: kebwi[P]Trifid/src/./ImageProcs.h
// Function: NoiseParam::selfCheck()
void selfCheck()
	{
		assert(label_.length() > 0);
		assert(lux_ > 0);
		assert(minReflectance_ >= 0);
		assert(maxReflectance_ > minReflectance_ && maxReflectance_ <= 1);
		assert(temperatureC_ >= -100 && temperatureC_ <= 50);
		//assert(focalLengthMM_ > 0);
		assert(pixelPitchMicrons_ > 0);
		assert(fullWellCapacity_ >= 1);
		assert(readNoise_ > 0 && readNoise_ < fullWellCapacity_);
		//Assert that all bias pixels are >= 0 and <= 1
		assert(ampVarFactor_ >= 0);
		assert(darkCurrentRoomTempElectronsPerPixPerSec_ >= 0);
		assert(hotPixelFactor_ >= 0);
		assert(quantumEfficiency_[R] >= 0 && quantumEfficiency_[R] <= 1);
		assert(quantumEfficiency_[G] >= 0 && quantumEfficiency_[G] <= 1);
		assert(quantumEfficiency_[B] >= 0 && quantumEfficiency_[B] <= 1);
		assert(ampGlowElectronsPerPixPerSec_ >= 0);
		assert(exposureSecs_ > 0);
		assert(ampGain_ >= 0 || ampGain_ == -1);
		assert(focalRatio_ > 0);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x10(%rbp)
callq 0x4550
cmpq $0x0, %rax
jbe 0xe791
jmp 0xe7b0
leaq 0x3b560(%rip), %rdi     # 0x49cf8
leaq 0x3b56d(%rip), %rsi     # 0x49d0c
movl $0xde, %edx
leaq 0x3b570(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xe7c4
jmp 0xe7e3
leaq 0x3b56d(%rip), %rdi     # 0x49d38
leaq 0x3b53a(%rip), %rsi     # 0x49d0c
movl $0xdf, %edx
leaq 0x3b53d(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x28(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xe7f7
jmp 0xe816
leaq 0x3b543(%rip), %rdi     # 0x49d41
leaq 0x3b507(%rip), %rsi     # 0x49d0c
movl $0xe0, %edx
leaq 0x3b50a(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rcx
movsd 0x30(%rcx), %xmm0
xorl %eax, %eax
ucomisd 0x28(%rcx), %xmm0
movb %al, -0x11(%rbp)
jbe 0xe842
movq -0x10(%rbp), %rax
movsd 0x3a7e9(%rip), %xmm0    # 0x49020
ucomisd 0x30(%rax), %xmm0
setae %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
testb $0x1, %al
jne 0xe84b
jmp 0xe84d
jmp 0xe86c
leaq 0x3b502(%rip), %rdi     # 0x49d56
leaq 0x3b4b1(%rip), %rsi     # 0x49d0c
movl $0xe1, %edx
leaq 0x3b4b4(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x38(%rax), %xmm0
xorl %eax, %eax
movsd 0x3a7a9(%rip), %xmm1    # 0x49028
ucomisd %xmm1, %xmm0
movb %al, -0x12(%rbp)
jb 0xe89f
movq -0x10(%rbp), %rax
movsd 0x3a79c(%rip), %xmm0    # 0x49030
ucomisd 0x38(%rax), %xmm0
setae %al
movb %al, -0x12(%rbp)
movb -0x12(%rbp), %al
testb $0x1, %al
jne 0xe8a8
jmp 0xe8aa
jmp 0xe8c9
leaq 0x3b4df(%rip), %rdi     # 0x49d90
leaq 0x3b454(%rip), %rsi     # 0x49d0c
movl $0xe2, %edx
leaq 0x3b457(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x40(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xe8dd
jmp 0xe8fc
leaq 0x3b4d9(%rip), %rdi     # 0x49dbd
leaq 0x3b421(%rip), %rsi     # 0x49d0c
movl $0xe4, %edx
leaq 0x3b424(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
cmpq $0x1, 0x48(%rax)
jb 0xe909
jmp 0xe928
leaq 0x3b4c4(%rip), %rdi     # 0x49dd4
leaq 0x3b3f5(%rip), %rsi     # 0x49d0c
movl $0xe5, %edx
leaq 0x3b3f8(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, -0x13(%rbp)
jbe 0xe979
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm1
movq 0x48(%rax), %xmm0
movaps 0x3a6fc(%rip), %xmm2    # 0x49050
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
movapd 0x3a700(%rip), %xmm2    # 0x49060
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
ucomisd %xmm1, %xmm0
seta %al
movb %al, -0x13(%rbp)
movb -0x13(%rbp), %al
testb $0x1, %al
jne 0xe982
jmp 0xe984
jmp 0xe9a3
leaq 0x3b460(%rip), %rdi     # 0x49deb
leaq 0x3b37a(%rip), %rsi     # 0x49d0c
movl $0xe6, %edx
leaq 0x3b37d(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x58(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xe9b7
jmp 0xe9d6
leaq 0x3b45e(%rip), %rdi     # 0x49e1c
leaq 0x3b347(%rip), %rsi     # 0x49d0c
movl $0xe8, %edx
leaq 0x3b34a(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x60(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xe9ea
jmp 0xea09
leaq 0x3b43e(%rip), %rdi     # 0x49e2f
leaq 0x3b314(%rip), %rsi     # 0x49d0c
movl $0xe9, %edx
leaq 0x3b317(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x68(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xea1d
jmp 0xea3c
leaq 0x3b43a(%rip), %rdi     # 0x49e5e
leaq 0x3b2e1(%rip), %rsi     # 0x49d0c
movl $0xea, %edx
leaq 0x3b2e4(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x78(%rax), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, -0x14(%rbp)
jb 0xea6a
movq -0x10(%rbp), %rax
movsd 0x3a5c1(%rip), %xmm0    # 0x49020
ucomisd 0x78(%rax), %xmm0
setae %al
movb %al, -0x14(%rbp)
movb -0x14(%rbp), %al
testb $0x1, %al
jne 0xea73
jmp 0xea75
jmp 0xea94
leaq 0x3b3f7(%rip), %rdi     # 0x49e73
leaq 0x3b289(%rip), %rsi     # 0x49d0c
movl $0xeb, %edx
leaq 0x3b28c(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x80(%rax), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, -0x15(%rbp)
jb 0xeac8
movq -0x10(%rbp), %rax
movsd 0x3a566(%rip), %xmm0    # 0x49020
ucomisd 0x80(%rax), %xmm0
setae %al
movb %al, -0x15(%rbp)
movb -0x15(%rbp), %al
testb $0x1, %al
jne 0xead1
jmp 0xead3
jmp 0xeaf2
leaq 0x3b3d2(%rip), %rdi     # 0x49eac
leaq 0x3b22b(%rip), %rsi     # 0x49d0c
movl $0xec, %edx
leaq 0x3b22e(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x88(%rax), %xmm0
xorl %eax, %eax
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, -0x16(%rbp)
jb 0xeb26
movq -0x10(%rbp), %rax
movsd 0x3a508(%rip), %xmm0    # 0x49020
ucomisd 0x88(%rax), %xmm0
setae %al
movb %al, -0x16(%rbp)
movb -0x16(%rbp), %al
testb $0x1, %al
jne 0xeb2f
jmp 0xeb31
jmp 0xeb50
leaq 0x3b3ad(%rip), %rdi     # 0x49ee5
leaq 0x3b1cd(%rip), %rsi     # 0x49d0c
movl $0xed, %edx
leaq 0x3b1d0(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x90(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jb 0xeb67
jmp 0xeb86
leaq 0x3b3b0(%rip), %rdi     # 0x49f1e
leaq 0x3b197(%rip), %rsi     # 0x49d0c
movl $0xee, %edx
leaq 0x3b19a(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0x98(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xeb9d
jmp 0xebbc
leaq 0x3b39d(%rip), %rdi     # 0x49f41
leaq 0x3b161(%rip), %rsi     # 0x49d0c
movl $0xef, %edx
leaq 0x3b164(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0xa0(%rax), %xmm0
movb $0x1, %al
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
movb %al, -0x17(%rbp)
jae 0xebf9
movq -0x10(%rbp), %rax
movsd 0xa0(%rax), %xmm0
movsd 0x3a44e(%rip), %xmm1    # 0x49038
ucomisd %xmm1, %xmm0
sete %al
setnp %cl
andb %cl, %al
movb %al, -0x17(%rbp)
movb -0x17(%rbp), %al
testb $0x1, %al
jne 0xec02
jmp 0xec04
jmp 0xec23
leaq 0x3b348(%rip), %rdi     # 0x49f53
leaq 0x3b0fa(%rip), %rsi     # 0x49d0c
movl $0xf0, %edx
leaq 0x3b0fd(%rip), %rcx     # 0x49d1b
callq 0x4240
movq -0x10(%rbp), %rax
movsd 0xa8(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jbe 0xec3a
jmp 0xec59
leaq 0x3b332(%rip), %rdi     # 0x49f73
leaq 0x3b0c4(%rip), %rsi     # 0x49d0c
movl $0xf1, %edx
leaq 0x3b0c7(%rip), %rcx     # 0x49d1b
callq 0x4240
addq $0x20, %rsp
popq %rbp
retq
nop