// File: /workspace/github_c_makefile_star2_O0/almk277[P]ROSE/rasm/parser.cpp
// Function: parser::parse()
void parser::parse()
{
	parser_state state;
	string name;

	bool more_tok = true;
	while (more_tok) {
		switch (s.next()) {
		case tok::STRING:
		{
			state.ensure(parser_state::SUB);
			auto it = instr.find(s.str());
			if (it == instr.end())
				throw error(s.str() + ": no such instruction");
			instruction i = it->second;
			m.text.set_next_addr(i.len);
			m.text.put(i.opcode);
			parse_operands(i);
			s >> eol;
			break;
		}
		case tok::LABEL:
			s >> name >> eol;
			m.text.add_label(name);
			break;
		case tok::BYTE:
			state.ensure(parser_state::STR);
			m.str.put(s.num_byte());
			break;
		case tok::INT:
			state.ensure(parser_state::STR);
			m.str.put(s.num_int());
			break;
		case tok::FLOAT:
			state.ensure(parser_state::STR);
			m.str.put(s.num_flt());
			break;
		case tok::ARRAY:
			state.ensure(parser_state::STR);
			m.str.put(s.array());
			break;
		case tok::NEWLINE:
			break;
		case tok::END:
			more_tok = false;
			break;
		case tok::ARG:
		{
			state.ensure(parser_state::SUB);
			string type;
			s >> type >> name >> eol;
			m.text.add_arg(name, mangle(type));
			break;
		}
		case tok::DATA:
		{
			string type;
			s >> type >> name >> eol;
			m.data.add(name);
			break;
		}
		case tok::EXPORT:
		{
			s >> name >> eol;
			auto slot = m.ptbl[name];
			auto &exp = m.exp.add(name);
			exp.name = m.sym.add(name);
			exp.idx = slot;
			break;
		}
		case tok::EXTERN:
		{
			s >> name >> eol;
			auto ss = s.string_pair();
			auto &imp = m.imp.add(name);
			imp.name = m.sym.add(ss.first);
			imp.module = m.mtbl[ss.second];
			imp.type = m.sym.add(read_types());
			break;
		}
		case tok::IMPORT:
		{
			unsigned char maj, min;
			s >> name >> maj >> min >> eol;
			auto &mod = m.mtbl.add(name);
			mod.name = m.sym.add(name);
			mod.version = { maj, min };
			break;
		}
		case tok::MODULE:
		{
			unsigned char maj, min;
			s >> name >> maj >> min >> eol;
			m.header.name = m.sym.add(name);
			m.header.version = { maj, min };
			break;
		}
		case tok::STR:
			state.set(parser_state::STR, [this]{ m.str.finish(); });
			s >> name >> eol;
			m.str.start(name);
			break;
		case tok::SUB:
			state.set(parser_state::SUB, [this]{ m.text.finish(); });
			s >> name >> eol;
			m.text.start(&m.ptbl.add(name));
			break;
		case tok::VAR:
			state.ensure(parser_state::SUB);
			s >> name >> eol;
			m.text.add_var(name);
			break;
		default: throw std::logic_error("bad token type");
		}
	} //while (more_tok)

	state.set(parser_state::NONE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3b0, %rsp            # imm = 0x3B0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x220(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x1d5c0
leaq -0x50(%rbp), %rdi
callq 0x4500
movb $0x1, -0x51(%rbp)
testb $0x1, -0x51(%rbp)
je 0x1c072
movq -0x220(%rbp), %rax
movq (%rax), %rdi
callq 0x8ca0
movl %eax, -0x224(%rbp)
jmp 0x1b471
movl -0x224(%rbp), %eax
movl %eax, %ecx
movq %rcx, -0x230(%rbp)
subl $0x10, %eax
ja 0x1c00f
movq -0x230(%rbp), %rax
leaq 0x813d(%rip), %rcx      # 0x235d4
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x1c0df
leaq -0x30(%rbp), %rdi
movl $0x1, %esi
callq 0x1d5f0
jmp 0x1b4c1
movq -0x220(%rbp), %rax
movq (%rax), %rdi
callq 0x1d820
movq %rax, -0x238(%rbp)
jmp 0x1b4d9
movq -0x238(%rbp), %rsi
leaq 0x19fc9(%rip), %rdi     # 0x354b0
callq 0x1d7f0
movq %rax, -0x240(%rbp)
jmp 0x1b4f5
movq -0x240(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x19fa9(%rip), %rdi     # 0x354b0
callq 0x1d870
movq %rax, -0x78(%rbp)
leaq -0x70(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x1d840
testb $0x1, %al
jne 0x1b526
jmp 0x1b5f2
movb $0x1, -0x99(%rbp)
movl $0x10, %edi
callq 0x41e0
movq %rax, %rcx
movq -0x220(%rbp), %rax
movq %rcx, -0x250(%rbp)
movq (%rax), %rdi
callq 0x1d820
movq %rax, -0x248(%rbp)
jmp 0x1b559
movq -0x248(%rbp), %rsi
leaq 0x826a(%rip), %rdx      # 0x237d1
leaq -0x98(%rbp), %rdi
callq 0x6300
jmp 0x1b575
movq -0x250(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x45f0
jmp 0x1b58a
movq -0x250(%rbp), %rdi
movb $0x0, -0x99(%rbp)
movq 0x19a49(%rip), %rsi     # 0x34fe8
movq 0x199fa(%rip), %rdx     # 0x34fa0
callq 0x4640
jmp 0x1c0fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x1b5d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x4748
testb $0x1, -0x99(%rbp)
jne 0x1b5e1
jmp 0x1b5ed
movq -0x250(%rbp), %rdi
callq 0x42c0
jmp 0x1c0df
leaq -0x70(%rbp), %rdi
callq 0x1d8a0
movq %rax, %rcx
movq -0x220(%rbp), %rax
movups 0x20(%rcx), %xmm0
movaps %xmm0, -0xb0(%rbp)
movq 0x8(%rax), %rdi
addq $0x240, %rdi            # imm = 0x240
movl -0xac(%rbp), %esi
callq 0x1d8d0
jmp 0x1b628
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x240, %rdi            # imm = 0x240
movzbl -0xb0(%rbp), %esi
callq 0x1d910
movq -0x220(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x1c100
jmp 0x1b65b
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq 0x80f8(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1b673
jmp 0x1c06d
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x258(%rbp)
jmp 0x1b694
movq -0x258(%rbp), %rdi
leaq 0x80c2(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1b6a9
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x240, %rdi            # imm = 0x240
leaq -0x50(%rbp), %rsi
callq 0xfbb0
jmp 0x1b6c6
jmp 0x1c06d
leaq -0x30(%rbp), %rdi
movl $0x2, %esi
callq 0x1d5f0
jmp 0x1b6db
movq -0x220(%rbp), %rax
movq (%rax), %rdi
movq 0x8(%rax), %rax
addq $0x338, %rax            # imm = 0x338
movq %rax, -0x268(%rbp)
callq 0x1d960
movb %al, -0x259(%rbp)
jmp 0x1b703
movb -0x259(%rbp), %al
movq -0x268(%rbp), %rdi
movzbl %al, %esi
callq 0x1d910
jmp 0x1c06d
leaq -0x30(%rbp), %rdi
movl $0x2, %esi
callq 0x1d5f0
jmp 0x1b72d
movq -0x220(%rbp), %rax
movq (%rax), %rdi
movq 0x8(%rax), %rax
addq $0x338, %rax            # imm = 0x338
movq %rax, -0x278(%rbp)
callq 0x1d9d0
movl %eax, -0x26c(%rbp)
jmp 0x1b755
movl -0x26c(%rbp), %esi
movq -0x278(%rbp), %rdi
callq 0x1d980
jmp 0x1c06d
leaq -0x30(%rbp), %rdi
movl $0x2, %esi
callq 0x1d5f0
jmp 0x1b77c
movq -0x220(%rbp), %rax
movq (%rax), %rdi
movq 0x8(%rax), %rax
addq $0x338, %rax            # imm = 0x338
movq %rax, -0x288(%rbp)
callq 0x1da40
movss %xmm0, -0x27c(%rbp)
jmp 0x1b7a6
movss -0x27c(%rbp), %xmm0
movq -0x288(%rbp), %rdi
callq 0x1d9f0
jmp 0x1c06d
leaq -0x30(%rbp), %rdi
movl $0x2, %esi
callq 0x1d5f0
jmp 0x1b7cf
movq -0x220(%rbp), %rax
movq (%rax), %rdi
movq 0x8(%rax), %rax
addq $0x338, %rax            # imm = 0x338
movq %rax, -0x298(%rbp)
callq 0x1da60
movq %rax, -0x290(%rbp)
jmp 0x1b7f8
movq -0x290(%rbp), %rsi
movq -0x298(%rbp), %rdi
callq 0xf960
jmp 0x1b80d
jmp 0x1c06d
jmp 0x1c06d
movb $0x0, -0x51(%rbp)
jmp 0x1c06d
leaq -0x30(%rbp), %rdi
movl $0x1, %esi
callq 0x1d5f0
jmp 0x1b830
leaq -0xd0(%rbp), %rdi
movq %rdi, -0x2a8(%rbp)
callq 0x4500
movq -0x220(%rbp), %rax
movq -0x2a8(%rbp), %rsi
movq (%rax), %rdi
callq 0x9ce0
movq %rax, -0x2a0(%rbp)
jmp 0x1b862
movq -0x2a0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x2b0(%rbp)
jmp 0x1b87b
movq -0x2b0(%rbp), %rdi
leaq 0x7edb(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1b890
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rax
addq $0x240, %rax            # imm = 0x240
movq %rax, -0x2b8(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x1aff0
jmp 0x1b8bd
movq -0x2b8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq -0xf0(%rbp), %rdx
callq 0x10110
jmp 0x1b8d6
leaq -0xf0(%rbp), %rdi
callq 0x4748
leaq -0xd0(%rbp), %rdi
callq 0x4748
jmp 0x1c06d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x1b919
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0xf0(%rbp), %rdi
callq 0x4748
leaq -0xd0(%rbp), %rdi
callq 0x4748
jmp 0x1c0df
leaq -0x110(%rbp), %rdi
movq %rdi, -0x2c8(%rbp)
callq 0x4500
movq -0x220(%rbp), %rax
movq -0x2c8(%rbp), %rsi
movq (%rax), %rdi
callq 0x9ce0
movq %rax, -0x2c0(%rbp)
jmp 0x1b95c
movq -0x2c0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x2d0(%rbp)
jmp 0x1b975
movq -0x2d0(%rbp), %rdi
leaq 0x7de1(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1b98a
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x390, %rdi            # imm = 0x390
leaq -0x50(%rbp), %rsi
callq 0xf530
jmp 0x1b9a7
leaq -0x110(%rbp), %rdi
callq 0x4748
jmp 0x1c06d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x4748
jmp 0x1c0df
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x2d8(%rbp)
jmp 0x1b9f1
movq -0x2d8(%rbp), %rdi
leaq 0x7d65(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1ba06
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0xa0, %rdi
leaq -0x50(%rbp), %rsi
callq 0x1da80
movb %al, -0x2d9(%rbp)
jmp 0x1ba29
movq -0x220(%rbp), %rax
movb -0x2d9(%rbp), %cl
movb %cl, -0x111(%rbp)
movq 0x8(%rax), %rdi
addq $0x30, %rdi
leaq -0x50(%rbp), %rsi
callq 0x1dc50
movq %rax, -0x2e8(%rbp)
jmp 0x1ba56
movq -0x220(%rbp), %rax
movq -0x2e8(%rbp), %rcx
movq %rcx, -0x120(%rbp)
movq 0x8(%rax), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
leaq -0x50(%rbp), %rsi
callq 0xf760
movw %ax, -0x2ea(%rbp)
jmp 0x1ba88
movw -0x2ea(%rbp), %cx
movq -0x120(%rbp), %rax
movw %cx, (%rax)
movb -0x111(%rbp), %cl
movq -0x120(%rbp), %rax
movb %cl, 0x2(%rax)
jmp 0x1c06d
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x2f8(%rbp)
jmp 0x1baca
movq -0x2f8(%rbp), %rdi
leaq 0x7c8c(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1badf
movq -0x220(%rbp), %rax
movq (%rax), %rsi
leaq -0x160(%rbp), %rdi
callq 0x9de0
jmp 0x1baf7
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x180, %rdi            # imm = 0x180
leaq -0x50(%rbp), %rsi
callq 0x1dca0
movq %rax, -0x300(%rbp)
jmp 0x1bb1b
movq -0x220(%rbp), %rax
movq -0x300(%rbp), %rcx
movq %rcx, -0x168(%rbp)
movq 0x8(%rax), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
leaq -0x160(%rbp), %rsi
callq 0xf760
movw %ax, -0x302(%rbp)
jmp 0x1bb50
movq -0x220(%rbp), %rax
movw -0x302(%rbp), %dx
movq -0x168(%rbp), %rcx
movw %dx, (%rcx)
movq 0x8(%rax), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0x140(%rbp), %rsi
callq 0x1da80
movb %al, -0x303(%rbp)
jmp 0x1bb87
movq -0x220(%rbp), %rsi
movb -0x303(%rbp), %cl
movq -0x168(%rbp), %rax
movb %cl, 0x5(%rax)
movq 0x8(%rsi), %rax
addq $0x1f0, %rax            # imm = 0x1F0
movq %rax, -0x310(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x1c4e0
jmp 0x1bbbd
movq -0x310(%rbp), %rdi
leaq -0x188(%rbp), %rsi
callq 0xf760
movw %ax, -0x312(%rbp)
jmp 0x1bbd9
movw -0x312(%rbp), %cx
movq -0x168(%rbp), %rax
movw %cx, 0x2(%rax)
leaq -0x188(%rbp), %rdi
callq 0x4748
leaq -0x160(%rbp), %rdi
callq 0x1dd00
jmp 0x1c06d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x1bc2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x4748
leaq -0x160(%rbp), %rdi
callq 0x1dd00
jmp 0x1c0df
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x320(%rbp)
jmp 0x1bc5b
movq -0x320(%rbp), %rdi
leaq -0x189(%rbp), %rsi
callq 0x9d20
movq %rax, -0x328(%rbp)
jmp 0x1bc77
movq -0x328(%rbp), %rdi
leaq -0x18a(%rbp), %rsi
callq 0x9d20
movq %rax, -0x330(%rbp)
jmp 0x1bc93
movq -0x330(%rbp), %rdi
leaq 0x7ac3(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1bca8
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x110, %rdi            # imm = 0x110
leaq -0x50(%rbp), %rsi
callq 0x1dd30
movq %rax, -0x338(%rbp)
jmp 0x1bccc
movq -0x220(%rbp), %rax
movq -0x338(%rbp), %rcx
movq %rcx, -0x198(%rbp)
movq 0x8(%rax), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
leaq -0x50(%rbp), %rsi
callq 0xf760
movw %ax, -0x33a(%rbp)
jmp 0x1bcfe
movw -0x33a(%rbp), %cx
movq -0x198(%rbp), %rax
movw %cx, (%rax)
movb -0x189(%rbp), %al
movb %al, -0x19a(%rbp)
movb -0x18a(%rbp), %al
movb %al, -0x199(%rbp)
movq -0x198(%rbp), %rax
movw -0x19a(%rbp), %cx
movw %cx, 0x2(%rax)
jmp 0x1c06d
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x348(%rbp)
jmp 0x1bd5a
movq -0x348(%rbp), %rdi
leaq -0x19b(%rbp), %rsi
callq 0x9d20
movq %rax, -0x350(%rbp)
jmp 0x1bd76
movq -0x350(%rbp), %rdi
leaq -0x19c(%rbp), %rsi
callq 0x9d20
movq %rax, -0x358(%rbp)
jmp 0x1bd92
movq -0x358(%rbp), %rdi
leaq 0x79c4(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1bda7
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x1f0, %rdi            # imm = 0x1F0
leaq -0x50(%rbp), %rsi
callq 0xf760
movw %ax, -0x35a(%rbp)
jmp 0x1bdcb
movq -0x220(%rbp), %rax
movw -0x35a(%rbp), %dx
movq 0x8(%rax), %rcx
movw %dx, 0x6(%rcx)
movb -0x19b(%rbp), %cl
movb %cl, -0x19e(%rbp)
movb -0x19c(%rbp), %cl
movb %cl, -0x19d(%rbp)
movq 0x8(%rax), %rax
movw -0x19e(%rbp), %cx
movw %cx, 0x8(%rax)
jmp 0x1c06d
movq -0x220(%rbp), %rax
movq %rax, -0x1c8(%rbp)
leaq -0x1c0(%rbp), %rdi
movq %rdi, -0x368(%rbp)
leaq -0x1c8(%rbp), %rsi
callq 0x1c6c0
movq -0x368(%rbp), %rdx
leaq -0x30(%rbp), %rdi
movl $0x2, %esi
callq 0x1dd90
jmp 0x1be4c
leaq -0x1c0(%rbp), %rdi
callq 0x1dde0
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x370(%rbp)
jmp 0x1be74
movq -0x370(%rbp), %rdi
leaq 0x78e2(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1be89
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x338, %rdi            # imm = 0x338
leaq -0x50(%rbp), %rsi
callq 0xfa20
jmp 0x1bea6
jmp 0x1c06d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1c0(%rbp), %rdi
callq 0x1dde0
jmp 0x1c0df
movq -0x220(%rbp), %rax
movq %rax, -0x1f0(%rbp)
leaq -0x1e8(%rbp), %rdi
movq %rdi, -0x378(%rbp)
leaq -0x1f0(%rbp), %rsi
callq 0x1c750
movq -0x378(%rbp), %rdx
leaq -0x30(%rbp), %rdi
movl $0x1, %esi
callq 0x1dd90
jmp 0x1bf07
leaq -0x1e8(%rbp), %rdi
callq 0x1dde0
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x380(%rbp)
jmp 0x1bf2f
movq -0x380(%rbp), %rdi
leaq 0x7827(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1bf44
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
movq %rdi, %rax
addq $0x240, %rax            # imm = 0x240
movq %rax, -0x390(%rbp)
addq $0xa0, %rdi
leaq -0x50(%rbp), %rsi
callq 0x1de00
movq %rax, -0x388(%rbp)
jmp 0x1bf78
movq -0x388(%rbp), %rsi
movq -0x390(%rbp), %rdi
callq 0x10490
jmp 0x1bf8d
jmp 0x1c06d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x1e8(%rbp), %rdi
callq 0x1dde0
jmp 0x1c0df
leaq -0x30(%rbp), %rdi
movl $0x1, %esi
callq 0x1d5f0
jmp 0x1bfbf
movq -0x220(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rsi
callq 0x9ce0
movq %rax, -0x398(%rbp)
jmp 0x1bfdb
movq -0x398(%rbp), %rdi
leaq 0x777b(%rip), %rsi      # 0x23764
callq 0x9cb0
jmp 0x1bff0
movq -0x220(%rbp), %rax
movq 0x8(%rax), %rdi
addq $0x240, %rdi            # imm = 0x240
leaq -0x50(%rbp), %rsi
callq 0x100d0
jmp 0x1c00d
jmp 0x1c06d
movl $0x10, %edi
callq 0x41e0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x3a0(%rbp)
leaq 0x77ba(%rip), %rsi      # 0x237e7
callq 0x4550
jmp 0x1c034
movq -0x3a0(%rbp), %rdi
movq 0x18f86(%rip), %rsi     # 0x34fc8
movq 0x18f5f(%rip), %rdx     # 0x34fa8
callq 0x4640
jmp 0x1c0fa
movq -0x3a0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
callq 0x42c0
jmp 0x1c0df
jmp 0x1b450
leaq -0x210(%rbp), %rdi
movq %rdi, -0x3a8(%rbp)
leaq -0x211(%rbp), %rsi
callq 0x1de70
movq -0x3a8(%rbp), %rdx
leaq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x1dd90
jmp 0x1c0a0
leaq -0x210(%rbp), %rdi
callq 0x1dde0
leaq -0x50(%rbp), %rdi
callq 0x4748
leaq -0x30(%rbp), %rdi
callq 0x1df00
addq $0x3b0, %rsp            # imm = 0x3B0
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x210(%rbp), %rdi
callq 0x1dde0
leaq -0x50(%rbp), %rdi
callq 0x4748
leaq -0x30(%rbp), %rdi
callq 0x1df00
movq -0x60(%rbp), %rdi
callq 0x4670
nopw (%rax,%rax)