// File: NichtJens[P]lmf2txt/LMF_IO.cpp
// Function: LMF_IO::decompress_asynchronous_fADC8_signal(fADC8_signal_info_struct&, unsigned int*, unsigned int, short*, int, int&)
bool LMF_IO::decompress_asynchronous_fADC8_signal(fADC8_signal_info_struct &signal_info, unsigned __int32 source_buffer[], unsigned __int32 source_buffer_size_in_32bit_words, __int16 i16bit_target_buffer[], __int32 target_buffer_size_in_16bit_words, __int32 &number_of_filled_16bit_words)
{
	number_of_filled_16bit_words = -signal_info.timestamp_subindex - 1;

	if ((signal_info.signal_type == FADC8_HEADER_EVENT_ID_TDC) || (signal_info.signal_type == FADC8_HEADER_EVENT_ID_END_MARKER)) {
		number_of_filled_16bit_words = 0;
		return false;
	}

	unsigned __int32 limit_;
	if (signal_info.signallength_including_header_in_32bit_words - 4 < __int32(source_buffer_size_in_32bit_words)) {
		limit_ = signal_info.signallength_including_header_in_32bit_words - 4;
	} else {
		limit_ = source_buffer_size_in_32bit_words;
	}

	if (   (signal_info.signal_type == FADC8_HEADER_EVENT_ID_1_25G_ADC1)
		|| (signal_info.signal_type == FADC8_HEADER_EVENT_ID_1_25G_ADC2)
		|| (signal_info.signal_type == FADC8_HEADER_EVENT_ID_1_25G_ADC3)
		|| (signal_info.signal_type == FADC8_HEADER_EVENT_ID_1_25G_ADC4)) {

		for (unsigned __int32 i=4;i<limit_ + 4;i+=4)  {
			if (target_buffer_size_in_16bit_words < number_of_filled_16bit_words +1 + 4*3) {
				break;
			}
			for (__int32 j=0; j<4; j++) {
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+j] >> 20) & 0x3ff;
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+j] >> 10) & 0x3ff;
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+j]      ) & 0x3ff;
			}
		}

		number_of_filled_16bit_words++;
		//trace_filter(i16bit_target_buffer,number_of_filled_16bit_words, signal_info);
		return true;
	} // endif 1.25 GS mode


	if (   (signal_info.signal_type == FADC8_HEADER_EVENT_ID_2_5G_ADC12)
		|| (signal_info.signal_type == FADC8_HEADER_EVENT_ID_2_5G_ADC34)) {
	
		for (unsigned __int32 i=4;i<limit_ + 4;i+=8)  {
			if (target_buffer_size_in_16bit_words < number_of_filled_16bit_words +1 + 2*4*3) {
				break;
			}

			for (__int32 j=0; j<4; j++) {
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+0+j] >> 20) & 0x3ff;
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+4+j] >> 20) & 0x3ff;
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+0+j] >> 10) & 0x3ff;
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+4+j] >> 10) & 0x3ff;
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+0+j]      ) & 0x3ff;
				i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+4+j]      ) & 0x3ff;
			}
			
		}

		number_of_filled_16bit_words++;
		//trace_filter(i16bit_target_buffer,number_of_filled_16bit_words, signal_info);
		return true;
	} // endif 2.5 Gs mode

	if (signal_info.signal_type == FADC8_HEADER_EVENT_ID_5G_ADC1234) {

		for (unsigned __int32 i=4;i<limit_ + 4;i+=16)  {
			if (target_buffer_size_in_16bit_words < number_of_filled_16bit_words +1 + 4*4*3) {
				break;
			}

			for (__int32 j=0; j<4; j++) {
				for (__int32 shift_ = 20;shift_ >= 0;shift_-=10) {
					i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+0 +j] >> shift_) & 0x3ff;
					i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+8 +j] >> shift_) & 0x3ff;
					i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+4 +j] >> shift_) & 0x3ff;
					i16bit_target_buffer[(++number_of_filled_16bit_words) > 0 ? number_of_filled_16bit_words : 0] = (source_buffer[i+12+j] >> shift_) & 0x3ff;
				}
			}

		}

		number_of_filled_16bit_words++;
		//trace_filter(i16bit_target_buffer,number_of_filled_16bit_words, signal_info);
		return true;
	} // endif 5 Gs mode

	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa8, %rsp
