// File: NichtJens[P]lmf2txt/LMF_IO.cpp
// Function: LMF_IO::ReadfADC8_header_LMFversion10()
__int32	LMF_IO::ReadfADC8_header_LMFversion10()
{
	__int32 byte_counter = 0;
	*input_lmf >> this->number_of_DAQ_source_strings;  byte_counter += sizeof(__int32);

	DAQ_source_strings = new std::string*[number_of_DAQ_source_strings];
	memset(DAQ_source_strings,0,sizeof(std::string*)*number_of_DAQ_source_strings);
	for (__int32 i=0;i<number_of_DAQ_source_strings;++i) {
		__int32 string_len;
		*input_lmf >> string_len;	byte_counter += sizeof(__int32);
		DAQ_source_strings[i] = new std::string();
		DAQ_source_strings[i]->reserve(string_len);
		while (string_len > 0) {
			__int8 c;
			*input_lmf >> c;	byte_counter += sizeof(__int8);
			*DAQ_source_strings[i] += c;
			--string_len;
		}
	}

	*input_lmf >> time_reference;	byte_counter += sizeof(__int32);
	*input_lmf >> tdcresolution;	byte_counter += sizeof(double);		// tdc resolution in ns
	*input_lmf >> TDCDataType;		byte_counter += sizeof(__int32);

	unsigned __int64 temp_uint64;
	*input_lmf >> temp_uint64;		byte_counter += sizeof(unsigned __int64);		// number of channels
	number_of_channels =__int32(temp_uint64);

	*input_lmf >> temp_uint64;		byte_counter += sizeof(unsigned __int64);		// number of hits
	max_number_of_hits =__int32(temp_uint64);

	if (int(number_of_channels) > num_channels)	{errorflag = 19;	return -100000;}
	if (int(max_number_of_hits) > num_ions)		{errorflag = 20;	return -100000;}

	*input_lmf >> data_format_in_userheader;	byte_counter += sizeof(__int32);	// data format (2=short integer)


	// bools
	__int32 counter = 0;
	*input_lmf >> fADC8.number_of_bools; byte_counter += sizeof(__int32);
	for (__int32 i=counter;i<fADC8.number_of_bools;++i) {
		bool bool_dummy;
		*input_lmf >> bool_dummy;	byte_counter += sizeof(bool);
	}

	// unsigned 32bit
	counter = 0;
	*input_lmf >> fADC8.number_of_uint32s;		byte_counter += sizeof(__int32);
	
	*input_lmf >> fADC8.i32NumberOfDAQLoops;	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.i32NumberOfADCmodules;	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iEnableGroupMode;		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iTriggerChannel;		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iPreSamplings_in_4800ps_units;	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iPostSamplings_in_9600ps_units;	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iEnableTDCinputs;		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iChannelMode[0][0];		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iChannelMode[0][1];		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iChannelMode[1][0];		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iChannelMode[1][1];		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iChannelMode[2][0];		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iChannelMode[2][1];		byte_counter += sizeof(__int32); counter++;
	
	for (__int32 i=0;i<3;i++) {
		*input_lmf >> fADC8.firmware_version[i];	; byte_counter += sizeof(__int32); counter++; // adc module firmware
		*input_lmf >> fADC8.serial_number[i];		; byte_counter += sizeof(__int32); counter++; // adc module serial number
	}
	
	*input_lmf >> fADC8.driver_version; byte_counter += sizeof(__int32); counter++; // adc driver version number
	
	for (__int32 i=counter;i<fADC8.number_of_uint32s;++i) {
		unsigned __int32 uint_dummy;
		*input_lmf >> uint_dummy;				byte_counter += sizeof(unsigned __int32);
	}

	// signed 32bit
	counter = 0;
	*input_lmf >> fADC8.number_of_int32s;		byte_counter += sizeof(__int32);

	for (__int32 imod = 0; imod < 3; imod++) {
		for (__int32 ich = 0; ich < 8; ich++) {
			*input_lmf >> fADC8.iThreshold_GT[imod][ich];	byte_counter += sizeof(__int32);  counter++;
		}
	}
	for (__int32 imod = 0; imod < 3; imod++) {
		for (__int32 ich = 0; ich < 8; ich++) {
			*input_lmf >> fADC8.iThreshold_LT[imod][ich];	byte_counter += sizeof(__int32);  counter++;
		}
	}
	*input_lmf >> fADC8.iSynchronMode[0][0];	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iSynchronMode[0][1];	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iSynchronMode[1][0];	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iSynchronMode[1][1];	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iSynchronMode[2][0];	byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.iSynchronMode[2][1];	byte_counter += sizeof(__int32); counter++;
	
	*input_lmf >> fADC8.GroupEndMarker;			byte_counter += sizeof(__int32); counter++;
	
	if (fADC8.GroupEndMarker != 12345678) return 0;
	
	*input_lmf >> fADC8.veto_gate_length;		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.veto_delay_length;		byte_counter += sizeof(__int32); counter++;
	*input_lmf >> fADC8.veto_mask;				byte_counter += sizeof(__int32); counter++;

	for (__int32 imod = 0; imod < 3; imod++) {
		for (__int32 ich = 0; ich < 8; ich++) {
			*input_lmf >> fADC8.GND_level[imod][ich]; byte_counter += sizeof(__int32); counter++;
		}
	}

	fADC8.bReadCustomData = false;
	if (counter < fADC8.number_of_int32s) {
		for (__int32 i=counter;i<fADC8.number_of_int32s;++i) {
			__int32 int_dummy;
			*input_lmf >> int_dummy;			byte_counter += sizeof(__int32);
			fADC8.bReadCustomData = int_dummy ? true:false;
		}
	}

	// doubles
	counter = 0;
	*input_lmf >> fADC8.number_of_doubles;		byte_counter += sizeof(__int32);
	*input_lmf >> fADC8.dGroupRangeStart;		byte_counter += sizeof(double); counter++;
	*input_lmf >> fADC8.dGroupRangeEnd;			byte_counter += sizeof(double); counter++;
	*input_lmf >> fADC8.dSyncTimeOffset[0][0];	byte_counter += sizeof(double); counter++;
	*input_lmf >> fADC8.dSyncTimeOffset[0][1];	byte_counter += sizeof(double); counter++;
	*input_lmf >> fADC8.dSyncTimeOffset[1][0];	byte_counter += sizeof(double); counter++;
	*input_lmf >> fADC8.dSyncTimeOffset[1][1];	byte_counter += sizeof(double); counter++;
	*input_lmf >> fADC8.dSyncTimeOffset[2][0];	byte_counter += sizeof(double); counter++;
	*input_lmf >> fADC8.dSyncTimeOffset[2][1];	byte_counter += sizeof(double); counter++;
	for (__int32 i=counter;i<fADC8.number_of_doubles;++i) {
		double double_dummy;
		*input_lmf >> double_dummy; byte_counter += sizeof(double);
	}

	__int32 int_dummy;
	*input_lmf >> int_dummy;	byte_counter += sizeof(__int32);
	if (int_dummy != 123456789) return 0;
	
	return byte_counter;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rsi
movq %rsi, -0x80(%rbp)
movl $0x0, -0x14(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1328, %rsi           # imm = 0x1328
callq 0x1cf60
movq -0x80(%rbp), %rax
movslq -0x14(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x14(%rbp)
movslq 0x1328(%rax), %rax
movl $0x8, %ecx
mulq %rcx
movq %rax, %rdi
seto %cl
movq $-0x1, %rax
testb $0x1, %cl
cmovneq %rax, %rdi
callq 0x2030
movq %rax, %rcx
movq -0x80(%rbp), %rax
movq %rcx, 0x1330(%rax)
movq 0x1330(%rax), %rdi
movslq 0x1328(%rax), %rdx
shlq $0x3, %rdx
xorl %esi, %esi
callq 0x20d0
movl $0x0, -0x18(%rbp)
movq -0x80(%rbp), %rcx
movl -0x18(%rbp), %eax
cmpl 0x1328(%rcx), %eax
jge 0xc201
movq -0x80(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x1c(%rbp), %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl $0x20, %edi
callq 0x2190
movq %rax, %rdi
movq %rdi, -0x88(%rbp)
callq 0x2260
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rax
movq 0x1330(%rax), %rcx
movslq -0x18(%rbp), %rdx
movq %rsi, (%rcx,%rdx,8)
movq 0x1330(%rax), %rax
movslq -0x18(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movslq -0x1c(%rbp), %rsi
callq 0x22d0
cmpl $0x0, -0x1c(%rbp)
jle 0xc1f1
movq -0x80(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x1d(%rbp), %rsi
callq 0x1d0e0
movq -0x80(%rbp), %rcx
movslq -0x14(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x14(%rbp)
movb -0x1d(%rbp), %al
movq 0x1330(%rcx), %rcx
movslq -0x18(%rbp), %rdx
movq (%rcx,%rdx,8), %rdi
movsbl %al, %esi
callq 0x2100
movl -0x1c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0xc1a3
jmp 0xc1f3
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0xc126
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x240, %rsi            # imm = 0x240
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x12b8, %rsi           # imm = 0x12B8
callq 0x1d1f0
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x12ac, %rsi           # imm = 0x12AC
callq 0x1cf60
movq -0x80(%rbp), %rax
movslq -0x14(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x14(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x1cbb0
movq -0x80(%rbp), %rax
movslq -0x14(%rbp), %rcx
addq $0x8, %rcx
movl %ecx, -0x14(%rbp)
movq -0x28(%rbp), %rcx
movl %ecx, 0x2b4(%rax)
movq 0x2b18(%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x1cbb0
movq -0x80(%rbp), %rcx
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movq -0x28(%rbp), %rax
movl %eax, 0x2bc(%rcx)
movl 0x2b4(%rcx), %eax
cmpl 0x2b70(%rcx), %eax
jle 0xc2e5
movq -0x80(%rbp), %rax
movl $0x13, 0x12e0(%rax)
movl $0xfffe7960, -0x4(%rbp) # imm = 0xFFFE7960
jmp 0xcdc9
movq -0x80(%rbp), %rcx
movl 0x2bc(%rcx), %eax
cmpl 0x2b74(%rcx), %eax
jle 0xc311
movq -0x80(%rbp), %rax
movl $0x14, 0x12e0(%rax)
movl $0xfffe7960, -0x4(%rbp) # imm = 0xFFFE7960
jmp 0xcdc9
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x290, %rsi            # imm = 0x290
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl $0x0, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x8, %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x30(%rbp)
movq -0x80(%rbp), %rcx
movl -0x30(%rbp), %eax
cmpl 0x15a8(%rcx), %eax
jge 0xc39f
movq -0x80(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x31(%rbp), %rsi
callq 0x1d2d0
movslq -0x14(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x14(%rbp)
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0xc366
movq -0x80(%rbp), %rsi
movl $0x0, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x10, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x4, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x1c, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x20, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x24, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x28, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x2c, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x30, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x34, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x34, %rsi
addq $0x4, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x34, %rsi
addq $0x8, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x34, %rsi
addq $0x8, %rsi
addq $0x4, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x34, %rsi
addq $0x10, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x34, %rsi
addq $0x10, %rsi
addq $0x4, %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl $0x0, -0x38(%rbp)
cmpl $0x3, -0x38(%rbp)
jge 0xc6e4
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x2b8, %rsi            # imm = 0x2B8
movslq -0x38(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x2d8, %rsi            # imm = 0x2D8
movslq -0x38(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0xc652
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
callq 0x1cb80
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x3c(%rbp)
movq -0x80(%rbp), %rcx
movl -0x3c(%rbp), %eax
cmpl 0x15b0(%rcx), %eax
jge 0xc74e
movq -0x80(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x40(%rbp), %rsi
callq 0x1cb80
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0xc715
movq -0x80(%rbp), %rsi
movl $0x0, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0xc, %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl $0x0, -0x44(%rbp)
cmpl $0x3, -0x44(%rbp)
jge 0xc7f2
movl $0x0, -0x48(%rbp)
cmpl $0x8, -0x48(%rbp)
jge 0xc7e5
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x74, %rsi
movslq -0x44(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0x48(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0xc78f
jmp 0xc7e7
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0xc782
movl $0x0, -0x4c(%rbp)
cmpl $0x3, -0x4c(%rbp)
jge 0xc86c
movl $0x0, -0x50(%rbp)
cmpl $0x8, -0x50(%rbp)
jge 0xc85f
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x174, %rsi            # imm = 0x174
movslq -0x4c(%rbp), %rax
shlq $0x5, %rax
addq %rax, %rsi
movslq -0x50(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl -0x50(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x50(%rbp)
jmp 0xc806
jmp 0xc861
movl -0x4c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4c(%rbp)
jmp 0xc7f9
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x274, %rsi            # imm = 0x274
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x274, %rsi            # imm = 0x274
addq $0x4, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x274, %rsi            # imm = 0x274
addq $0x8, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x274, %rsi            # imm = 0x274
addq $0x8, %rsi
addq $0x4, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x274, %rsi            # imm = 0x274
addq $0x10, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x274, %rsi            # imm = 0x274
addq $0x10, %rsi
addq $0x4, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x18, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rax
movslq -0x14(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x14(%rbp)
movl -0x2c(%rbp), %ecx
addl $0x1, %ecx
movl %ecx, -0x2c(%rbp)
cmpl $0xbc614e, 0x15b8(%rax) # imm = 0xBC614E
je 0xc9ff
movl $0x0, -0x4(%rbp)
jmp 0xcdc9
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x2f8, %rsi            # imm = 0x2F8
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x2fc, %rsi            # imm = 0x2FC
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x300, %rsi            # imm = 0x300
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl $0x0, -0x54(%rbp)
cmpl $0x3, -0x54(%rbp)
jge 0xcb0f
movl $0x0, -0x58(%rbp)
cmpl $0x8, -0x58(%rbp)
jge 0xcb02
movq -0x80(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x304, %rsi            # imm = 0x304
movslq -0x54(%rbp), %rax
imulq $0x28, %rax, %rax
addq %rax, %rsi
movslq -0x58(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0xcaa9
jmp 0xcb04
movl -0x54(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x54(%rbp)
jmp 0xca9c
movq -0x80(%rbp), %rcx
movb $0x0, 0x1854(%rcx)
movl -0x2c(%rbp), %eax
cmpl 0x15ac(%rcx), %eax
jge 0xcb7a
movl -0x2c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x80(%rbp), %rcx
movl -0x5c(%rbp), %eax
cmpl 0x15ac(%rcx), %eax
jge 0xcb78
movq -0x80(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x60(%rbp), %rsi
callq 0x1cf60
movq -0x80(%rbp), %rax
movl -0x14(%rbp), %ecx
addl $0x4, %ecx
movl %ecx, -0x14(%rbp)
movl -0x60(%rbp), %edx
xorl %ecx, %ecx
negl %edx
sbbl %ecx, %ecx
andb $0x1, %cl
movb %cl, 0x1854(%rax)
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0xcb2b
jmp 0xcb7a
movq -0x80(%rbp), %rsi
movl $0x0, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x14, %rsi
callq 0x1cf60
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x448, %rsi            # imm = 0x448
callq 0x1d1f0
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x450, %rsi            # imm = 0x450
callq 0x1d1f0
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x458, %rsi            # imm = 0x458
callq 0x1d1f0
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x458, %rsi            # imm = 0x458
addq $0x8, %rsi
callq 0x1d1f0
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x458, %rsi            # imm = 0x458
addq $0x10, %rsi
callq 0x1d1f0
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x458, %rsi            # imm = 0x458
addq $0x10, %rsi
addq $0x8, %rsi
callq 0x1d1f0
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x458, %rsi            # imm = 0x458
addq $0x20, %rsi
callq 0x1d1f0
movq -0x80(%rbp), %rsi
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x15a0, %rsi           # imm = 0x15A0
addq $0x458, %rsi            # imm = 0x458
addq $0x20, %rsi
addq $0x8, %rsi
callq 0x1d1f0
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movl %eax, -0x64(%rbp)
movq -0x80(%rbp), %rcx
movl -0x64(%rbp), %eax
cmpl 0x15b4(%rcx), %eax
jge 0xcd92
movq -0x80(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1d1f0
movslq -0x14(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x14(%rbp)
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0xcd59
movq -0x80(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x74(%rbp), %rsi
callq 0x1cf60
movslq -0x14(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x14(%rbp)
cmpl $0x75bcd15, -0x74(%rbp) # imm = 0x75BCD15
je 0xcdc3
movl $0x0, -0x4(%rbp)
jmp 0xcdc9
movl -0x14(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x90, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)