// File: /workspace/github_cpp_makefile_star2_O1/ssubrandon[P]460Project2/LexicalAnalyzer.cpp
// Function: LexicalAnalyzer::LexicalAnalyzer(char*)
LexicalAnalyzer::LexicalAnalyzer (char * filename)
{
	cout << "Input file: " << filename << endl;
	string name = filename;
	string extension;
	if (name.length() > 3)
		extension = name.substr (name.length()-3, 3);
	if (extension != ".ss")
	{
		cout << "Invalid file extension; must be '.ss'\n";
		exit (1);
	}
	input.open (filename);
	if (input.fail())
	{
		cout << "File " << filename << " not found\n";
		exit (2);
	}
	string p1name = name.substr (0, name.length()-3) + ".p1"; 
	p1file.open (p1name.c_str());
	string listingname = name.substr (0, name.length()-3) + ".Zlst"; 
	listing.open (listingname.c_str());
	listing << "Input file: " << filename << endl;
	string debugname = name.substr (0, name.length()-3) + ".dbg"; 
	debug.open (debugname.c_str());
	debug << "Input file: " << filename << endl;
	line = " ";
	linenum = 0;
	pos = 0;
	lexeme = "";
	errors = 0;

	symbols.insert (pair<string,token_type> ("cons", CONS_T));
	symbols.insert (pair<string,token_type> ("if", IF_T));
	symbols.insert (pair<string,token_type> ("cond", COND_T));
	symbols.insert (pair<string,token_type> ("display", DISPLAY_T));
	symbols.insert (pair<string,token_type> ("newline", NEWLINE_T));
	symbols.insert (pair<string,token_type> ("and", AND_T));
	symbols.insert (pair<string,token_type> ("or", OR_T));
	symbols.insert (pair<string,token_type> ("not", NOT_T));
	symbols.insert (pair<string,token_type> ("define", DEFINE_T));
	symbols.insert (pair<string,token_type> ("number?", NUMBERP_T));
	symbols.insert (pair<string,token_type> ("list?", LISTP_T));
	symbols.insert (pair<string,token_type> ("zero?", ZEROP_T));
	symbols.insert (pair<string,token_type> ("null?", NULLP_T));
	symbols.insert (pair<string,token_type> ("string?", STRINGP_T));
	symbols.insert (pair<string,token_type> ("modulo", MODULO_T));
	symbols.insert (pair<string,token_type> ("round", ROUND_T));
	symbols.insert (pair<string,token_type> ("else", ELSE_T));
	symbols.insert (pair<string,token_type> ("+", PLUS_T));
	symbols.insert (pair<string,token_type> ("-", MINUS_T));
	symbols.insert (pair<string,token_type> ("/", DIV_T));
	symbols.insert (pair<string,token_type> ("*", MULT_T));
	symbols.insert (pair<string,token_type> ("=", EQUALTO_T));
	symbols.insert (pair<string,token_type> (">", GT_T));
	symbols.insert (pair<string,token_type> ("<", LT_T));
	symbols.insert (pair<string,token_type> (">=", GTE_T));
	symbols.insert (pair<string,token_type> ("<=", LTE_T));
	symbols.insert (pair<string,token_type> ("(", LPAREN_T));
	symbols.insert (pair<string,token_type> (")", RPAREN_T));
	symbols.insert (pair<string,token_type> ("'", SQUOTE_T));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xf8, %rsp
movq %rsi, %r12
movq %rdi, %rbx
callq 0x2320
leaq 0x200(%rbx), %r14
movq %r14, %rdi
callq 0x2320
leaq 0x400(%rbx), %r15
movq %r15, %rdi
callq 0x2250
movq %r15, -0x58(%rbp)
leaq 0x608(%rbx), %rdi
movq %rdi, -0x70(%rbp)
callq 0x2320
leaq 0x808(%rbx), %rax
movq %rax, -0x68(%rbp)
leaq 0x818(%rbx), %rax
movq %rax, -0x120(%rbp)
movq %rax, 0x808(%rbx)
xorl %eax, %eax
movq %rax, 0x810(%rbx)
movb %al, 0x818(%rbx)
leaq 0x830(%rbx), %rcx
movq %rcx, -0x60(%rbp)
leaq 0x840(%rbx), %rcx
movq %rcx, -0x118(%rbp)
movq %rcx, 0x830(%rbx)
movq %rax, 0x838(%rbx)
movb %al, 0x840(%rbx)
leaq 0x858(%rbx), %r13
leaq 0x860(%rbx), %rcx
movl $0x0, 0x860(%rbx)
movq %rax, 0x868(%rbx)
movq %rcx, 0x870(%rbx)
movq %rcx, 0x878(%rbx)
movq %rax, 0x880(%rbx)
movq 0xc248(%rip), %r15      # 0xefd8
leaq 0x8812(%rip), %rsi      # 0xb5a9
movl $0xc, %edx
movq %r15, %rdi
callq 0x2260
testq %r12, %r12
je 0x2dc5
movq %r12, %rdi
callq 0x2110
movq 0xc220(%rip), %rdi      # 0xefd8
movq %r12, %rsi
movq %rax, %rdx
callq 0x2260
jmp 0x2ddd
movq (%r15), %rax
movq -0x18(%rax), %rax
leaq (%r15,%rax), %rdi
movl 0x20(%r15,%rax), %esi
orl $0x1, %esi
callq 0x2310
movq (%r15), %rax
addq -0x18(%rax), %r15
movq %r15, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq 0xc1dd(%rip), %rdi      # 0xefd8
callq 0x2030
movq %rax, %rdi
callq 0x2170
leaq -0xf0(%rbp), %rdi
leaq -0x50(%rbp), %rdx
movq %r12, %rsi
callq 0x4ad6
leaq -0x100(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq -0xe8(%rbp), %rdx
cmpq $0x4, %rdx
movq -0x58(%rbp), %r15
jb 0x2e8a
addq $-0x3, %rdx
leaq -0x50(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
movl $0x3, %ecx
callq 0x2220
leaq -0x110(%rbp), %rdi
leaq -0x50(%rbp), %r15
movq %r15, %rsi
callq 0x2280
movq (%r15), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x2e86
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0x58(%rbp), %r15
leaq 0x8725(%rip), %rsi      # 0xb5b6
leaq -0x110(%rbp), %rdi
callq 0x20d0
testl %eax, %eax
jne 0x3a03
movq %r15, %rdi
movq %r12, %rsi
movl $0x8, %edx
callq 0x2140
movq (%r15), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x20(%r15,%rax)
jne 0x3a20
leaq -0xf0(%rbp), %rsi
movq 0x8(%rsi), %rcx
addq $-0x3, %rcx
leaq -0x50(%rbp), %rdi
xorl %edx, %edx
callq 0x2220
leaq 0x870a(%rip), %rsi      # 0xb5f3
leaq -0x50(%rbp), %rdi
callq 0x2380
leaq -0xc0(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2f1f
movq %rdx, -0xd0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xc0(%rbp)
jmp 0x2f25
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xc8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x40(%rbp), %r15
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x2f58
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0xd0(%rbp), %rsi
movq -0x70(%rbp), %rdi
movl $0x10, %edx
callq 0x2060
leaq -0xf0(%rbp), %rsi
movq 0x8(%rsi), %rcx
addq $-0x3, %rcx
leaq -0x50(%rbp), %rdi
xorl %edx, %edx
callq 0x2220
leaq 0x8669(%rip), %rsi      # 0xb5f7
leaq -0x50(%rbp), %rdi
callq 0x2380
leaq -0xa0(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2fc4
movq %rdx, -0xb0(%rbp)
movq (%rcx), %rdx
movq %rdx, -0xa0(%rbp)
jmp 0x2fca
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0xa8(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x2ff9
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0xb0(%rbp), %rsi
movq %r14, %rdi
movl $0x10, %edx
callq 0x2060
leaq 0x8595(%rip), %rsi      # 0xb5a9
movl $0xc, %edx
movq %r14, %rdi
callq 0x2260
testq %r12, %r12
je 0x303e
movq %r12, %rdi
callq 0x2110
movq %r14, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x2260
jmp 0x3056
movq (%r14), %rax
movq -0x18(%rax), %rax
leaq (%r14,%rax), %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x2310
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2170
leaq -0xf0(%rbp), %rsi
movq 0x8(%rsi), %rcx
addq $-0x3, %rcx
leaq -0x50(%rbp), %rdi
xorl %edx, %edx
callq 0x2220
leaq 0x855f(%rip), %rsi      # 0xb5fd
leaq -0x50(%rbp), %rdi
callq 0x2380
leaq -0x80(%rbp), %rsi
movq %rsi, -0x10(%rsi)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x30ce
movq %rdx, -0x90(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x80(%rbp)
jmp 0x30d4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x88(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3103
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0x90(%rbp), %rsi
movq %rbx, %rdi
movl $0x10, %edx
callq 0x2060
leaq 0x848b(%rip), %rsi      # 0xb5a9
movl $0xc, %edx
movq %rbx, %rdi
callq 0x2260
testq %r12, %r12
je 0x3148
movq %r12, %rdi
callq 0x2110
movq %rbx, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x2260
jmp 0x315f
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x2310
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21e0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2170
movq 0x810(%rbx), %rdx
leaq 0x88a2(%rip), %rcx      # 0xba36
movl $0x1, %r8d
movq -0x68(%rbp), %rdi
xorl %esi, %esi
callq 0x22e0
movq $0x0, 0x828(%rbx)
movq 0x838(%rbx), %rdx
leaq 0x8422(%rip), %rcx      # 0xb5e0
movq -0x60(%rbp), %rdi
xorl %esi, %esi
xorl %r8d, %r8d
callq 0x22e0
movl $0x0, 0x854(%rbx)
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x841e(%rip), %rsi      # 0xb602
leaq 0x841b(%rip), %rdx      # 0xb606
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x4, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3218
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x83e1(%rip), %rsi      # 0xb607
leaq 0x83dc(%rip), %rdx      # 0xb609
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x5, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x325a
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x83a2(%rip), %rsi      # 0xb60a
leaq 0x839f(%rip), %rdx      # 0xb60e
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x6, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x329c
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x8365(%rip), %rsi      # 0xb60f
leaq 0x8365(%rip), %rdx      # 0xb616
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x7, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x32de
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x832b(%rip), %rsi      # 0xb617
leaq 0x832b(%rip), %rdx      # 0xb61e
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x8, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3320
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x82f1(%rip), %rsi      # 0xb61f
leaq 0x82ed(%rip), %rdx      # 0xb622
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0xa, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3362
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x82b3(%rip), %rsi      # 0xb623
leaq 0x82ae(%rip), %rdx      # 0xb625
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0xb, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x33a4
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x8274(%rip), %rsi      # 0xb626
leaq 0x8270(%rip), %rdx      # 0xb629
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0xc, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x33e6
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x8236(%rip), %rsi      # 0xb62a
leaq 0x8235(%rip), %rdx      # 0xb630
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0xd, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3428
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x81fb(%rip), %rsi      # 0xb631
leaq 0x81fb(%rip), %rdx      # 0xb638
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0xe, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x346a
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x81c1(%rip), %rsi      # 0xb639
leaq 0x81bf(%rip), %rdx      # 0xb63e
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0xf, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x34ac
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x8185(%rip), %rsi      # 0xb63f
leaq 0x8183(%rip), %rdx      # 0xb644
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x10, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x34ee
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x8149(%rip), %rsi      # 0xb645
leaq 0x8147(%rip), %rdx      # 0xb64a
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x11, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3530
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x810d(%rip), %rsi      # 0xb64b
leaq 0x810d(%rip), %rdx      # 0xb652
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x12, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3572
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x80d3(%rip), %rsi      # 0xb653
leaq 0x80d2(%rip), %rdx      # 0xb659
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x13, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x35b4
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x8098(%rip), %rsi      # 0xb65a
leaq 0x8096(%rip), %rdx      # 0xb65f
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x14, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x35f6
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x805c(%rip), %rsi      # 0xb660
leaq 0x8059(%rip), %rdx      # 0xb664
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x15, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3638
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x801f(%rip), %rsi      # 0xb665
leaq 0x8019(%rip), %rdx      # 0xb666
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x16, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x367a
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7fdf(%rip), %rsi      # 0xb667
leaq 0x7fd9(%rip), %rdx      # 0xb668
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x17, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x36bc
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7f9f(%rip), %rsi      # 0xb669
leaq 0x7f99(%rip), %rdx      # 0xb66a
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x18, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x36fe
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7f5f(%rip), %rsi      # 0xb66b
leaq 0x7f59(%rip), %rdx      # 0xb66c
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x19, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3740
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7f27(%rip), %rsi      # 0xb675
leaq 0x7f21(%rip), %rdx      # 0xb676
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x1a, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3782
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7edd(%rip), %rsi      # 0xb66d
leaq 0x7ed7(%rip), %rdx      # 0xb66e
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x1b, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x37c4
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7e9d(%rip), %rsi      # 0xb66f
leaq 0x7e97(%rip), %rdx      # 0xb670
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x1c, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3806
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7e5d(%rip), %rsi      # 0xb671
leaq 0x7e58(%rip), %rdx      # 0xb673
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x1d, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3848
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7e1e(%rip), %rsi      # 0xb674
leaq 0x7e19(%rip), %rdx      # 0xb676
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x1e, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x388a
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7ddf(%rip), %rsi      # 0xb677
leaq 0x7dd9(%rip), %rdx      # 0xb678
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x1f, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x38cc
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7d9f(%rip), %rsi      # 0xb679
leaq 0x7d99(%rip), %rdx      # 0xb67a
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x20, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x390e
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0x50(%rbp), %rdi
movq %r15, (%rdi)
leaq 0x7d5f(%rip), %rsi      # 0xb67b
leaq 0x7d59(%rip), %rdx      # 0xb67c
callq 0x4c4c
leaq -0x50(%rbp), %rsi
movl $0x21, 0x20(%rsi)
movq %r13, %rdi
callq 0x4ce6
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3950
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x396c
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x398e
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x39b0
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x39d2
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0xe0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x39f1
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x2210
addq $0xf8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq 0xb5ce(%rip), %rdi      # 0xefd8
leaq 0x7ba9(%rip), %rsi      # 0xb5ba
callq 0x21f0
movl $0x1, %edi
callq 0x2270
movq 0xb5b1(%rip), %rdi      # 0xefd8
leaq 0x7bb3(%rip), %rsi      # 0xb5e1
movl $0x5, %edx
callq 0x2260
movq 0xb599(%rip), %rdi      # 0xefd8
movq %r12, %rsi
callq 0x21f0
leaq 0x7b99(%rip), %rsi      # 0xb5e7
movq %rax, %rdi
callq 0x21f0
movl $0x2, %edi
callq 0x2270
jmp 0x3be4
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
jmp 0x3b47
jmp 0x3bf6
movq %rax, %r12
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3bf9
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x2210
jmp 0x3bf9
jmp 0x3bf6
movq %rax, %r12
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3c15
movq -0x40(%rbp), %rsi
jmp 0x3c0d
jmp 0x3bf1
movq %rax, %r12
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x3c37
movq -0x40(%rbp), %rsi
jmp 0x3c2f
jmp 0x3ba3
movq %rax, %r12
jmp 0x3c37
movq %rax, %r12
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c59
movq -0x40(%rbp), %rsi
jmp 0x3c51
jmp 0x3be4
jmp 0x3be9
movq %rax, %r12
jmp 0x3ce7
movq %rax, %r12
jmp 0x3cf0
movq %rax, %r12
jmp 0x3cf8
movq %rax, %r12
jmp 0x3c59
movq %rax, %r12
jmp 0x3c9a
movq %rax, %r12
jmp 0x3c15
movq %rax, %r12
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x3c15
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0xb0(%rbp), %rdi
leaq -0xa0(%rbp), %rax
cmpq %rax, %rdi
je 0x3c37
movq -0xa0(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x3c59
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x2210
movq -0x110(%rbp), %rdi
leaq -0x100(%rbp), %rax
cmpq %rax, %rdi
je 0x3c7b
movq -0x100(%rbp), %rsi
incq %rsi
callq 0x2210
leaq -0xe0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3c9a
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x2210
movq %r13, %rdi
callq 0x4b22
movq -0x60(%rbp), %rax
movq (%rax), %rdi
movq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x3cc0
movq (%rax), %rsi
incq %rsi
callq 0x2210
movq -0x68(%rbp), %rax
movq (%rax), %rdi
movq -0x120(%rbp), %rax
cmpq %rax, %rdi
je 0x3cde
movq (%rax), %rsi
incq %rsi
callq 0x2210
movq -0x70(%rbp), %rdi
callq 0x22c0
movq -0x58(%rbp), %rdi
callq 0x20b0
movq %r14, %rdi
callq 0x22c0
movq %rbx, %rdi
callq 0x22c0
movq %r12, %rdi
callq 0x2340