// File: NichtJens[P]lmf2txt/LMF_IO.cpp
// Function: LMF_IO::ReadfADC4Header_up_to_v11()
__int32	LMF_IO::ReadfADC4Header_up_to_v11()
{
	__int32 i32Dummy = 0;
	unsigned __int64 ui64Dummy = 0;
	double dDummy = 0.;
	bool bDummy = false;
	char cDummy = 0;

	__int32 byte_counter = 0;
	
	*input_lmf >> frequency;	byte_counter += sizeof(double);		// frequency is always 4th value
	*input_lmf >> IOaddress;	byte_counter += sizeof(__int32);		// IO address (parameter 1) always 5th value
	*input_lmf >> timestamp_format;	byte_counter += sizeof(__int32);	// TimeInfo (parameter 2) always 6th value  (0,1,2)*32Bit

	*input_lmf >> DAQ_info_Length;	byte_counter += sizeof(__int32);		// Length of DAQInfo always 7th value
	__int8 * __int8_temp = new __int8[DAQ_info_Length+1];
	input_lmf->read(__int8_temp,DAQ_info_Length);	// DAQInfo always 8th value
	__int8_temp[DAQ_info_Length] = 0;
	DAQ_info = __int8_temp;
	delete[] __int8_temp; __int8_temp = 0;
	byte_counter += DAQ_info_Length;
	
	*input_lmf >> LMF_Version; byte_counter += sizeof(__int32);
	
	*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)

	*input_lmf >> fADC4.i32NumberOfADCmodules;	byte_counter += sizeof(__int32);


	__int32 check_value;
	*input_lmf >> check_value; byte_counter += sizeof(__int32);

	if (check_value == 12345678) {
		for (__int32 i=0;i<fADC4.i32NumberOfADCmodules;i++) {
			*input_lmf >> fADC4.ndigo_parameters[i].bandwidth;		byte_counter += sizeof(double);
			*input_lmf >> fADC4.ndigo_parameters[i].board_id;		byte_counter += sizeof(__int32);
			*input_lmf >> fADC4.ndigo_parameters[i].channel_mask;	byte_counter += sizeof(__int32);
			*input_lmf >> fADC4.ndigo_parameters[i].channels;		byte_counter += sizeof(__int32);
			*input_lmf >> fADC4.ndigo_parameters[i].sample_period;	byte_counter += sizeof(double);
			*input_lmf >> fADC4.ndigo_parameters[i].sample_rate;	byte_counter += sizeof(double);
			*input_lmf >> fADC4.ndigo_parameters[i].version;		byte_counter += sizeof(__int32);
		}
	} else {
			unsigned __int64 pos = input_lmf->tell(); input_lmf->seek(pos-4); byte_counter -= sizeof(__int32);
	for (__int32 i=0;i<fADC4.i32NumberOfADCmodules;i++) {
		input_lmf->read((char*)&fADC4.ndigo_parameters[i],sizeof(ndigo_param_info)); byte_counter += sizeof(ndigo_param_info);
				__int32 size_diff = sizeof(ndigo_param_info) - fADC4.ndigo_parameters[i].size;
				if (size_diff) {
					pos = input_lmf->tell(); input_lmf->seek(pos-size_diff); byte_counter -= size_diff;
				}
	}

	}

	



	for (unsigned __int32 i = 0; i < number_of_channels; i++) {
		*input_lmf >> fADC4.threshold_GT[i];	byte_counter += sizeof(double);
		*input_lmf >> fADC4.threshold_LT[i];	byte_counter += sizeof(double);
	}

	for (unsigned __int32 i = 0; i < number_of_channels; i++) {
		*input_lmf >> fADC4.set_DC_offset[i];	byte_counter += sizeof(double);
	}

	if (LMF_Version > 10) {
		for (unsigned __int32 i = 0; i < number_of_channels; i++) {
			*input_lmf >> fADC4.GND_level[i];	byte_counter += sizeof(double);
		}
	} else memset(fADC4.GND_level,0,80*sizeof(double));

	__int32 num_temp = fADC4.i32NumberOfADCmodules < 4 ? 4 : fADC4.i32NumberOfADCmodules;
	for (__int32 i=0;i<num_temp;i++) { // write ADC mode 4x1.25Gs or 2x2.5Gs or 1x5Gs)
		*input_lmf >> fADC4.sampling_mode[i];	byte_counter += sizeof(__int32);
	}

	*input_lmf >> i32Dummy;	byte_counter += sizeof(__int32); // precursor in steps of 3.2 ns
	*input_lmf >> i32Dummy;	byte_counter += sizeof(__int32); // length after end of signal in steps of 3.2 ns
	for (unsigned __int32 i=2;i<number_of_channels;i++) {
		*input_lmf >> i32Dummy;	byte_counter += sizeof(__int32); // read precursor and length for all other channels. Currently only for future use
		*input_lmf >> i32Dummy;	byte_counter += sizeof(__int32);
	}

	*input_lmf >> ui64Dummy;	byte_counter += sizeof(__int64);				// ui64RisingEnable
	*input_lmf >> ui64Dummy;	byte_counter += sizeof(__int64);				// ui64FallingEnable
	*input_lmf >> i32Dummy;		byte_counter += sizeof(__int32);				// i32TriggerEdge
	*input_lmf >> fADC4.iTriggerChannel;	byte_counter += sizeof(__int32);	// i32TriggerChannel
	fADC4.iTriggerChannel--;

	*input_lmf >> bDummy;	byte_counter += sizeof(bool);					// bOutputLevel
	*input_lmf >> fADC4.dGroupRangeStart;	byte_counter += sizeof(double);	// dGroupRangeStart
	*input_lmf >> fADC4.dGroupRangeEnd;		byte_counter += sizeof(double);	// dGroupRangeEnd

	*input_lmf >> i32Dummy;	byte_counter += sizeof(__int32);				// read Config file
	fADC4.csConfigFile = "";
	for(__int32 i32Count=0;i32Count<i32Dummy;i32Count++)
	{
		input_lmf->read(&cDummy,1);	byte_counter += sizeof(char);
		fADC4.csConfigFile += cDummy;
	}
	*input_lmf >> i32Dummy;	byte_counter += sizeof(__int32);				// read INL file
	fADC4.csINLFile = "";
	for(__int32 i32Count=0;i32Count<i32Dummy;i32Count++)
	{
		input_lmf->read(&cDummy,1);	byte_counter += sizeof(char);
		fADC4.csINLFile += cDummy;
	}
	*input_lmf >> i32Dummy;	byte_counter += sizeof(__int32);				// read DNL file
	fADC4.csDNLFile = "";
	for(__int32 i32Count=0;i32Count<i32Dummy;i32Count++)
	{
		input_lmf->read(&cDummy,1);	byte_counter += sizeof(char);
		fADC4.csDNLFile += cDummy;
	}

	*input_lmf >> i32Dummy;	byte_counter += sizeof(__int32);	// dummy
	*input_lmf >> dDummy;	byte_counter += sizeof(double);		// dGroupTimeout

	// read TDCInfo
	*input_lmf >> TDC8HP.Number_of_TDCs;  byte_counter += sizeof(__int32);
	for(__int32 iCount=0;iCount<TDC8HP.Number_of_TDCs;++iCount) {
		*input_lmf >> TDC8HP.TDC_info[iCount]->index;				byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->channelCount;		byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->channelStart;		byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->highResChannelCount;	byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->highResChannelStart;	byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->lowResChannelCount;	byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->lowResChannelStart;	byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->resolution;			byte_counter += sizeof(double);
		*input_lmf >> TDC8HP.TDC_info[iCount]->serialNumber;		byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->version;				byte_counter += sizeof(__int32);
		*input_lmf >> TDC8HP.TDC_info[iCount]->fifoSize;			byte_counter += sizeof(__int32);
		input_lmf->read((__int8*)TDC8HP.TDC_info[iCount]->INLCorrection,sizeof(__int32)*8*1024);		byte_counter += sizeof(__int32)*8*1024;
		input_lmf->read((__int8*)TDC8HP.TDC_info[iCount]->DNLData,sizeof(unsigned __int16)*8*1024);	byte_counter += sizeof(unsigned __int16)*8*1024;
		*input_lmf >> TDC8HP.TDC_info[iCount]->flashValid;			byte_counter += sizeof(bool);
	}

	// now handle additional bools
	*input_lmf >> fADC4.number_of_bools; byte_counter += sizeof(__int32);
	for (__int32 i=0;i<fADC4.number_of_bools;++i) {
		*input_lmf >> bDummy;	byte_counter += sizeof(bool);
	}


	// now handle additional 32Bit values (signed or unsigned)
	*input_lmf >> fADC4.number_of_int32s;		byte_counter += sizeof(__int32);
	if (fADC4.number_of_int32s == 3 && this->LMF_Version == 11) this->LMF_Version = 12; // dirty work around for old LMFs
	
	__int32 counter = fADC4.number_of_int32s;
	if (counter > 0) {*input_lmf >> fADC4.i32NumberOfDAQLoops;		counter--;	byte_counter += sizeof(__int32);}
	if (counter > 0) {*input_lmf >> TDC8HP.TDC8HP_DriverVersion;	counter--;	byte_counter += sizeof(__int32);}
	while (counter > 0) {
		*input_lmf >> i32Dummy;
		byte_counter += sizeof(__int32);
		counter--;
	}

	*input_lmf >> fADC4.number_of_doubles;		byte_counter += sizeof(__int32);
	counter = fADC4.number_of_doubles;
	if (LMF_Version > 10) {
		for (__int32 i=0;i<fADC4.i32NumberOfADCmodules;i++) {
			*input_lmf >> fADC4.bits_per_mVolt[i];	byte_counter += sizeof(double);
			counter--;
		}
	} else {
		*input_lmf >> dDummy; byte_counter += sizeof(double);	counter--;
		for (__int32 i=0;i<fADC4.i32NumberOfADCmodules;i++) fADC4.bits_per_mVolt[i] = dDummy;
	}
	while (counter >0)	{*input_lmf >> dDummy;	byte_counter += sizeof(double);	counter--;}

	*input_lmf >> i32Dummy;			byte_counter += sizeof(__int32);
	if (i32Dummy != 1234567) return 0;
	
	return byte_counter;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rsi