movq 0x10(%rbp), %rax
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movq %r8, -0x30(%rbp)
movl %r9d, -0x34(%rbp)
movq -0x18(%rbp), %rax
movsbl 0x2c(%rax), %eax
xorl %ecx, %ecx
subl %eax, %ecx
subl $0x1, %ecx
movq 0x10(%rbp), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x8, %eax
je 0x1bb45
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0xf, %eax
jne 0x1bb58
movq 0x10(%rbp), %rax
movl $0x0, (%rax)
movb $0x0, -0x1(%rbp)
jmp 0x1c2c7
movq -0x18(%rbp), %rax
movl 0x28(%rax), %eax
subl $0x4, %eax
cmpl -0x24(%rbp), %eax
jge 0x1bb76
movq -0x18(%rbp), %rax
movl 0x28(%rax), %eax
subl $0x4, %eax
movl %eax, -0x38(%rbp)
jmp 0x1bb7c
movl -0x24(%rbp), %eax
movl %eax, -0x38(%rbp)
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x0, %eax
je 0x1bbb4
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x1, %eax
je 0x1bbb4
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x2, %eax
je 0x1bbb4
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x3, %eax
jne 0x1bd38
movl $0x4, -0x3c(%rbp)
movl -0x3c(%rbp), %eax
movl -0x38(%rbp), %ecx
addl $0x4, %ecx
cmpl %ecx, %eax
jae 0x1bd24
movl -0x34(%rbp), %eax
movq 0x10(%rbp), %rcx
movl (%rcx), %ecx
addl $0x1, %ecx
addl $0xc, %ecx
cmpl %ecx, %eax
jge 0x1bbe4
jmp 0x1bd24
movl $0x0, -0x40(%rbp)
cmpl $0x4, -0x40(%rbp)
jge 0x1bd14
movq -0x20(%rbp), %rax
movl -0x3c(%rbp), %ecx
addl -0x40(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
shrl $0x14, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0x62(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x60(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1bc33
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x68(%rbp)
jmp 0x1bc3a
xorl %eax, %eax
movl %eax, -0x68(%rbp)
jmp 0x1bc3a
movq -0x60(%rbp), %rax
movw -0x62(%rbp), %dx
movl -0x68(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x3c(%rbp), %ecx
addl -0x40(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
shrl $0xa, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0x72(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x70(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1bc8a
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x78(%rbp)
jmp 0x1bc91
xorl %eax, %eax
movl %eax, -0x78(%rbp)
jmp 0x1bc91
movq -0x70(%rbp), %rax
movw -0x72(%rbp), %dx
movl -0x78(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x3c(%rbp), %ecx
addl -0x40(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0x82(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x80(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1bce4
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x88(%rbp)
jmp 0x1bcee
xorl %eax, %eax
movl %eax, -0x88(%rbp)
jmp 0x1bcee
movq -0x80(%rbp), %rax
movw -0x82(%rbp), %dx
movl -0x88(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movl -0x40(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x1bbeb
jmp 0x1bd16
movl -0x3c(%rbp), %eax
addl $0x4, %eax
movl %eax, -0x3c(%rbp)
jmp 0x1bbbb
movq 0x10(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x1c2c7
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x4, %eax
je 0x1bd56
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x5, %eax
jne 0x1c05d
movl $0x4, -0x44(%rbp)
movl -0x44(%rbp), %eax
movl -0x38(%rbp), %ecx
addl $0x4, %ecx
cmpl %ecx, %eax
jae 0x1c049
movl -0x34(%rbp), %eax
movq 0x10(%rbp), %rcx
movl (%rcx), %ecx
addl $0x1, %ecx
addl $0x18, %ecx
cmpl %ecx, %eax
jge 0x1bd86
jmp 0x1c049
movl $0x0, -0x48(%rbp)
cmpl $0x4, -0x48(%rbp)
jge 0x1c039
movq -0x20(%rbp), %rax
movl -0x44(%rbp), %ecx
addl $0x0, %ecx
addl -0x48(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
shrl $0x14, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0x92(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x90(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1bde1
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x98(%rbp)
jmp 0x1bdeb
xorl %eax, %eax
movl %eax, -0x98(%rbp)
jmp 0x1bdeb
movq -0x90(%rbp), %rax
movw -0x92(%rbp), %dx
movl -0x98(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x44(%rbp), %ecx
addl $0x4, %ecx
addl -0x48(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
shrl $0x14, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0xa2(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1be50
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xa8(%rbp)
jmp 0x1be5a
xorl %eax, %eax
movl %eax, -0xa8(%rbp)
jmp 0x1be5a
movq -0xa0(%rbp), %rax
movw -0xa2(%rbp), %dx
movl -0xa8(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x44(%rbp), %ecx
addl $0x0, %ecx
addl -0x48(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
shrl $0xa, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0xb2(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1bebf
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xb8(%rbp)
jmp 0x1bec9
xorl %eax, %eax
movl %eax, -0xb8(%rbp)
jmp 0x1bec9
movq -0xb0(%rbp), %rax
movw -0xb2(%rbp), %dx
movl -0xb8(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x44(%rbp), %ecx
addl $0x4, %ecx
addl -0x48(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
shrl $0xa, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0xc2(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1bf2e
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xc8(%rbp)
jmp 0x1bf38
xorl %eax, %eax
movl %eax, -0xc8(%rbp)
jmp 0x1bf38
movq -0xc0(%rbp), %rax
movw -0xc2(%rbp), %dx
movl -0xc8(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x44(%rbp), %ecx
addl $0x0, %ecx
addl -0x48(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0xd2(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1bf9a
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xd8(%rbp)
jmp 0x1bfa4
xorl %eax, %eax
movl %eax, -0xd8(%rbp)
jmp 0x1bfa4
movq -0xd0(%rbp), %rax
movw -0xd2(%rbp), %dx
movl -0xd8(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x44(%rbp), %ecx
addl $0x4, %ecx
addl -0x48(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0xe2(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xe0(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1c006
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xe8(%rbp)
jmp 0x1c010
xorl %eax, %eax
movl %eax, -0xe8(%rbp)
jmp 0x1c010
movq -0xe0(%rbp), %rax
movw -0xe2(%rbp), %dx
movl -0xe8(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x1bd8d
jmp 0x1c03b
movl -0x44(%rbp), %eax
addl $0x8, %eax
movl %eax, -0x44(%rbp)
jmp 0x1bd5d
movq 0x10(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x1c2c7
movq -0x18(%rbp), %rax
movsbl 0x18(%rax), %eax
cmpl $0x7, %eax
jne 0x1c2c3
movl $0x4, -0x4c(%rbp)
movl -0x4c(%rbp), %eax
movl -0x38(%rbp), %ecx
addl $0x4, %ecx
cmpl %ecx, %eax
jae 0x1c2b2
movl -0x34(%rbp), %eax
movq 0x10(%rbp), %rcx
movl (%rcx), %ecx
addl $0x1, %ecx
addl $0x30, %ecx
cmpl %ecx, %eax
jge 0x1c09e
jmp 0x1c2b2
movl $0x0, -0x50(%rbp)
cmpl $0x4, -0x50(%rbp)
jge 0x1c2a2
movl $0x14, -0x54(%rbp)
cmpl $0x0, -0x54(%rbp)
jl 0x1c292
movq -0x20(%rbp), %rax
movl -0x4c(%rbp), %ecx
addl $0x0, %ecx
addl -0x50(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
movl -0x54(%rbp), %ecx
shrl %cl, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0xf2(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1c10c
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0xf8(%rbp)
jmp 0x1c116
xorl %eax, %eax
movl %eax, -0xf8(%rbp)
jmp 0x1c116
movq -0xf0(%rbp), %rax
movw -0xf2(%rbp), %dx
movl -0xf8(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x4c(%rbp), %ecx
addl $0x8, %ecx
addl -0x50(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
movl -0x54(%rbp), %ecx
shrl %cl, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0x102(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x100(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1c17d
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x108(%rbp)
jmp 0x1c187
xorl %eax, %eax
movl %eax, -0x108(%rbp)
jmp 0x1c187
movq -0x100(%rbp), %rax
movw -0x102(%rbp), %dx
movl -0x108(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x4c(%rbp), %ecx
addl $0x4, %ecx
addl -0x50(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
movl -0x54(%rbp), %ecx
shrl %cl, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0x112(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x110(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1c1ee
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x118(%rbp)
jmp 0x1c1f8
xorl %eax, %eax
movl %eax, -0x118(%rbp)
jmp 0x1c1f8
movq -0x110(%rbp), %rax
movw -0x112(%rbp), %dx
movl -0x118(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movq -0x20(%rbp), %rax
movl -0x4c(%rbp), %ecx
addl $0xc, %ecx
addl -0x50(%rbp), %ecx
movl %ecx, %ecx
movl (%rax,%rcx,4), %eax
movl -0x54(%rbp), %ecx
shrl %cl, %eax
andl $0x3ff, %eax            # imm = 0x3FF
movw %ax, -0x122(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x120(%rbp)
movq 0x10(%rbp), %rcx
movl (%rcx), %eax
addl $0x1, %eax
movl %eax, (%rcx)
cmpl $0x0, %eax
jle 0x1c25f
movq 0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x128(%rbp)
jmp 0x1c269
xorl %eax, %eax
movl %eax, -0x128(%rbp)
jmp 0x1c269
movq -0x120(%rbp), %rax
movw -0x122(%rbp), %dx
movl -0x128(%rbp), %ecx
movslq %ecx, %rcx
movw %dx, (%rax,%rcx,2)
movl -0x54(%rbp), %eax
subl $0xa, %eax
movl %eax, -0x54(%rbp)
jmp 0x1c0b6
jmp 0x1c294
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0x1c0a5
jmp 0x1c2a4
movl -0x4c(%rbp), %eax
addl $0x10, %eax
movl %eax, -0x4c(%rbp)
jmp 0x1c075
movq 0x10(%rbp), %rax
movl (%rax), %ecx
addl $0x1, %ecx
movl %ecx, (%rax)
movb $0x1, -0x1(%rbp)
jmp 0x1c2c7
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0xa8, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)