// File: /workspace/github_cpp_makefile_star2_O3/lhydave[P]SysYCompilerLab/back/riscv/emit_riscv.cpp
// Function: riscv::emit_assign(std::shared_ptr<tigger::assign_stmt> const&)
void emit_assign(const shared_ptr<tigger::assign_stmt> &stmt)
{
	auto lval = stmt->lval, rval = stmt->rval;
	auto parsearray = [](const string &s) {
		std::pair<string, int> ret;
		auto l = s.find('['), r = s.find(']');
		ret.first = s.substr(0, l);
		ret.second = atoi(s.substr(l + 1, r - l - 1).c_str());
		return ret;
	};
	if (lval.find('[') != string::npos) // array store
	{
		auto temp = parsearray(lval);
		if (in_int12(temp.second))
			riscv_dst << "\tsw\t" << rval << ", " << temp.second << "("
					  << temp.first << ")\n";
		else
		{
			riscv_dst << "\tli\tt0, " << temp.second << "\n";
			riscv_dst << "\tadd\tt0, t0, " << temp.second << "\n";
			riscv_dst << "\tsw\t" << rval << ", 0(t0)\n";
		}
		return;
	}
	if (rval.find('[') != string::npos) // array load
	{
		auto temp = parsearray(rval);
		if (in_int12(temp.second))
			riscv_dst << "\tlw\t" << lval << ", " << temp.second << "("
					  << temp.first << ")\n";
		else
		{
			riscv_dst << "\tli\tt0, " << temp.second << "\n";
			riscv_dst << "\tadd\tt0, t0, " << temp.first << "\n";
			riscv_dst << "\tsw\t" << lval << ", 0(t0)\n";
		}
		return;
	}
	// ordinary assign
	if (isdigit(rval[0]) ||
		(rval[0] == '-' && isdigit(rval[1]))) // number assign
	{
		riscv_dst << "\tli\t" << lval << ", " << rval << "\n";
		return;
	}
	if (rval[0] == '-') // negate
	{
		riscv_dst << "\tneg\t" << lval << ", "
				  << rval.substr(1, rval.length() - 1) << "\n";
		return;
	}
	if (rval[0] == '!')
	{
		riscv_dst << "\tseqz\t" << lval << ", "
				  << rval.substr(1, rval.length() - 1) << "\n";
		return;
	}
	std::istringstream rval_f(rval);
	string left, op, right;
	rval_f >> left;
	if (rval_f.peek() == EOF) // single assign
	{
		riscv_dst << "\tmv\t" << lval << ", " << left << "\n";
		return;
	}
	// binary operator
	rval_f >> op >> right;
	static unordered_map<string, string> convert = {{"+", "add"}, {"-", "sub"},
		{"*", "mul"}, {"/", "div"}, {"%", "rem"}, {"<", "slt"}, {">", "sgt"},
		{"<=", "sgt"}, {">=", "slt"}, {"||", "or"}, {"!=", "xor"},
		{"==", "xor"}};
	if (op == "&&")
	{
		riscv_dst << "\tsnez" << lval << ", " << left << "\n\tsnez\tt0, "
				  << right << "\n\tand\t" << lval << ", " << lval << ", t0\n";
		return;
	}
	riscv_dst << "\t" << convert[op] << "\t" << lval << ", " << left << ", "
			  << right << "\n";
	if (op == "<=" || op == ">=" || op == "==")
	{
		riscv_dst << "\tseqz\t" << lval << ", " << lval << "\n";
		return;
	}
	if (op == "||" || op == "!=")
	{
		riscv_dst << "\tsnez\t" << lval << ", " << lval << "\n";
		return;
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x538, %rsp            # imm = 0x538
movq %rdi, %rbx
movq (%rdi), %rax
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
movq 0x8(%rax), %rsi
movq 0x10(%rax), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x121f8
movq (%rbx), %rax
leaq 0x48(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0x28(%rax), %rsi
movq 0x30(%rax), %rdx
addq %rsi, %rdx
leaq 0x38(%rsp), %rdi
callq 0x121f8
leaq 0x10(%rsp), %rbx
movq %rbx, %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x5330
cmpq $-0x1, %rax
je 0x24db7
leaq 0xb8(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x263b0
movl $0x800, %eax            # imm = 0x800
addl 0xd8(%rsp), %eax
cmpl $0xfff, %eax            # imm = 0xFFF
ja 0x24e8f
leaq 0x10846(%rip), %rdi     # 0x35570
leaq 0x4ac1(%rip), %rsi      # 0x297f2
movl $0x4, %edx
callq 0x52a0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
leaq 0x10824(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %rbx
leaq 0x4b6c(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movl 0xd8(%rsp), %esi
movq %rbx, %rdi
callq 0x54a0
movq %rax, %rbx
leaq 0x4b8c(%rip), %rsi      # 0x2990d
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
movq 0xb8(%rsp), %rsi
movq 0xc0(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
movl $0x2, %edx
leaq 0x4bdf(%rip), %rsi      # 0x29991
jmp 0x24f47
leaq 0x38(%rsp), %rdi
movl $0x5b, %esi
xorl %edx, %edx
callq 0x5330
cmpq $-0x1, %rax
je 0x24f54
leaq 0xb8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
callq 0x263b0
movl $0x800, %eax            # imm = 0x800
addl 0xd8(%rsp), %eax
cmpl $0xfff, %eax            # imm = 0xFFF
ja 0x24fd8
leaq 0x1076e(%rip), %rdi     # 0x35570
leaq 0x49fc(%rip), %rsi      # 0x29805
movl $0x4, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x1074c(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %rbx
leaq 0x4a94(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movl 0xd8(%rsp), %esi
movq %rbx, %rdi
callq 0x54a0
movq %rax, %rbx
leaq 0x4ab4(%rip), %rsi      # 0x2990d
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
movq 0xb8(%rsp), %rsi
movq 0xc0(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
movl $0x2, %edx
leaq 0x4b07(%rip), %rsi      # 0x29991
jmp 0x25099
leaq 0x106da(%rip), %rdi     # 0x35570
leaq 0x4a24(%rip), %rsi      # 0x298c1
movl $0x8, %edx
callq 0x52a0
movl 0xd8(%rsp), %esi
leaq 0x106bb(%rip), %rdi     # 0x35570
callq 0x54a0
leaq 0x3b52(%rip), %rsi      # 0x28a13
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
leaq 0x1069b(%rip), %rdi     # 0x35570
leaq 0x491b(%rip), %rsi      # 0x297f7
movl $0xd, %edx
callq 0x52a0
movl 0xd8(%rsp), %esi
leaq 0x1067c(%rip), %rdi     # 0x35570
callq 0x54a0
leaq 0x3b13(%rip), %rsi      # 0x28a13
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
leaq 0x1065c(%rip), %rdi     # 0x35570
leaq 0x48d7(%rip), %rsi      # 0x297f2
movl $0x4, %edx
callq 0x52a0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
leaq 0x1063a(%rip), %rdi     # 0x35570
callq 0x52a0
movl $0x8, %edx
leaq 0x4a44(%rip), %rsi      # 0x2998b
movq %rax, %rdi
callq 0x52a0
jmp 0x250a1
movq 0x38(%rsp), %rax
movsbl (%rax), %ecx
leal -0x30(%rcx), %edx
cmpl $0xa, %edx
jae 0x25102
leaq 0x10601(%rip), %rdi     # 0x35570
leaq 0x4894(%rip), %rsi      # 0x2980a
movl $0x4, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x105df(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %rbx
leaq 0x4927(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movq 0x38(%rsp), %rsi
movq 0x40(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
leaq 0x3a4d(%rip), %rsi      # 0x28a13
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
jmp 0x250c2
leaq 0x10591(%rip), %rdi     # 0x35570
leaq 0x48db(%rip), %rsi      # 0x298c1
movl $0x8, %edx
callq 0x52a0
movl 0xd8(%rsp), %esi
leaq 0x10572(%rip), %rdi     # 0x35570
callq 0x54a0
leaq 0x3a09(%rip), %rsi      # 0x28a13
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
leaq 0x10552(%rip), %rdi     # 0x35570
leaq 0x47d2(%rip), %rsi      # 0x297f7
movl $0xd, %edx
callq 0x52a0
movq 0xb8(%rsp), %rsi
movq 0xc0(%rsp), %rdx
leaq 0x1052a(%rip), %rdi     # 0x35570
callq 0x52a0
leaq 0x39c1(%rip), %rsi      # 0x28a13
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
leaq 0x1050a(%rip), %rdi     # 0x35570
leaq 0x4785(%rip), %rsi      # 0x297f2
movl $0x4, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x104e8(%rip), %rdi     # 0x35570
callq 0x52a0
movl $0x8, %edx
leaq 0x48f2(%rip), %rsi      # 0x2998b
movq %rax, %rdi
callq 0x52a0
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x250c2
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x250d9
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x250f0
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5240
addq $0x538, %rsp            # imm = 0x538
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movzbl %cl, %ecx
cmpl $0x21, %ecx
je 0x251bb
cmpl $0x2d, %ecx
jne 0x2524f
movsbl 0x1(%rax), %eax
addl $-0x30, %eax
cmpl $0x9, %eax
jbe 0x24f68
leaq 0x10442(%rip), %rdi     # 0x35570
leaq 0x46da(%rip), %rsi      # 0x2980f
movl $0x5, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x10420(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %rbx
leaq 0x4768(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
leaq 0x38(%rsp), %rsi
movq 0x8(%rsi), %rcx
decq %rcx
leaq 0xb8(%rsp), %rdi
movl $0x1, %edx
callq 0x5260
movq 0xb8(%rsp), %rsi
movq 0xc0(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
leaq 0x386a(%rip), %rsi      # 0x28a13
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
jmp 0x250a1
leaq 0x103ae(%rip), %rdi     # 0x35570
leaq 0x464c(%rip), %rsi      # 0x29815
movl $0x6, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x1038c(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %rbx
leaq 0x46d4(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
leaq 0x38(%rsp), %rsi
movq 0x8(%rsi), %rcx
decq %rcx
leaq 0xb8(%rsp), %rdi
movl $0x1, %edx
callq 0x5260
movq 0xb8(%rsp), %rsi
movq 0xc0(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
leaq 0x37d6(%rip), %rsi      # 0x28a13
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
jmp 0x250a1
leaq 0x3b8(%rsp), %rdi
leaq 0x38(%rsp), %rsi
movl $0x8, %edx
callq 0x5480
leaq 0x88(%rsp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x68(%rsp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0xa8(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq %rax, -0x8(%rbp)
movb %al, (%rbp)
leaq 0x3b8(%rsp), %rdi
leaq 0x78(%rsp), %r14
movq %r14, %rsi
callq 0x5320
leaq 0x3b8(%rsp), %rdi
callq 0x50f0
cmpl $-0x1, %eax
je 0x254aa
leaq 0x3b8(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x5320
leaq 0x98(%rsp), %rsi
movq %rax, %rdi
callq 0x5320
movb 0x108c9(%rip), %al      # 0x35bb8
testb %al, %al
je 0x256c9
leaq 0x455c(%rip), %rsi      # 0x2985a
leaq 0x58(%rsp), %rdi
callq 0x50a0
testl %eax, %eax
je 0x25559
leaq 0x10259(%rip), %rdi     # 0x35570
leaq 0x4612(%rip), %rsi      # 0x29930
movl $0x1, %edx
callq 0x52a0
leaq 0x10851(%rip), %rdi     # 0x35b80
leaq 0x58(%rsp), %rsi
callq 0x26d06
movq (%rax), %rsi
movq 0x8(%rax), %rdx
leaq 0x10229(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %r14
leaq 0x45da(%rip), %rsi      # 0x29930
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %r14, %rdi
callq 0x52a0
movq %rax, %r14
leaq 0x4548(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq %r14, %rdi
callq 0x52a0
movq %rax, %r14
leaq 0x451c(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movq %r14, %rdi
callq 0x52a0
leaq 0x363c(%rip), %rsi      # 0x28a13
movl $0x1, %edx
movq %rax, %rdi
callq 0x52a0
leaq 0x445c(%rip), %rsi      # 0x29847
leaq 0x58(%rsp), %rdi
callq 0x50a0
testl %eax, %eax
je 0x254f1
leaq 0x4446(%rip), %rsi      # 0x2984a
leaq 0x58(%rsp), %rdi
callq 0x50a0
testl %eax, %eax
je 0x254f1
leaq 0x443a(%rip), %rsi      # 0x29857
leaq 0x58(%rsp), %rdi
callq 0x50a0
testl %eax, %eax
je 0x254f1
leaq 0x4417(%rip), %rsi      # 0x2984d
leaq 0x58(%rsp), %rdi
callq 0x50a0
testl %eax, %eax
je 0x2545d
leaq 0x4405(%rip), %rsi      # 0x29850
leaq 0x58(%rsp), %rdi
callq 0x50a0
testl %eax, %eax
jne 0x25648
leaq 0x1010c(%rip), %rdi     # 0x35570
leaq 0x440b(%rip), %rsi      # 0x29876
movl $0x6, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x100ea(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %r15
leaq 0x4432(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movq %rbx, %r14
jmp 0x25539
leaq 0x100bf(%rip), %rdi     # 0x35570
leaq 0x4364(%rip), %rsi      # 0x2981c
movl $0x4, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x1009d(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %r15
leaq 0x43e5(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
jmp 0x25539
leaq 0x10078(%rip), %rdi     # 0x35570
leaq 0x4316(%rip), %rsi      # 0x29815
movl $0x6, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0x10056(%rip), %rdi     # 0x35570
callq 0x52a0
movq %rax, %r15
leaq 0x439e(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movq %rbx, %r14
movq (%r14), %rsi
movq 0x8(%r14), %rdx
movq %r15, %rdi
callq 0x52a0
movl $0x1, %edx
leaq 0x34bf(%rip), %rsi      # 0x28a13
jmp 0x25640
leaq 0x10010(%rip), %rdi     # 0x35570
leaq 0x42f6(%rip), %rsi      # 0x2985d
movl $0x5, %edx
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
leaq 0xffee(%rip), %rdi      # 0x35570
callq 0x52a0
movq %rax, %rbx
leaq 0x4336(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movq 0x78(%rsp), %rsi
movq 0x80(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
movq %rax, %rbx
leaq 0x42a6(%rip), %rsi      # 0x29863
movl $0xb, %edx
movq %rax, %rdi
callq 0x52a0
movq 0x98(%rsp), %rsi
movq 0xa0(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
movq %rax, %rbx
leaq 0x4283(%rip), %rsi      # 0x2986f
movl $0x6, %edx
movq %rax, %rdi
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
movq %rax, %rbx
leaq 0x42b2(%rip), %rsi      # 0x298c7
movl $0x2, %edx
movq %rax, %rdi
callq 0x52a0
movq 0x10(%rsp), %rsi
movq 0x18(%rsp), %rdx
movq %rbx, %rdi
callq 0x52a0
movl $0x5, %edx
leaq 0x42e7(%rip), %rsi      # 0x29927
movq %rax, %rdi
callq 0x52a0
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
je 0x25665
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x25681
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x256a3
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0xf91e(%rip), %rsi      # 0x34fc8
leaq 0x3b8(%rsp), %rdi
callq 0x5390
leaq 0x430(%rsp), %rdi
callq 0x50d0
jmp 0x250c2
leaq 0x104e8(%rip), %rdi     # 0x35bb8
callq 0x54e0
testl %eax, %eax
je 0x252f7
leaq 0x413d(%rip), %rsi      # 0x29821
leaq 0x4138(%rip), %rdx      # 0x29823
leaq 0xb8(%rsp), %r14
movq %r14, %rdi
callq 0x264ae
leaq 0xf8(%rsp), %r15
leaq 0x40d9(%rip), %rsi      # 0x297e3
leaq 0x4116(%rip), %rdx      # 0x29827
movq %r15, %rdi
callq 0x264ae
leaq 0x138(%rsp), %r15
leaq 0x4103(%rip), %rsi      # 0x2982b
leaq 0x40fe(%rip), %rdx      # 0x2982d
movq %r15, %rdi
callq 0x264ae
leaq 0x178(%rsp), %r15
leaq 0x2d33(%rip), %rsi      # 0x28479
leaq 0x40e4(%rip), %rdx      # 0x29831
movq %r15, %rdi
callq 0x264ae
leaq 0x1b8(%rsp), %r15
leaq 0x40d1(%rip), %rsi      # 0x29835
leaq 0x40cc(%rip), %rdx      # 0x29837
movq %r15, %rdi
callq 0x264ae
leaq 0x1f8(%rsp), %r15
leaq 0x40b9(%rip), %rsi      # 0x2983b
leaq 0x40b4(%rip), %rdx      # 0x2983d
movq %r15, %rdi
callq 0x264ae
leaq 0x238(%rsp), %r15
leaq 0x40a1(%rip), %rsi      # 0x29841
leaq 0x409c(%rip), %rdx      # 0x29843
movq %r15, %rdi
callq 0x264ae
leaq 0x278(%rsp), %r15
leaq 0x4089(%rip), %rsi      # 0x29847
leaq 0x407e(%rip), %rdx      # 0x29843
movq %r15, %rdi
callq 0x2652c
leaq 0x2b8(%rsp), %r15
leaq 0x406e(%rip), %rsi      # 0x2984a
leaq 0x405a(%rip), %rdx      # 0x2983d
movq %r15, %rdi
callq 0x2652c
leaq 0x2f8(%rsp), %r15
leaq 0x4053(%rip), %rsi      # 0x2984d
leaq 0x25b3(%rip), %rdx      # 0x27db4
movq %r15, %rdi
callq 0x265aa
leaq 0x338(%rsp), %r15
leaq 0x4038(%rip), %rsi      # 0x29850
leaq 0x4034(%rip), %rdx      # 0x29853
movq %r15, %rdi
callq 0x2652c
leaq 0x378(%rsp), %r15
leaq 0x4021(%rip), %rsi      # 0x29857
leaq 0x4016(%rip), %rdx      # 0x29853
movq %r15, %rdi
callq 0x2652c
leaq 0x3b8(%rsp), %rdx
leaq 0x35(%rsp), %rax
movq %rax, (%rsp)
leaq 0x10323(%rip), %rdi     # 0x35b80
leaq 0xb8(%rsp), %rsi
leaq 0x37(%rsp), %r8
leaq 0x36(%rsp), %r9
xorl %ecx, %ecx
callq 0x267c4
movl $0x2c0, %r14d           # imm = 0x2C0
leaq (%rsp,%r14), %rdi
addq $0xb8, %rdi
callq 0x26628
addq $-0x40, %r14
cmpq $-0x40, %r14
jne 0x2587c
leaq 0xdc1(%rip), %rdi       # 0x2665e
leaq 0x102dc(%rip), %rsi     # 0x35b80
leaq 0xf9f5(%rip), %rdx      # 0x352a0
callq 0x51f0
leaq 0x10301(%rip), %rdi     # 0x35bb8
callq 0x5180
jmp 0x252f7
movq %rax, %rbx
movl $0x2c0, %r14d           # imm = 0x2C0
leaq (%rsp,%r14), %rdi
addq $0xb8, %rdi
callq 0x26628
addq $-0x40, %r14
cmpq $-0x40, %r14
jne 0x258ca
jmp 0x258ff
movq %rax, %rbx
jmp 0x258ff
movq %rax, %rbx
addq $-0x40, %r15
movq %r15, %rdi
callq 0x26628
cmpq %r14, %r15
jne 0x258ee
leaq 0x102b2(%rip), %rdi     # 0x35bb8
callq 0x5170
jmp 0x2592e
jmp 0x259ae
jmp 0x259ba
jmp 0x259ae
jmp 0x259ae
jmp 0x259ba
jmp 0x259ae
movq %rax, %rbx
movq 0x98(%rsp), %rdi
cmpq %rbp, %rdi
je 0x2594b
movq 0xa8(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x58(%rsp), %rdi
leaq 0x68(%rsp), %rax
cmpq %rax, %rdi
je 0x25967
movq 0x68(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x78(%rsp), %rdi
leaq 0x88(%rsp), %rax
cmpq %rax, %rdi
je 0x25989
movq 0x88(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0xf638(%rip), %rsi      # 0x34fc8
leaq 0x3b8(%rsp), %rdi
callq 0x5390
leaq 0x430(%rsp), %rdi
callq 0x50d0
jmp 0x259de
jmp 0x259ae
movq %rax, %rbx
jmp 0x259de
movq %rax, %rbx
jmp 0x259f5
jmp 0x259ba
movq %rax, %rbx
leaq 0xc8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x259de
movq 0xc8(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x38(%rsp), %rdi
cmpq %r13, %rdi
je 0x259f5
movq 0x48(%rsp), %rsi
incq %rsi
callq 0x5240
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x25a0c
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x5240
movq %rbx, %rdi
callq 0x54c0