// File: errantlinguist[P]Forecast/src/forecast_io/parsers/NotifyingSynchronicDataPointParser.cpp
// Function: forecast_io::parsers::NotifyingSynchronicDataPointParser::parseAttribute(forecast_io::parsers::DataPointAttribute const&, json_object* const&)
void NotifyingSynchronicDataPointParser::parseAttribute(
		const DataPointAttribute& attribute, json_object* const & pValue)
{
	switch (attribute)
	{
	case APPARENT_TEMPERATURE:
	{
		const double apparentTemperature(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyApparentTemperature(apparentTemperature);
		}
		break;
	}
	case CLOUD_COVER:
	{
		const double cloudCover(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyCloudCover(cloudCover);
		}
		break;
	}
	case DEW_POINT:
	{
		const double dewPoint(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyDewPoint(dewPoint);
		}
		break;
	}
	case HUMIDITY:
	{
		const double humidity(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyHumidity(humidity);
		}
		break;
	}
	case ICON:
	{
		const std::string iconName(json_object_get_string(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyIcon(iconName);
		}
		break;
	}
	case NEAREST_STORM_BEARING:
	{
		const double bearing(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyNearestStormBearing(bearing);
		}
		break;
	}
	case NEAREST_STORM_DISTANCE:
	{
		const double distance(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyNearestStormDistance(distance);
		}
		break;
	}
	case OZONE:
	{
		const double ozone(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyOzone(ozone);
		}
		break;
	}
	case PRECIPITATION_INTENSITY:
	{
		const double precipitationIntensity(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyPrecipitationIntensity(precipitationIntensity);
		}
		break;
	}
	case PRECIPITATION_PROBABILITY:
	{
		const double precipitationProbability(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyPrecipitationProbability(precipitationProbability);
		}
		break;
	}
	case PRECIPITATION_TYPE:
	{
		// NOTE: "currently" data blocks often don't have this attribute
		const std::string precipitationType(json_object_get_string(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyPrecipitationType(precipitationType);
		}
		break;
	}
	case PRESSURE:
	{
		const double pressure(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyPressure(pressure);
		}
		break;
	}
	case SUMMARY:
	{
		const std::string summary(json_object_get_string(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifySummary(summary);
		}
		break;
	}
	case DataPointAttribute::TEMPERATURE:
	{
		const double temperature(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyTemperature(temperature);
		}
		break;
	}
	case TIME:
	{
		const time_t time(static_cast<time_t>(json_object_get_int64(pValue)));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyTime(time);
		}
		break;
	}
	case VISIBILITY:
	{
		const double visibility(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyVisibility(visibility);
		}
		break;
	}
	case WIND_BEARING:
	{
		const double windBearing(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyWindBearing(windBearing);
		}
		break;
	}
	case WIND_SPEED:
	{
		const double windSpeed(json_object_get_double(pValue));
		for (listeners::SynchronicDataPointDetailsListener* const & pListener : getListeners())
		{
			pListener->notifyWindSpeed(windSpeed);
		}
		break;
	}
	default:
	{
		throw std::logic_error(
				createUndefinedAttributeErrorMessage(DataPointAttribute_NAME,
						attribute));
	}
	}

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3e0, %rsp            # imm = 0x3E0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x390(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq %rax, -0x388(%rbp)
subq $0x1f, %rax
ja 0x61460
movq -0x388(%rbp), %rax
leaq 0x7e99(%rip), %rcx      # 0x68590
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x20(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0x61660
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
callq 0x61690
movq %rax, -0x38(%rbp)
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x60752
jmp 0x6077f
leaq -0x30(%rbp), %rdi
callq 0x616f0
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
movq (%rax), %rdi
movsd -0x20(%rbp), %xmm0
movq (%rdi), %rax
callq *0x80(%rax)
leaq -0x30(%rbp), %rdi
callq 0x61720
jmp 0x6073f
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x48(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rdi
callq 0x61660
movq %rax, -0x58(%rbp)
movq -0x50(%rbp), %rdi
callq 0x61690
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x607d6
jmp 0x60800
leaq -0x58(%rbp), %rdi
callq 0x616f0
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq (%rax), %rdi
movsd -0x48(%rbp), %xmm0
movq (%rdi), %rax
callq *0x10(%rax)
leaq -0x58(%rbp), %rdi
callq 0x61720
jmp 0x607c3
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x70(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rdi
callq 0x61660
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rdi
callq 0x61690
movq %rax, -0x88(%rbp)
leaq -0x80(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x6085d
jmp 0x6088d
leaq -0x80(%rbp), %rdi
callq 0x616f0
movq %rax, -0x90(%rbp)
movq -0x90(%rbp), %rax
movq (%rax), %rdi
movsd -0x70(%rbp), %xmm0
movq (%rdi), %rax
callq *0x18(%rax)
leaq -0x80(%rbp), %rdi
callq 0x61720
jmp 0x60847
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x98(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0xa0(%rbp)
movq -0xa0(%rbp), %rdi
callq 0x61660
movq %rax, -0xa8(%rbp)
movq -0xa0(%rbp), %rdi
callq 0x61690
movq %rax, -0xb0(%rbp)
leaq -0xa8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x608fc
jmp 0x60935
leaq -0xa8(%rbp), %rdi
callq 0x616f0
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movq (%rax), %rdi
movsd -0x98(%rbp), %xmm0
movq (%rdi), %rax
callq *0x20(%rax)
leaq -0xa8(%rbp), %rdi
callq 0x61720
jmp 0x608e3
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa8e0
movq %rax, -0x3a0(%rbp)
leaq -0xd9(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0xa770
movq -0x3a0(%rbp), %rsi
movq -0x398(%rbp), %rdx
leaq -0xd8(%rbp), %rdi
callq 0xdcb0
jmp 0x6097c
leaq -0xd9(%rbp), %rdi
callq 0xa960
movq -0x390(%rbp), %rdi
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x3a8(%rbp)
jmp 0x609a1
movq -0x3a8(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xf8(%rbp), %rdi
callq 0x61660
movq %rax, -0x100(%rbp)
movq -0xf8(%rbp), %rdi
callq 0x61690
movq %rax, -0x108(%rbp)
leaq -0x100(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x609f1
jmp 0x60a76
leaq -0x100(%rbp), %rdi
callq 0x616f0
movq %rax, -0x110(%rbp)
movq -0x110(%rbp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x28(%rax), %rax
leaq -0xd8(%rbp), %rsi
callq *%rax
jmp 0x60a20
jmp 0x60a22
leaq -0x100(%rbp), %rdi
callq 0x61720
jmp 0x609d5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0xd9(%rbp), %rdi
callq 0xa960
jmp 0x6151d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0xa978
jmp 0x6151d
leaq -0xd8(%rbp), %rdi
callq 0xa978
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x118(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x120(%rbp)
movq -0x120(%rbp), %rdi
callq 0x61660
movq %rax, -0x128(%rbp)
movq -0x120(%rbp), %rdi
callq 0x61690
movq %rax, -0x130(%rbp)
leaq -0x128(%rbp), %rdi
leaq -0x130(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x60af1
jmp 0x60b2d
leaq -0x128(%rbp), %rdi
callq 0x616f0
movq %rax, -0x138(%rbp)
movq -0x138(%rbp), %rax
movq (%rax), %rdi
movsd -0x118(%rbp), %xmm0
movq (%rdi), %rax
callq *0x90(%rax)
leaq -0x128(%rbp), %rdi
callq 0x61720
jmp 0x60ad8
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x140(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rdi
callq 0x61660
movq %rax, -0x150(%rbp)
movq -0x148(%rbp), %rdi
callq 0x61690
movq %rax, -0x158(%rbp)
leaq -0x150(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x60b9c
jmp 0x60bd8
leaq -0x150(%rbp), %rdi
callq 0x616f0
movq %rax, -0x160(%rbp)
movq -0x160(%rbp), %rax
movq (%rax), %rdi
movsd -0x140(%rbp), %xmm0
movq (%rdi), %rax
callq *0x98(%rax)
leaq -0x150(%rbp), %rdi
callq 0x61720
jmp 0x60b83
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x168(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rdi
callq 0x61660
movq %rax, -0x178(%rbp)
movq -0x170(%rbp), %rdi
callq 0x61690
movq %rax, -0x180(%rbp)
leaq -0x178(%rbp), %rdi
leaq -0x180(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x60c47
jmp 0x60c80
leaq -0x178(%rbp), %rdi
callq 0x616f0
movq %rax, -0x188(%rbp)
movq -0x188(%rbp), %rax
movq (%rax), %rdi
movsd -0x168(%rbp), %xmm0
movq (%rdi), %rax
callq *0x30(%rax)
leaq -0x178(%rbp), %rdi
callq 0x61720
jmp 0x60c2e
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x190(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x198(%rbp)
movq -0x198(%rbp), %rdi
callq 0x61660
movq %rax, -0x1a0(%rbp)
movq -0x198(%rbp), %rdi
callq 0x61690
movq %rax, -0x1a8(%rbp)
leaq -0x1a0(%rbp), %rdi
leaq -0x1a8(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x60cef
jmp 0x60d28
leaq -0x1a0(%rbp), %rdi
callq 0x616f0
movq %rax, -0x1b0(%rbp)
movq -0x1b0(%rbp), %rax
movq (%rax), %rdi
movsd -0x190(%rbp), %xmm0
movq (%rdi), %rax
callq *0x38(%rax)
leaq -0x1a0(%rbp), %rdi
callq 0x61720
jmp 0x60cd6
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x1b8(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x1c0(%rbp)
movq -0x1c0(%rbp), %rdi
callq 0x61660
movq %rax, -0x1c8(%rbp)
movq -0x1c0(%rbp), %rdi
callq 0x61690
movq %rax, -0x1d0(%rbp)
leaq -0x1c8(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x60d97
jmp 0x60dd0
leaq -0x1c8(%rbp), %rdi
callq 0x616f0
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rax
movq (%rax), %rdi
movsd -0x1b8(%rbp), %xmm0
movq (%rdi), %rax
callq *0x40(%rax)
leaq -0x1c8(%rbp), %rdi
callq 0x61720
jmp 0x60d7e
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa8e0
movq %rax, -0x3b8(%rbp)
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0xa770
movq -0x3b8(%rbp), %rsi
movq -0x3b0(%rbp), %rdx
leaq -0x1f8(%rbp), %rdi
callq 0xdcb0
jmp 0x60e17
leaq -0x1f9(%rbp), %rdi
callq 0xa960
movq -0x390(%rbp), %rdi
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x3c0(%rbp)
jmp 0x60e3c
movq -0x3c0(%rbp), %rax
movq %rax, -0x208(%rbp)
movq -0x208(%rbp), %rdi
callq 0x61660
movq %rax, -0x210(%rbp)
movq -0x208(%rbp), %rdi
callq 0x61690
movq %rax, -0x218(%rbp)
leaq -0x210(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x60e8c
jmp 0x60f11
leaq -0x210(%rbp), %rdi
callq 0x616f0
movq %rax, -0x220(%rbp)
movq -0x220(%rbp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x48(%rax), %rax
leaq -0x1f8(%rbp), %rsi
callq *%rax
jmp 0x60ebb
jmp 0x60ebd
leaq -0x210(%rbp), %rdi
callq 0x61720
jmp 0x60e70
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0x1f9(%rbp), %rdi
callq 0xa960
jmp 0x6151d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0xa978
jmp 0x6151d
leaq -0x1f8(%rbp), %rdi
callq 0xa978
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x228(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x230(%rbp)
movq -0x230(%rbp), %rdi
callq 0x61660
movq %rax, -0x238(%rbp)
movq -0x230(%rbp), %rdi
callq 0x61690
movq %rax, -0x240(%rbp)
leaq -0x238(%rbp), %rdi
leaq -0x240(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x60f8c
jmp 0x60fc5
leaq -0x238(%rbp), %rdi
callq 0x616f0
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rax
movq (%rax), %rdi
movsd -0x228(%rbp), %xmm0
movq (%rdi), %rax
callq *0x50(%rax)
leaq -0x238(%rbp), %rdi
callq 0x61720
jmp 0x60f73
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa8e0
movq %rax, -0x3d0(%rbp)
leaq -0x269(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0xa770
movq -0x3d0(%rbp), %rsi
movq -0x3c8(%rbp), %rdx
leaq -0x268(%rbp), %rdi
callq 0xdcb0
jmp 0x6100c
leaq -0x269(%rbp), %rdi
callq 0xa960
movq -0x390(%rbp), %rdi
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x3d8(%rbp)
jmp 0x61031
movq -0x3d8(%rbp), %rax
movq %rax, -0x278(%rbp)
movq -0x278(%rbp), %rdi
callq 0x61660
movq %rax, -0x280(%rbp)
movq -0x278(%rbp), %rdi
callq 0x61690
movq %rax, -0x288(%rbp)
leaq -0x280(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x61081
jmp 0x61106
leaq -0x280(%rbp), %rdi
callq 0x616f0
movq %rax, -0x290(%rbp)
movq -0x290(%rbp), %rax
movq (%rax), %rdi
movq (%rdi), %rax
movq 0x58(%rax), %rax
leaq -0x268(%rbp), %rsi
callq *%rax
jmp 0x610b0
jmp 0x610b2
leaq -0x280(%rbp), %rdi
callq 0x61720
jmp 0x61065
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0x269(%rbp), %rdi
callq 0xa960
jmp 0x6151d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0x268(%rbp), %rdi
callq 0xa978
jmp 0x6151d
leaq -0x268(%rbp), %rdi
callq 0xa978
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x298(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x2a0(%rbp)
movq -0x2a0(%rbp), %rdi
callq 0x61660
movq %rax, -0x2a8(%rbp)
movq -0x2a0(%rbp), %rdi
callq 0x61690
movq %rax, -0x2b0(%rbp)
leaq -0x2a8(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x61181
jmp 0x611bd
leaq -0x2a8(%rbp), %rdi
callq 0x616f0
movq %rax, -0x2b8(%rbp)
movq -0x2b8(%rbp), %rax
movq (%rax), %rdi
movsd -0x298(%rbp), %xmm0
movq (%rdi), %rax
callq *0x88(%rax)
leaq -0x2a8(%rbp), %rdi
callq 0x61720
jmp 0x61168
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5d0
movq -0x390(%rbp), %rdi
movq %rax, -0x2c0(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x2c8(%rbp)
movq -0x2c8(%rbp), %rdi
callq 0x61660
movq %rax, -0x2d0(%rbp)
movq -0x2c8(%rbp), %rdi
callq 0x61690
movq %rax, -0x2d8(%rbp)
leaq -0x2d0(%rbp), %rdi
leaq -0x2d8(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x6122b
jmp 0x61263
leaq -0x2d0(%rbp), %rdi
callq 0x616f0
movq %rax, -0x2e0(%rbp)
movq -0x2e0(%rbp), %rax
movq (%rax), %rdi
movq -0x2c0(%rbp), %rsi
movq (%rdi), %rax
callq *0x60(%rax)
leaq -0x2d0(%rbp), %rdi
callq 0x61720
jmp 0x61212
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x2e8(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x2f0(%rbp)
movq -0x2f0(%rbp), %rdi
callq 0x61660
movq %rax, -0x2f8(%rbp)
movq -0x2f0(%rbp), %rdi
callq 0x61690
movq %rax, -0x300(%rbp)
leaq -0x2f8(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x612d2
jmp 0x6130b
leaq -0x2f8(%rbp), %rdi
callq 0x616f0
movq %rax, -0x308(%rbp)
movq -0x308(%rbp), %rax
movq (%rax), %rdi
movsd -0x2e8(%rbp), %xmm0
movq (%rdi), %rax
callq *0x68(%rax)
leaq -0x2f8(%rbp), %rdi
callq 0x61720
jmp 0x612b9
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x310(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x318(%rbp)
movq -0x318(%rbp), %rdi
callq 0x61660
movq %rax, -0x320(%rbp)
movq -0x318(%rbp), %rdi
callq 0x61690
movq %rax, -0x328(%rbp)
leaq -0x320(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x6137a
jmp 0x613b3
leaq -0x320(%rbp), %rdi
callq 0x616f0
movq %rax, -0x330(%rbp)
movq -0x330(%rbp), %rax
movq (%rax), %rdi
movsd -0x310(%rbp), %xmm0
movq (%rdi), %rax
callq *0x70(%rax)
leaq -0x320(%rbp), %rdi
callq 0x61720
jmp 0x61361
jmp 0x61514
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xa5b0
movq -0x390(%rbp), %rdi
movsd %xmm0, -0x338(%rbp)
addq $0x10, %rdi
callq 0x61640
movq %rax, -0x340(%rbp)
movq -0x340(%rbp), %rdi
callq 0x61660
movq %rax, -0x348(%rbp)
movq -0x340(%rbp), %rdi
callq 0x61690
movq %rax, -0x350(%rbp)
leaq -0x348(%rbp), %rdi
leaq -0x350(%rbp), %rsi
callq 0x616c0
testb $0x1, %al
jne 0x61422
jmp 0x6145b
leaq -0x348(%rbp), %rdi
callq 0x616f0
movq %rax, -0x358(%rbp)
movq -0x358(%rbp), %rax
movq (%rax), %rdi
movsd -0x338(%rbp), %xmm0
movq (%rdi), %rax
callq *0x78(%rax)
leaq -0x348(%rbp), %rdi
callq 0x61720
jmp 0x61409
jmp 0x61514
movb $0x1, -0x379(%rbp)
movl $0x10, %edi
callq 0xa2d0
movq %rax, -0x3e0(%rbp)
movq -0x10(%rbp), %rdx
leaq 0x3cc85(%rip), %rsi     # 0x9e108
leaq -0x378(%rbp), %rdi
callq 0x61750
jmp 0x61491
movq -0x3e0(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0xa130
jmp 0x614a6
movq -0x3e0(%rbp), %rdi
movb $0x0, -0x379(%rbp)
movq 0x3bb2d(%rip), %rsi     # 0x9cfe8
movq 0x3bb06(%rip), %rdx     # 0x9cfc8
callq 0xa500
jmp 0x61529
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
jmp 0x614fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xe8(%rbp)
movl %eax, -0xec(%rbp)
leaq -0x378(%rbp), %rdi
callq 0xa978
testb $0x1, -0x379(%rbp)
jne 0x61506
jmp 0x61512
movq -0x3e0(%rbp), %rdi
callq 0xa6c0
jmp 0x6151d
addq $0x3e0, %rsp            # imm = 0x3E0
popq %rbp
retq
movq -0xe8(%rbp), %rdi
callq 0xa520
nopl (%rax)