// File: /workspace/github_cpp_makefile_star2_O1/haught[P]cws_plugin/cws_plugin.cpp
// Function: write_1_gcode(char*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>&)
void write_1_gcode(char *fileName,map<string, string> &valueMap) {
	ofstream ofile;               //��������ļ�
	int layerNum = static_cast<int>(strtol(valueMap.at("totalLayer").c_str(), NULL, 0));
	int bottomLayerNum = static_cast<int>(strtol(valueMap.at("bottomLayCount").c_str(), NULL, 0));
	int normalExposureTime = static_cast<float>(strtof(valueMap.at("normalExposureTime").c_str(), NULL))*1000;
	int bottomLayExposureTime = static_cast<float>(strtof(valueMap.at("bottomLayExposureTime").c_str(), NULL)) * 1000;
	int bottomLightOffTime = static_cast<float>(strtof(valueMap.at("bottomLightOffTime").c_str(), NULL)) * 1000;
	int lightOffTime = static_cast<float>(strtof(valueMap.at("lightOffTime").c_str(), NULL)) * 1000;
	int resolutionX = static_cast<int>(strtol(valueMap.at("resolutionX").c_str(), NULL, 0));
	int resolutionY = static_cast<int>(strtol(valueMap.at("resolutionY").c_str(), NULL, 0));
	float widthX = static_cast<float>(strtof(valueMap.at("machineX").c_str(), NULL));
	float widthY = static_cast<float>(strtof(valueMap.at("machineY").c_str(), NULL));
	float layerHeight = static_cast<float>(strtof(valueMap.at("layerHeight").c_str(), NULL));
	ofile.open(fileName);     //��Ϊ����ļ���
	ofile << ";(****Build and Slicing Parameters****)" << endl;
	ofile << ";(Pix per mm X = " << resolutionX/widthX << " px/mm)" << endl;
	ofile << ";(Pix per mm Y = " << resolutionY/widthY << " px/mm)" << endl;
	ofile << ";(X Resolution = " << resolutionX << ")" << endl;
	ofile << ";(Y Resolution = " << resolutionY << ")" << endl;
	ofile << ";(Layer Thickness = " << layerHeight << " mm)" << endl;
	ofile << ";(Layer Time = 7000 ms)" << endl;
	ofile << ";(Bottom Layers Time = " << bottomLayExposureTime << " ms)" << endl;
	ofile << ";(Number of Bottom Layers = " << valueMap.at("bottomLayCount") << ")" << endl;
	ofile << ";(Blanking Layer Time = " << int(static_cast<float>(strtof(valueMap.at("normalExposureTime").c_str(), NULL)) * 1000) << " ms)" << endl;
	ofile << ";(Build Direction = Bottom_Up)" << endl;
	ofile << ";(Lift Distance = " << valueMap.at("normalLayerLiftHeight") << " mm)" << endl; 
	ofile << ";(Slide/Tilt Value = 0)" << endl;
	ofile << ";(Anti Aliasing = True)" << endl;
	ofile << ";(Use Mainlift GCode Tab = False)" << endl;
	ofile << ";(Anti Aliasing Value = 2)" << endl;
	ofile << ";(Z Lift Feed Rate = 60.00000 mm/s)" << endl;
	ofile << ";(Z Lift Retract Rate = 150.00000 mm/s)" << endl;
	ofile << ";(Flip X = " << ((valueMap.at("mirror") == "1")?"True":"False") << ")" << endl;
	ofile << ";(Flip Y = False)" << endl;
	ofile << ";Number of Slices = " << valueMap.at("totalLayer") <<  endl;
	ofile << ";(****Machine Configuration ******)" << endl;
	ofile << ";(Platform X Size = " << valueMap.at("machineX") << "mm)" << endl;
	ofile << ";(Platform Y Size = " << valueMap.at("machineY") << "mm)" << endl;
	ofile << ";(Platform Z Size = " << valueMap.at("machineZ") << "mm)" << endl;
	ofile << ";(Max X Feedrate = 100mm/s)" << endl;
	ofile << ";(Max Y Feedrate = 100mm/s)" << endl;
	ofile << ";(Max Z Feedrate = 100mm/s)" << endl;
	ofile << ";(Machine Type = UV_DLP)" << endl;
	ofile << "; ********** Header Start ********" << endl;
	ofile << "; Here you can set any G or M - Code which should be executed BEFORE the build process" << endl;
	ofile << "G21; Set units to be mm" << endl;
	ofile << "G91; Relative Positioning" << endl;
	ofile << "M17; Enable motors" << endl;
	ofile << "G28 Z0" << endl;
	ofile << "<Slice> Blank" << endl;
	ofile << "; ********** Header End **********" << endl;

	float normalLayerLiftHeight = static_cast<float>(strtof(valueMap.at("normalLayerLiftHeight").c_str(), NULL)) ;

	float dropHeight = normalLayerLiftHeight - layerHeight;
	for (int i = 0; i < layerNum; i++) {
		ofile << "M106 S255" << endl;

		ofile << ";********** Pre - Slice Start ********" << endl;
		ofile << ";Set up any GCode here to be executed before a lift" << endl;
		ofile << ";********** Pre - Slice End **********" << endl;
		ofile << ";<Slice> " << i << endl;
		ofile << ";<Delay> " << ((i < bottomLayerNum)? bottomLayExposureTime:normalExposureTime) << endl;
		ofile << ";<Slice> Blank" << endl;
		ofile << "M106 S0" << endl;
		ofile << "; ********** Lift Sequence ********" << endl;
		ofile << "G1 Z" << valueMap.at("normalLayerLiftHeight") << " F" << ((i < bottomLayerNum)?valueMap.at("bottomLayerLiftSpeed"):valueMap.at("normalLayerLiftSpeed")) << endl; 
		ofile << "G1 Z-" << dropHeight << " F" << valueMap.at("normalDropSpeed") << endl;
		ofile << ";<Delay> " << ((i < bottomLayerNum)?bottomLightOffTime : lightOffTime) << endl;
	}

	ofile << "; ********** Footer Start ********" << endl;
	ofile << "; Here you can set any G or M - Code which should be executed after the last Layer is Printed" << endl;
	ofile << "M18; Disable Motors" << endl;
	ofile << "M106 SO" << endl;
	ofile << "G1 Z40" << endl;
	ofile << ";<Completed>" << endl;
	ofile << "; ********** Footer End ********" << endl;

	ofile.close();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x298, %rsp            # imm = 0x298
movq %rsi, %r14
movq %rdi, %rbx
leaq -0x2c0(%rbp), %rdi
callq 0x2350
leaq -0x38(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x596b(%rip), %rsi      # 0x8020
leaq 0x596e(%rip), %rdx      # 0x802a
leaq -0x48(%rbp), %rdi
callq 0x7388
leaq -0x48(%rbp), %rsi
movq %r14, -0x50(%rbp)
movq %r14, %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2290
movq %rax, -0x80(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x26fe
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x591b(%rip), %rsi      # 0x802b
leaq 0x5922(%rip), %rdx      # 0x8039
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2290
movq %rax, -0x60(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2752
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x58d6(%rip), %rsi      # 0x803a
leaq 0x58e1(%rip), %rdx      # 0x804c
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
movss %xmm0, -0x6c(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x27a5
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x5896(%rip), %rsi      # 0x804d
leaq 0x58a4(%rip), %rdx      # 0x8062
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
movss %xmm0, -0x70(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x27f8
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x5859(%rip), %rsi      # 0x8063
leaq 0x5864(%rip), %rdx      # 0x8075
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
movss %xmm0, -0x78(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x284b
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x5819(%rip), %rsi      # 0x8076
leaq 0x581e(%rip), %rdx      # 0x8082
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
movss %xmm0, -0x74(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x289e
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x57d3(%rip), %rsi      # 0x8083
leaq 0x57d7(%rip), %rdx      # 0x808e
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2290
movq %rax, %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x28f1
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x578c(%rip), %rsi      # 0x808f
leaq 0x5790(%rip), %rdx      # 0x809a
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x2290
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2944
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x5745(%rip), %rsi      # 0x809b
leaq 0x5746(%rip), %rdx      # 0x80a3
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
movss %xmm0, -0x58(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2997
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x56fb(%rip), %rsi      # 0x80a4
leaq 0x56fc(%rip), %rdx      # 0x80ac
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
movss %xmm0, -0x54(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x29ea
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x56b1(%rip), %rsi      # 0x80ad
leaq 0x56b5(%rip), %rdx      # 0x80b8
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
movss %xmm0, -0x68(%rbp)
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2a3d
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x2c0(%rbp), %rdi
movq %rbx, %rsi
movl $0x10, %edx
callq 0x2060
leaq 0x5661(%rip), %rsi      # 0x80b9
leaq -0x2c0(%rbp), %rbx
movl $0x27, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x563f(%rip), %rsi      # 0x80e1
leaq -0x2c0(%rbp), %rdi
movl $0x11, %edx
callq 0x2240
xorps %xmm0, %xmm0
cvtsi2ss %r15d, %xmm0
divss -0x58(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq -0x2c0(%rbp), %rdi
callq 0x2320
movq %rax, %rbx
leaq 0x5619(%rip), %rsi      # 0x80f3
movl $0x7, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x55e6(%rip), %rsi      # 0x80fb
leaq -0x2c0(%rbp), %rdi
movl $0x11, %edx
callq 0x2240
xorps %xmm0, %xmm0
cvtsi2ss %r14d, %xmm0
divss -0x54(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq -0x2c0(%rbp), %rdi
callq 0x2320
movq %rax, %rbx
leaq 0x55a6(%rip), %rsi      # 0x80f3
movl $0x7, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5585(%rip), %rsi      # 0x810d
leaq -0x2c0(%rbp), %rdi
movl $0x11, %edx
callq 0x2240
leaq -0x2c0(%rbp), %rdi
movl %r15d, %esi
callq 0x2360
movq %rax, %rbx
leaq 0x64cd(%rip), %rsi      # 0x907f
movl $0x1, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5532(%rip), %rsi      # 0x811f
leaq -0x2c0(%rbp), %rdi
movl $0x11, %edx
callq 0x2240
leaq -0x2c0(%rbp), %rdi
movl %r14d, %esi
callq 0x2360
movq %rax, %rbx
leaq 0x6468(%rip), %rsi      # 0x907f
movl $0x1, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x54df(%rip), %rsi      # 0x8131
leaq -0x2c0(%rbp), %rdi
movl $0x14, %edx
callq 0x2240
cvtss2sd -0x68(%rbp), %xmm0
leaq -0x2c0(%rbp), %rdi
callq 0x2320
movq %rax, %rbx
leaq 0x54c8(%rip), %rsi      # 0x8146
movl $0x4, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5492(%rip), %rsi      # 0x814b
leaq -0x2c0(%rbp), %rbx
movl $0x17, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5460(%rip), %rsi      # 0x8163
leaq -0x2c0(%rbp), %rdi
movl $0x17, %edx
callq 0x2240
movss -0x70(%rbp), %xmm0
mulss 0x52e3(%rip), %xmm0     # 0x8004
cvttss2si %xmm0, %esi
leaq -0x2c0(%rbp), %rdi
movl %esi, -0x58(%rbp)
callq 0x2360
movq %rax, %rbx
leaq 0x5420(%rip), %rsi      # 0x815e
movl $0x4, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5402(%rip), %rsi      # 0x817b
leaq -0x2c0(%rbp), %rdi
movl $0x1c, %edx
callq 0x2240
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x528f(%rip), %rsi      # 0x802b
leaq 0x5296(%rip), %rdx      # 0x8039
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x2240
movq %rax, %rbx
leaq 0x62ad(%rip), %rsi      # 0x907f
movl $0x1, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2e1f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq 0x5372(%rip), %rsi      # 0x8198
leaq -0x2c0(%rbp), %rdi
movl $0x18, %edx
callq 0x2240
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x51f1(%rip), %rsi      # 0x803a
leaq 0x51fc(%rip), %rdx      # 0x804c
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
mulss 0x5190(%rip), %xmm0     # 0x8004
cvttss2si %xmm0, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2360
movq %rax, %rbx
leaq 0x52d0(%rip), %rsi      # 0x815e
movl $0x4, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2edb
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq 0x52cf(%rip), %rsi      # 0x81b1
leaq -0x2c0(%rbp), %rbx
movl $0x1e, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x52a4(%rip), %rsi      # 0x81d0
leaq -0x2c0(%rbp), %rdi
movl $0x12, %edx
callq 0x2240
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x5294(%rip), %rsi      # 0x81e3
leaq 0x52a2(%rip), %rdx      # 0x81f8
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x2240
movq %rax, %rbx
leaq 0x51c1(%rip), %rsi      # 0x8146
movl $0x4, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x2fd2
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq 0x5220(%rip), %rsi      # 0x81f9
leaq -0x2c0(%rbp), %rbx
movl $0x17, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x51ee(%rip), %rsi      # 0x8211
leaq -0x2c0(%rbp), %rbx
movl $0x17, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x51bc(%rip), %rsi      # 0x8229
leaq -0x2c0(%rbp), %rbx
movl $0x21, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5194(%rip), %rsi      # 0x824b
leaq -0x2c0(%rbp), %rbx
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5165(%rip), %rsi      # 0x8266
leaq -0x2c0(%rbp), %rbx
movl $0x23, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x513f(%rip), %rsi      # 0x828a
leaq -0x2c0(%rbp), %rbx
movl $0x27, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x511d(%rip), %rsi      # 0x82b2
leaq -0x2c0(%rbp), %rdi
movl $0xb, %edx
callq 0x2240
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x5106(%rip), %rsi      # 0x82be
leaq 0x5105(%rip), %rdx      # 0x82c4
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
leaq 0x50ed(%rip), %rsi      # 0x82c5
movq %rax, %rdi
callq 0x20d0
xorl %edx, %edx
testl %eax, %eax
sete %dl
leaq 0x50d9(%rip), %rax      # 0x82c7
leaq 0x50d7(%rip), %rsi      # 0x82cc
cmoveq %rax, %rsi
xorq $0x5, %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x2240
leaq 0x5e6f(%rip), %rsi      # 0x907f
leaq -0x2c0(%rbp), %rbx
movl $0x1, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x326c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq 0x505f(%rip), %rsi      # 0x82d2
leaq -0x2c0(%rbp), %rbx
movl $0x11, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5027(%rip), %rsi      # 0x82e4
leaq -0x2c0(%rbp), %rdi
movl $0x14, %edx
callq 0x2240
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x4d40(%rip), %rsi      # 0x8020
leaq 0x4d43(%rip), %rdx      # 0x802a
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x2240
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x334f
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq 0x4fa3(%rip), %rsi      # 0x82f9
leaq -0x2c0(%rbp), %rbx
movl $0x23, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4f7d(%rip), %rsi      # 0x831d
leaq -0x2c0(%rbp), %rdi
movl $0x14, %edx
callq 0x2240
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x4cd8(%rip), %rsi      # 0x809b
leaq 0x4cd9(%rip), %rdx      # 0x80a3
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x2240
movq %rax, %rbx
leaq 0x4d4e(%rip), %rsi      # 0x8147
movl $0x3, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3446
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq 0x4ee5(%rip), %rsi      # 0x8332
leaq -0x2c0(%rbp), %rdi
movl $0x14, %edx
callq 0x2240
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x4c34(%rip), %rsi      # 0x80a4
leaq 0x4c35(%rip), %rdx      # 0x80ac
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x2240
movq %rax, %rbx
leaq 0x4ca1(%rip), %rsi      # 0x8147
movl $0x3, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x34f3
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq 0x4e4d(%rip), %rsi      # 0x8347
leaq -0x2c0(%rbp), %rdi
movl $0x14, %edx
callq 0x2240
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x4e3f(%rip), %rsi      # 0x835c
leaq 0x4e40(%rip), %rdx      # 0x8364
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq -0x2c0(%rbp), %rdi
callq 0x2240
movq %rax, %rbx
leaq 0x4bf4(%rip), %rsi      # 0x8147
movl $0x3, %edx
movq %rax, %rdi
callq 0x2240
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x35a0
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
leaq 0x4dbe(%rip), %rsi      # 0x8365
leaq -0x2c0(%rbp), %rbx
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4d90(%rip), %rsi      # 0x8381
leaq -0x2c0(%rbp), %rbx
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4d62(%rip), %rsi      # 0x839d
leaq -0x2c0(%rbp), %rbx
movl $0x1b, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4d34(%rip), %rsi      # 0x83b9
leaq -0x2c0(%rbp), %rbx
movl $0x18, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x5495(%rip), %rsi      # 0x8b64
leaq -0x2c0(%rbp), %rbx
movl $0x22, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4cb9(%rip), %rsi      # 0x83d2
leaq -0x2c0(%rbp), %rbx
movl $0x56, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4cc6(%rip), %rsi      # 0x8429
leaq -0x2c0(%rbp), %rbx
movl $0x17, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4c94(%rip), %rsi      # 0x8441
leaq -0x2c0(%rbp), %rbx
movl $0x19, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4c64(%rip), %rsi      # 0x845b
leaq -0x2c0(%rbp), %rbx
movl $0x12, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4c2d(%rip), %rsi      # 0x846e
leaq -0x2c0(%rbp), %rbx
movl $0x6, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4cae(%rip), %rsi      # 0x8539
leaq -0x2c0(%rbp), %rbx
movl $0xd, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4ba0(%rip), %rsi      # 0x8475
leaq -0x2c0(%rbp), %rbx
movl $0x22, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %r13
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
movq %rax, (%rdi)
leaq 0x48b6(%rip), %rsi      # 0x81e3
leaq 0x48c4(%rip), %rdx      # 0x81f8
callq 0x7388
leaq -0x48(%rbp), %rsi
movq -0x50(%rbp), %rdi
callq 0x711e
movq (%rax), %rdi
xorl %esi, %esi
callq 0x2270
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3973
movq -0x38(%rbp), %rsi
incq %rsi
movss %xmm0, -0x54(%rbp)
callq 0x2210
movss -0x54(%rbp), %xmm0
cmpl $0x0, -0x80(%rbp)
jle 0x3e94
movss -0x6c(%rbp), %xmm1
mulss 0x467a(%rip), %xmm1     # 0x8004
cvttss2si %xmm1, %eax
movl %eax, -0x54(%rbp)
subss -0x68(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
movsd %xmm0, -0x68(%rbp)
xorl %r14d, %r14d
movl $0x9, %edx
movq %r13, %rdi
leaq 0x4ae7(%rip), %rsi      # 0x8498
callq 0x2240
movq -0x2c0(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x26, %edx
movq %r13, %rdi
leaq 0x4ab2(%rip), %rsi      # 0x84a2
callq 0x2240
movq -0x2c0(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x33, %edx
movq %r13, %rdi
leaq 0x4a9a(%rip), %rsi      # 0x84c9
callq 0x2240
movq -0x2c0(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x26, %edx
movq %r13, %rdi
leaq 0x4a8f(%rip), %rsi      # 0x84fd
callq 0x2240
movq -0x2c0(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x9, %edx
movq %r13, %rdi
leaq 0x4a77(%rip), %rsi      # 0x8524
callq 0x2240
movq %r13, %rdi
movl %r14d, %esi
callq 0x2360
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x9, %edx
movq %r13, %rdi
leaq 0x4a38(%rip), %rsi      # 0x852e
callq 0x2240
cmpl -0x60(%rbp), %r14d
setl %r15b
movl -0x54(%rbp), %esi
cmovll -0x58(%rbp), %esi
movq %r13, %rdi
callq 0x2360
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0xe, %edx
movq %r13, %rdi
leaq 0x49ed(%rip), %rsi      # 0x8538
callq 0x2240
movq -0x2c0(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x7, %edx
movq %r13, %rdi
leaq 0x5125(%rip), %rsi      # 0x8caf
callq 0x2240
movq -0x2c0(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x23, %edx
movq %r13, %rdi
leaq 0x497e(%rip), %rsi      # 0x8547
callq 0x2240
movq -0x2c0(%rbp), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movl $0x4, %edx
movq %r13, %rdi
leaq 0x4963(%rip), %rsi      # 0x856b
callq 0x2240
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
leaq 0x45c0(%rip), %rsi      # 0x81e3
leaq 0x45ce(%rip), %rdx      # 0x81f8
callq 0x7388
movq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r13, %rdi
callq 0x2240
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0x4914(%rip), %rsi      # 0x8570
callq 0x2240
cmpl -0x60(%rbp), %r14d
jge 0x3ca0
leaq -0xb0(%rbp), %rax
movq %rax, -0xc0(%rbp)
leaq -0xc0(%rbp), %rbx
movq %rbx, %rdi
leaq 0x48ed(%rip), %rsi      # 0x8573
leaq 0x48fa(%rip), %rdx      # 0x8587
callq 0x7388
movq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x711e
jmp 0x3cd7
leaq -0x90(%rbp), %rax
movq %rax, -0xa0(%rbp)
leaq -0xa0(%rbp), %rbx
movq %rbx, %rdi
leaq 0x48c9(%rip), %rsi      # 0x8588
leaq 0x48d6(%rip), %rdx      # 0x859c
callq 0x7388
movq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r12, %rdi
callq 0x2240
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
cmpl -0x60(%rbp), %r14d
jge 0x3d32
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x3d54
movq -0xb0(%rbp), %rsi
jmp 0x3d4c
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x3d54
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3d6d
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
movl $0x5, %edx
movq %r13, %rdi
leaq 0x4821(%rip), %rsi      # 0x859d
callq 0x2240
movq %r13, %rdi
movsd -0x68(%rbp), %xmm0
callq 0x2320
movq %rax, %r12
movl $0x2, %edx
movq %rax, %rdi
leaq 0x47d0(%rip), %rsi      # 0x8570
callq 0x2240
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq -0x48(%rbp), %rbx
movq %rbx, %rdi
leaq 0x47e8(%rip), %rsi      # 0x85a3
leaq 0x47f0(%rip), %rdx      # 0x85b2
callq 0x7388
movq -0x50(%rbp), %rdi
movq %rbx, %rsi
callq 0x711e
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r12, %rdi
callq 0x2240
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x3e25
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
movl $0x9, %edx
movq %r13, %rdi
leaq 0x46fa(%rip), %rsi      # 0x852e
callq 0x2240
movss -0x78(%rbp), %xmm0
cmpl -0x60(%rbp), %r14d
jl 0x3e49
movss -0x74(%rbp), %xmm0
mulss 0x41b3(%rip), %xmm0     # 0x8004
cvttss2si %xmm0, %esi
movq %r13, %rdi
callq 0x2360
movq %rax, %r12
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r12, %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
incl %r14d
cmpl %r14d, -0x80(%rbp)
jne 0x39a2
leaq 0x4d1d(%rip), %rsi      # 0x8bb8
leaq -0x2c0(%rbp), %rbx
movl $0x22, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x46ce(%rip), %rsi      # 0x85b3
leaq -0x2c0(%rbp), %rbx
movl $0x5d, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x46e2(%rip), %rsi      # 0x8611
leaq -0x2c0(%rbp), %rbx
movl $0x13, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x46ac(%rip), %rsi      # 0x8625
leaq -0x2c0(%rbp), %rbx
movl $0x7, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x466a(%rip), %rsi      # 0x862d
leaq -0x2c0(%rbp), %rbx
movl $0x6, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x4627(%rip), %rsi      # 0x8634
leaq -0x2c0(%rbp), %rbx
movl $0xc, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq 0x45ea(%rip), %rsi      # 0x8641
leaq -0x2c0(%rbp), %rbx
movl $0x20, %edx
movq %rbx, %rdi
callq 0x2240
movq -0x2c0(%rbp), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
leaq -0x2c0(%rbp), %rdi
callq 0x2040
movq %rax, %rdi
callq 0x2170
leaq -0x2c0(%rbp), %rdi
callq 0x22a0
movq 0x6f23(%rip), %rax      # 0xafd0
movq (%rax), %rcx
movq 0x18(%rax), %rax
leaq -0x2b8(%rbp), %rdi
movq %rcx, -0x8(%rdi)
movq -0x18(%rcx), %rcx
movq %rax, -0x2c0(%rbp,%rcx)
callq 0x21b0
leaq -0x1c8(%rbp), %rdi
callq 0x20e0
addq $0x298, %rsp            # imm = 0x298
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4253
jmp 0x4273
jmp 0x4273
jmp 0x4273
jmp 0x4273
jmp 0x4273
jmp 0x4273
jmp 0x4273
jmp 0x4273
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4273
jmp 0x4253
jmp 0x4253
jmp 0x4253
jmp 0x4253
jmp 0x4253
jmp 0x4253
jmp 0x4253
jmp 0x4253
movq %rax, %rbx
movb $0x1, %r14b
xorl %r15d, %r15d
jmp 0x4224
movq %rax, %rbx
movb $0x1, %r15b
jmp 0x424e
movq %rax, %rbx
movb $0x1, %r14b
xorl %r15d, %r15d
jmp 0x41fd
movq %rax, %rbx
movb $0x1, %r15b
jmp 0x4227
jmp 0x4273
jmp 0x4273
jmp 0x41f2
jmp 0x4273
jmp 0x4253
movq %rax, %rbx
cmpl -0x60(%rbp), %r14d
setge %r14b
testb %r14b, %r14b
je 0x4224
movq -0xa0(%rbp), %rdi
leaq -0x90(%rbp), %rax
cmpq %rax, %rdi
je 0x4224
movq -0x90(%rbp), %rsi
incq %rsi
callq 0x2210
testb %r14b, %r14b
testb %r15b, %r15b
je 0x424e
movq -0xc0(%rbp), %rdi
leaq -0xb0(%rbp), %rax
cmpq %rax, %rdi
je 0x424e
movq -0xb0(%rbp), %rsi
incq %rsi
callq 0x2210
testb %r15b, %r15b
jmp 0x4256
movq %rax, %rbx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x4276
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x2210
jmp 0x4276
jmp 0x4273
movq %rax, %rbx
leaq -0x2c0(%rbp), %rdi
callq 0x22d0
movq %rbx, %rdi
callq 0x2380