// File: probonopd[P]decodeir/DecodeIR.cpp
// Function: Signal::tryQ1()
void Signal::tryQ1()
{
	// {38K,226}<2,-2|2,-3|2,-4|2,-5>(4,-2,D:8,F:6,M:2,C:4,~F:4,2,-356)+
	//

	if (nFrameL != 14)
		return;
	if ( sortOn.max2 >= pFrame[0] )
		return;
	if ( ! framed(sortBurst.max1*2) )
		return;
	double unit = (pFrame[0]+pFrame[1])*(1./6);
	if ( sortBurst.max1 > unit*6.6 )
		unit = sortBurst.max1 * (1./7);
	if ( sortBurst.min1 < unit*3.55 )
		return;
	if ( sortOn.max2 > unit * 2.5 || sortOn.max1 > unit * 4.5 )
	{
		return;
	}
	cleanup();
	double mult = 4/unit;
	do
	{
		pBit += 2;
		int x = (int)floor( (pBit[0]+pBit[1])*mult + (2.5-16) );
		if ( ! ( x & 3 ) )
			return;
		cBits[nBit>>3] |= (x>>2) << (nBit & 7);
		nBit += 2;
	
	}   while ( nBit < 24 );

	sprintf(pProtocol, "?1-%02X-%02X-%02X", cBits[0], cBits[1], cBits[2]);

	*pDevice = cBits[0];
	*pSubDevice = getLsb(14,2);
	*pOBC = getLsb(8,6);
	sprintf(pMisc, "C=%X", getLsb(16,4)^getLsb(8,4) );

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpl $0xe, 0x48(%rax)
je 0x7b0f
jmp 0x7dbe
movq -0x28(%rbp), %rax
movss 0x188(%rax), %xmm0
movq 0x38(%rax), %rax
ucomiss (%rax), %xmm0
jb 0x7b29
jmp 0x7dbe
movq -0x28(%rbp), %rdi
movss 0x124df(%rip), %xmm0    # 0x1a014
mulss 0x1dc(%rdi), %xmm0
callq 0x18840
cmpl $0x0, %eax
jne 0x7b4c
jmp 0x7dbe
movq -0x28(%rbp), %rax
movq 0x38(%rax), %rcx
movss (%rcx), %xmm0
movq 0x38(%rax), %rcx
addss 0x4(%rcx), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x1274b(%rip), %xmm1    # 0x1a2b8
mulsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movss 0x1dc(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x12726(%rip), %xmm1    # 0x1a2b0
mulsd -0x10(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x7bb6
movq -0x28(%rbp), %rax
movss 0x1dc(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x12713(%rip), %xmm1    # 0x1a2c0
mulsd %xmm1, %xmm0
movsd %xmm0, -0x10(%rbp)
movq -0x28(%rbp), %rax
movss 0x1d0(%rax), %xmm0
cvtss2sd %xmm0, %xmm1
movsd 0x126fa(%rip), %xmm0    # 0x1a2c8
mulsd -0x10(%rbp), %xmm0
ucomisd %xmm1, %xmm0
jbe 0x7bde
jmp 0x7dbe
movq -0x28(%rbp), %rax
movss 0x188(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x12692(%rip), %xmm1    # 0x1a288
mulsd -0x10(%rbp), %xmm1
ucomisd %xmm1, %xmm0
ja 0x7c24
movq -0x28(%rbp), %rax
movss 0x184(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd 0x12667(%rip), %xmm1    # 0x1a280
mulsd -0x10(%rbp), %xmm1
ucomisd %xmm1, %xmm0
jbe 0x7c29
jmp 0x7dbe
movq -0x28(%rbp), %rdi
callq 0x16180
movsd 0x1260e(%rip), %xmm0    # 0x1a248
divsd -0x10(%rbp), %xmm0
movsd %xmm0, -0x18(%rbp)
movq -0x28(%rbp), %rax
movq 0xc8(%rax), %rcx
addq $0x8, %rcx
movq %rcx, 0xc8(%rax)
movq 0xc8(%rax), %rcx
movss (%rcx), %xmm0
movq 0xc8(%rax), %rax
addss 0x4(%rax), %xmm0
cvtss2sd %xmm0, %xmm0
movsd -0x18(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x1264a(%rip), %xmm1    # 0x1a2d0
addsd %xmm1, %xmm0
callq 0x2200
cvttsd2si %xmm0, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
andl $0x3, %eax
cmpl $0x0, %eax
jne 0x7ca6
jmp 0x7dbe
movq -0x28(%rbp), %rax
movl -0x1c(%rbp), %esi
sarl $0x2, %esi
movl 0xc0(%rax), %ecx
andl $0x7, %ecx
shll %cl, %esi
movl 0xc0(%rax), %ecx
sarl $0x3, %ecx
movslq %ecx, %rcx
movzbl 0xa0(%rax,%rcx), %edx
orl %esi, %edx
movb %dl, 0xa0(%rax,%rcx)
movl 0xc0(%rax), %ecx
addl $0x2, %ecx
movl %ecx, 0xc0(%rax)
movq -0x28(%rbp), %rax
cmpl $0x18, 0xc0(%rax)
jl 0x7c44
movq -0x28(%rbp), %rax
movq 0x148(%rax), %rdi
movzbl 0xa0(%rax), %edx
movzbl 0xa1(%rax), %ecx
movzbl 0xa2(%rax), %r8d
leaq 0x133fa(%rip), %rsi     # 0x1b11a
movb $0x0, %al
callq 0x2060
movq -0x28(%rbp), %rdi
movzbl 0xa0(%rdi), %ecx
movq 0x160(%rdi), %rax
movl %ecx, (%rax)
movl $0xe, %esi
movl $0x2, %edx
callq 0x16030
movq -0x28(%rbp), %rdi
movl %eax, %ecx
movq 0x168(%rdi), %rax
movl %ecx, (%rax)
movl $0x8, %esi
movl $0x6, %edx
callq 0x16030
movq -0x28(%rbp), %rdi
movl %eax, %ecx
movq 0x170(%rdi), %rax
movl %ecx, (%rax)
movq 0x150(%rdi), %rax
movq %rax, -0x30(%rbp)
movl $0x10, %esi
movl $0x4, %edx
callq 0x16030
movq -0x28(%rbp), %rdi
movl %eax, -0x34(%rbp)
movl $0x8, %esi
movl $0x4, %edx
callq 0x16030
movl -0x34(%rbp), %edx
movq -0x30(%rbp), %rdi
xorl %eax, %edx
leaq 0x13375(%rip), %rsi     # 0x1b12c
movb $0x0, %al
callq 0x2060
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)