movq %rsi, -0xb0(%rbp)
movl $0x0, -0x14(%rbp)
movq $0x0, -0x20(%rbp)
xorps %xmm0, %xmm0
movsd %xmm0, -0x28(%rbp)
movb $0x0, -0x29(%rbp)
movb $0x0, -0x2a(%rbp)
movl $0x0, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x12c8, %rsi           # imm = 0x12C8
callq 0x1d1f0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x2a4, %rsi            # imm = 0x2A4
callq 0x1cf60
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x2a8, %rsi            # imm = 0x2A8
callq 0x1cb80
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x129c, %rsi           # imm = 0x129C
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movl 0x129c(%rax), %eax
addl $0x1, %eax
movslq %eax, %rdi
callq 0x2030
movq %rax, %rcx
movq -0xb0(%rbp), %rax
movq %rcx, -0x38(%rbp)
movq 0x2b18(%rax), %rdi
movq -0x38(%rbp), %rsi
movl 0x129c(%rax), %edx
callq 0x1cbe0
movq -0xb0(%rbp), %rdi
movq -0x38(%rbp), %rax
movslq 0x129c(%rdi), %rcx
movb $0x0, (%rax,%rcx)
movq -0x38(%rbp), %rsi
addq $0xa0, %rdi
callq 0x2250
movq -0x38(%rbp), %rax
movq %rax, -0xa8(%rbp)
cmpq $0x0, %rax
je 0x8f2c
movq -0xa8(%rbp), %rdi
callq 0x2240
movq -0xb0(%rbp), %rsi
movq $0x0, -0x38(%rbp)
movl 0x129c(%rsi), %eax
addl -0x30(%rbp), %eax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x12a4, %rsi           # imm = 0x12A4
callq 0x1cf60
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1328, %rsi           # imm = 0x1328
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%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 -0xb0(%rbp), %rax
movq %rcx, 0x1330(%rax)
movq 0x1330(%rax), %rdi
movslq 0x1328(%rax), %rdx
shlq $0x3, %rdx
xorl %esi, %esi
callq 0x20d0
movl $0x0, -0x3c(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x3c(%rbp), %eax
cmpl 0x1328(%rcx), %eax
jge 0x90d4
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x40(%rbp), %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movl $0x20, %edi
callq 0x2190
movq %rax, %rdi
movq %rdi, -0xb8(%rbp)
callq 0x2260
movq -0xb8(%rbp), %rsi
movq -0xb0(%rbp), %rax
movq 0x1330(%rax), %rcx
movslq -0x3c(%rbp), %rdx
movq %rsi, (%rcx,%rdx,8)
movq 0x1330(%rax), %rax
movslq -0x3c(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
movslq -0x40(%rbp), %rsi
callq 0x22d0
cmpl $0x0, -0x40(%rbp)
jle 0x90c4
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x41(%rbp), %rsi
callq 0x1d0e0
movq -0xb0(%rbp), %rcx
movslq -0x30(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x30(%rbp)
movb -0x41(%rbp), %al
movq 0x1330(%rcx), %rcx
movslq -0x3c(%rbp), %rdx
movq (%rcx,%rdx,8), %rdi
movsbl %al, %esi
callq 0x2100
movl -0x40(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x40(%rbp)
jmp 0x9070
jmp 0x90c6
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x8fea
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x240, %rsi            # imm = 0x240
callq 0x1cf60
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x12b8, %rsi           # imm = 0x12B8
callq 0x1d1f0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x12ac, %rsi           # imm = 0x12AC
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1cbb0
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x8, %rcx
movl %ecx, -0x30(%rbp)
movq -0x50(%rbp), %rcx
movl %ecx, 0x2b4(%rax)
movq 0x2b18(%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1cbb0
movq -0xb0(%rbp), %rcx
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq -0x50(%rbp), %rax
movl %eax, 0x2bc(%rcx)
movl 0x2b4(%rcx), %eax
cmpl 0x2b70(%rcx), %eax
jle 0x91cd
movq -0xb0(%rbp), %rax
movl $0x13, 0x12e0(%rax)
movl $0xfffe7960, -0x4(%rbp) # imm = 0xFFFE7960
jmp 0xa1e4
movq -0xb0(%rbp), %rcx
movl 0x2bc(%rcx), %eax
cmpl 0x2b74(%rcx), %eax
jle 0x91ff
movq -0xb0(%rbp), %rax
movl $0x14, 0x12e0(%rax)
movl $0xfffe7960, -0x4(%rbp) # imm = 0xFFFE7960
jmp 0xa1e4
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x290, %rsi            # imm = 0x290
callq 0x1cf60
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x4, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x54(%rbp), %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
cmpl $0xbc614e, -0x54(%rbp)  # imm = 0xBC614E
jne 0x9434
movl $0x0, -0x58(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x58(%rbp), %eax
cmpl 0x1a84(%rcx), %eax
jge 0x942f
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x40, %rsi
movslq -0x58(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rsi
addq $0x8, %rsi
callq 0x1d1f0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x40, %rsi
movslq -0x58(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rsi
addq $0x20, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x40, %rsi
movslq -0x58(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rsi
addq $0x28, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x40, %rsi
movslq -0x58(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rsi
addq $0x24, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x40, %rsi
movslq -0x58(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rsi
addq $0x18, %rsi
callq 0x1d1f0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x40, %rsi
movslq -0x58(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rsi
addq $0x10, %rsi
callq 0x1d1f0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x40, %rsi
movslq -0x58(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rsi
addq $0x4, %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movl -0x58(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x58(%rbp)
jmp 0x9283
jmp 0x954f
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
callq 0x1d110
movq %rax, %rcx
movq -0xb0(%rbp), %rax
movq %rcx, -0x60(%rbp)
movq 0x2b18(%rax), %rdi
movq -0x60(%rbp), %rsi
subq $0x4, %rsi
callq 0x2440
movslq -0x30(%rbp), %rax
subq $0x4, %rax
movl %eax, -0x30(%rbp)
movl $0x0, -0x64(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x64(%rbp), %eax
cmpl 0x1a84(%rcx), %eax
jge 0x954d
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x40, %rsi
movslq -0x64(%rbp), %rax
shlq $0x6, %rax
addq %rax, %rsi
movl $0x40, %edx
callq 0x1cbe0
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x40, %rcx
movl %ecx, -0x30(%rbp)
addq $0x1a80, %rax           # imm = 0x1A80
addq $0x40, %rax
movslq -0x64(%rbp), %rcx
shlq $0x6, %rcx
addq %rcx, %rax
movslq (%rax), %rcx
movl $0x40, %eax
subq %rcx, %rax
movl %eax, -0x68(%rbp)
cmpl $0x0, -0x68(%rbp)
je 0x953d
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
callq 0x1d110
movq %rax, %rcx
movq -0xb0(%rbp), %rax
movq %rcx, -0x60(%rbp)
movq 0x2b18(%rax), %rdi
movq -0x60(%rbp), %rsi
movslq -0x68(%rbp), %rax
subq %rax, %rsi
callq 0x2440
movl -0x68(%rbp), %ecx
movl -0x30(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x30(%rbp)
jmp 0x953f
movl -0x64(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x64(%rbp)
jmp 0x947b
jmp 0x954f
movl $0x0, -0x6c(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x6c(%rbp), %eax
cmpl 0x2b4(%rcx), %eax
jae 0x95e2
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x540, %rsi            # imm = 0x540
movl -0x6c(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rsi
callq 0x1d1f0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x7c0, %rsi            # imm = 0x7C0
movl -0x6c(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rsi
callq 0x1d1f0
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movl -0x6c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x6c(%rbp)
jmp 0x9556
movl $0x0, -0x70(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x70(%rbp), %eax
cmpl 0x2b4(%rcx), %eax
jae 0x963c
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0xcc0, %rsi            # imm = 0xCC0
movl -0x70(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rsi
callq 0x1d1f0
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movl -0x70(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x70(%rbp)
jmp 0x95e9
movq -0xb0(%rbp), %rax
cmpl $0xa, 0x12a4(%rax)
jle 0x96a8
movl $0x0, -0x74(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x74(%rbp), %eax
cmpl 0x2b4(%rcx), %eax
jae 0x96a6
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0xa40, %rsi            # imm = 0xA40
movl -0x74(%rbp), %eax
shlq $0x3, %rax
addq %rax, %rsi
callq 0x1d1f0
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movl -0x74(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x74(%rbp)
jmp 0x9653
jmp 0x96c9
movq -0xb0(%rbp), %rdi
addq $0x1a80, %rdi           # imm = 0x1A80
addq $0xa40, %rdi            # imm = 0xA40
xorl %esi, %esi
movl $0x280, %edx            # imm = 0x280
callq 0x20d0
movq -0xb0(%rbp), %rax
cmpl $0x4, 0x1a84(%rax)
jge 0x96e6
movl $0x4, %eax
movl %eax, -0xbc(%rbp)
jmp 0x96f9
movq -0xb0(%rbp), %rax
movl 0x1a84(%rax), %eax
movl %eax, -0xbc(%rbp)
movl -0xbc(%rbp), %eax
movl %eax, -0x78(%rbp)
movl $0x0, -0x7c(%rbp)
movl -0x7c(%rbp), %eax
cmpl -0x78(%rbp), %eax
jge 0x9753
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0xf40, %rsi            # imm = 0xF40
movslq -0x7c(%rbp), %rax
shlq $0x2, %rax
addq %rax, %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movl -0x7c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x7c(%rbp)
jmp 0x9709
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movl $0x2, -0x80(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x80(%rbp), %eax
cmpl 0x2b4(%rcx), %eax
jae 0x97ff
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movl -0x80(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x80(%rbp)
jmp 0x979e
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1cbb0
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x8, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x20(%rbp), %rsi
callq 0x1cbb0
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x8, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x10, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movl 0x1a90(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x1a90(%rax)
movq 0x2b18(%rax), %rdi
leaq -0x29(%rbp), %rsi
callq 0x1d2d0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x28, %rsi
callq 0x1d1f0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x30, %rsi
callq 0x1d1f0
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x8, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rdi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
addq $0x1a80, %rdi           # imm = 0x1A80
addq $0x1030, %rdi           # imm = 0x1030
leaq 0x15cb2(%rip), %rsi     # 0x1f601
callq 0x2250
movl $0x0, -0x84(%rbp)
movl -0x84(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x99c1
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x2a(%rbp), %rsi
movl $0x1, %edx
callq 0x1cbe0
movq -0xb0(%rbp), %rdi
movslq -0x30(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x30(%rbp)
movb -0x2a(%rbp), %al
addq $0x1a80, %rdi           # imm = 0x1A80
addq $0x1030, %rdi           # imm = 0x1030
movsbl %al, %esi
callq 0x2100
movl -0x84(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x84(%rbp)
jmp 0x995e
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rdi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
addq $0x1a80, %rdi           # imm = 0x1A80
addq $0x1050, %rdi           # imm = 0x1050
leaq 0x15c02(%rip), %rsi     # 0x1f601
callq 0x2250
movl $0x0, -0x88(%rbp)
movl -0x88(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x9a71
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x2a(%rbp), %rsi
movl $0x1, %edx
callq 0x1cbe0
movq -0xb0(%rbp), %rdi
movslq -0x30(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x30(%rbp)
movb -0x2a(%rbp), %al
addq $0x1a80, %rdi           # imm = 0x1A80
addq $0x1050, %rdi           # imm = 0x1050
movsbl %al, %esi
callq 0x2100
movl -0x88(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x88(%rbp)
jmp 0x9a0e
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rdi
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
addq $0x1a80, %rdi           # imm = 0x1A80
addq $0x1070, %rdi           # imm = 0x1070
leaq 0x15b52(%rip), %rsi     # 0x1f601
callq 0x2250
movl $0x0, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x9b21
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x2a(%rbp), %rsi
movl $0x1, %edx
callq 0x1cbe0
movq -0xb0(%rbp), %rdi
movslq -0x30(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x30(%rbp)
movb -0x2a(%rbp), %al
addq $0x1a80, %rdi           # imm = 0x1A80
addq $0x1070, %rdi           # imm = 0x1070
movsbl %al, %esi
callq 0x2100
movl -0x8c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8c(%rbp)
jmp 0x9abe
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x1d1f0
movq -0xb0(%rbp), %rsi
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movq 0x2b18(%rsi), %rdi
addq $0x13f8, %rsi           # imm = 0x13F8
addq $0x100, %rsi            # imm = 0x100
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movl $0x0, -0x90(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x90(%rbp), %eax
cmpl 0x14f8(%rcx), %eax
jge 0x9e82
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x4, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x8, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0xc, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x10, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x14, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x18, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x20, %rsi
callq 0x1d1f0
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x8, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x28, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x2c, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x30, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rax
movq 0x38(%rax), %rsi
movl $0x8000, %edx           # imm = 0x8000
callq 0x1cbe0
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x8000, %rcx           # imm = 0x8000
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rax
movq 0x40(%rax), %rsi
movl $0x4000, %edx           # imm = 0x4000
callq 0x1cbe0
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4000, %rcx           # imm = 0x4000
movl %ecx, -0x30(%rbp)
movq 0x2b18(%rax), %rdi
movslq -0x90(%rbp), %rcx
movq 0x1500(%rax,%rcx,8), %rsi
addq $0x48, %rsi
callq 0x1d2d0
movslq -0x30(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x30(%rbp)
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x9b9b
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x14, %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movl $0x0, -0x94(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x94(%rbp), %eax
cmpl 0x1a94(%rcx), %eax
jge 0x9efd
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x29(%rbp), %rsi
callq 0x1d2d0
movslq -0x30(%rbp), %rax
addq $0x1, %rax
movl %eax, -0x30(%rbp)
movl -0x94(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x94(%rbp)
jmp 0x9eb5
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x18, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
cmpl $0x3, 0x1a98(%rax)
jne 0x9f57
movq -0xb0(%rbp), %rax
cmpl $0xb, 0x12a4(%rax)
jne 0x9f57
movq -0xb0(%rbp), %rax
movl $0xc, 0x12a4(%rax)
movq -0xb0(%rbp), %rax
movl 0x1a98(%rax), %eax
movl %eax, -0x98(%rbp)
cmpl $0x0, -0x98(%rbp)
jle 0x9fab
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x8, %rsi
callq 0x1cf60
movl -0x98(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x98(%rbp)
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
cmpl $0x0, -0x98(%rbp)
jle 0x9fef
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x13f8, %rsi           # imm = 0x13F8
addq $0x124, %rsi            # imm = 0x124
callq 0x1cb80
movl -0x98(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x98(%rbp)
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
jmp 0x9ff1
cmpl $0x0, -0x98(%rbp)
jle 0xa02d
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
movl -0x98(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x98(%rbp)
jmp 0x9ff1
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0x20, %rsi
callq 0x1cf60
movq -0xb0(%rbp), %rax
movslq -0x30(%rbp), %rcx
addq $0x4, %rcx
movl %ecx, -0x30(%rbp)
movl 0x1aa0(%rax), %ecx
movl %ecx, -0x98(%rbp)
cmpl $0xa, 0x12a4(%rax)
jle 0xa0ed
movl $0x0, -0x9c(%rbp)
movq -0xb0(%rbp), %rcx
movl -0x9c(%rbp), %eax
cmpl 0x1a84(%rcx), %eax
jge 0xa0eb
movq -0xb0(%rbp), %rsi
movq 0x2b18(%rsi), %rdi
addq $0x1a80, %rsi           # imm = 0x1A80
addq $0xf90, %rsi            # imm = 0xF90
movslq -0x9c(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rsi
callq 0x1d1f0
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movl -0x98(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x98(%rbp)
movl -0x9c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x9c(%rbp)
jmp 0xa07c
jmp 0xa16c
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x1d1f0
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movl -0x98(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x98(%rbp)
movl $0x0, -0xa0(%rbp)
movq -0xb0(%rbp), %rcx
movl -0xa0(%rbp), %eax
cmpl 0x1a84(%rcx), %eax
jge 0xa16a
movq -0xb0(%rbp), %rax
movsd -0x28(%rbp), %xmm0
movslq -0xa0(%rbp), %rcx
movsd %xmm0, 0x2a10(%rax,%rcx,8)
movl -0xa0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xa0(%rbp)
jmp 0xa128
jmp 0xa16c
jmp 0xa16e
cmpl $0x0, -0x98(%rbp)
jle 0xa1aa
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x28(%rbp), %rsi
callq 0x1d1f0
movslq -0x30(%rbp), %rax
addq $0x8, %rax
movl %eax, -0x30(%rbp)
movl -0x98(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x98(%rbp)
jmp 0xa16e
movq -0xb0(%rbp), %rax
movq 0x2b18(%rax), %rdi
leaq -0x14(%rbp), %rsi
callq 0x1cf60
movslq -0x30(%rbp), %rax
addq $0x4, %rax
movl %eax, -0x30(%rbp)
cmpl $0x12d687, -0x14(%rbp)  # imm = 0x12D687
je 0xa1de
movl $0x0, -0x4(%rbp)
jmp 0xa1e4
movl -0x30(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xc0, %rsp
popq %rbp
retq