// File: 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
subq $0xc10, %rsp            # imm = 0xC10
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x898(%rbp)
movq %rdi, %rax
movq %rax, -0x8a0(%rbp)
callq 0x3410
movq -0x898(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
movq %rdi, -0x890(%rbp)
callq 0x3410
jmp 0x45e9
movq -0x8a0(%rbp), %rdi
addq $0x400, %rdi            # imm = 0x400
movq %rdi, -0x8a8(%rbp)
callq 0x3310
jmp 0x4605
movq -0x8a0(%rbp), %rdi
addq $0x608, %rdi            # imm = 0x608
movq %rdi, -0x8b0(%rbp)
callq 0x3410
jmp 0x4621
movq -0x8a0(%rbp), %rdi
addq $0x808, %rdi            # imm = 0x808
movq %rdi, -0x8d0(%rbp)
callq 0x3380
movq -0x8a0(%rbp), %rdi
addq $0x830, %rdi            # imm = 0x830
movq %rdi, -0x8c8(%rbp)
callq 0x3380
movq -0x8a0(%rbp), %rdi
addq $0x858, %rdi            # imm = 0x858
movq %rdi, -0x8c0(%rbp)
callq 0x70f0
movq 0x10962(%rip), %rdi     # 0x14fd8
leaq 0xbad9(%rip), %rsi      # 0x10156
callq 0x3270
movq %rax, -0x8b8(%rbp)
jmp 0x468b
movq -0x8b8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x3270
movq %rax, -0x8d8(%rbp)
jmp 0x46a4
movq -0x8d8(%rbp), %rdi
movq 0x1090e(%rip), %rsi     # 0x14fc0
callq 0x32c0
jmp 0x46b9
movq -0x10(%rbp), %rax
movq %rax, -0x8e8(%rbp)
leaq -0x41(%rbp), %rdi
movq %rdi, -0x8e0(%rbp)
callq 0x3440
movq -0x8e8(%rbp), %rsi
movq -0x8e0(%rbp), %rdx
leaq -0x40(%rbp), %rdi
callq 0x7040
jmp 0x46ed
leaq -0x41(%rbp), %rdi
callq 0x32e0
leaq -0x68(%rbp), %rdi
callq 0x3380
leaq -0x40(%rbp), %rdi
callq 0x33d0
cmpq $0x3, %rax
jbe 0x47d0
leaq -0x40(%rbp), %rdi
movq %rdi, -0x8f0(%rbp)
callq 0x33d0
movq -0x8f0(%rbp), %rsi
movq %rax, %rdx
addq $-0x3, %rdx
leaq -0x88(%rbp), %rdi
movl $0x3, %ecx
callq 0x32a0
jmp 0x4743
leaq -0x68(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x3350
leaq -0x88(%rbp), %rdi
callq 0x34b8
jmp 0x47d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5e78
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5e6c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5e60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5e30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x41(%rbp), %rdi
callq 0x32e0
jmp 0x5e30
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5e1e
leaq 0xb98c(%rip), %rsi      # 0x10163
leaq -0x68(%rbp), %rdi
callq 0x7110
movb %al, -0x8f1(%rbp)
jmp 0x47e8
movb -0x8f1(%rbp), %al
testb $0x1, %al
jne 0x47f4
jmp 0x4813
movq 0x107dd(%rip), %rdi     # 0x14fd8
leaq 0xb965(%rip), %rsi      # 0x10167
callq 0x3270
jmp 0x4809
movl $0x1, %edi
callq 0x3340
movq -0x8a0(%rbp), %rdi
addq $0x400, %rdi            # imm = 0x400
movq -0x10(%rbp), %rsi
movl $0x8, %edx
callq 0x31b0
jmp 0x4831
movq -0x8a0(%rbp), %rax
movq 0x400(%rax), %rcx
movq -0x18(%rcx), %rcx
leaq 0x400(%rax,%rcx), %rdi
callq 0x3030
movb %al, -0x8f2(%rbp)
jmp 0x4858
movb -0x8f2(%rbp), %al
testb $0x1, %al
jne 0x4864
jmp 0x48b8
movq 0x1076d(%rip), %rdi     # 0x14fd8
leaq 0xb91c(%rip), %rsi      # 0x1018e
callq 0x3270
movq %rax, -0x900(%rbp)
jmp 0x4880
movq -0x900(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x3270
movq %rax, -0x908(%rbp)
jmp 0x4899
movq -0x908(%rbp), %rdi
leaq 0xb8ed(%rip), %rsi      # 0x10194
callq 0x3270
jmp 0x48ae
movl $0x2, %edi
callq 0x3340
leaq -0x40(%rbp), %rdi
movq %rdi, -0x910(%rbp)
callq 0x33d0
movq -0x910(%rbp), %rsi
movq %rax, %rcx
addq $-0x3, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0xc8(%rbp), %rdi
callq 0x32a0
jmp 0x48e8
leaq 0xb8b1(%rip), %rdx      # 0x101a0
leaq -0xa8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x7140
jmp 0x4904
leaq -0xc8(%rbp), %rdi
callq 0x34b8
movq -0x8a0(%rbp), %rax
addq $0x608, %rax            # imm = 0x608
movq %rax, -0x918(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x3150
movq -0x918(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x3070
jmp 0x4946
leaq -0x40(%rbp), %rdi
movq %rdi, -0x920(%rbp)
callq 0x33d0
movq -0x920(%rbp), %rsi
movq %rax, %rcx
addq $-0x3, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x108(%rbp), %rdi
callq 0x32a0
jmp 0x4976
leaq 0xb827(%rip), %rdx      # 0x101a4
leaq -0xe8(%rbp), %rdi
leaq -0x108(%rbp), %rsi
callq 0x7140
jmp 0x4992
leaq -0x108(%rbp), %rdi
callq 0x34b8
movq -0x8a0(%rbp), %rax
addq $0x200, %rax            # imm = 0x200
movq %rax, -0x928(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x3150
movq -0x928(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x3070
jmp 0x49d4
movq -0x8a0(%rbp), %rdi
addq $0x200, %rdi            # imm = 0x200
leaq 0xb76d(%rip), %rsi      # 0x10156
callq 0x3270
movq %rax, -0x930(%rbp)
jmp 0x49f7
movq -0x930(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x3270
movq %rax, -0x938(%rbp)
jmp 0x4a10
movq -0x938(%rbp), %rdi
movq 0x105a2(%rip), %rsi     # 0x14fc0
callq 0x32c0
jmp 0x4a25
leaq -0x40(%rbp), %rdi
movq %rdi, -0x940(%rbp)
callq 0x33d0
movq -0x940(%rbp), %rsi
movq %rax, %rcx
addq $-0x3, %rcx
xorl %eax, %eax
movl %eax, %edx
leaq -0x148(%rbp), %rdi
callq 0x32a0
jmp 0x4a55
leaq 0xb74e(%rip), %rdx      # 0x101aa
leaq -0x128(%rbp), %rdi
leaq -0x148(%rbp), %rsi
callq 0x7140
jmp 0x4a71
leaq -0x148(%rbp), %rdi
callq 0x34b8
leaq -0x128(%rbp), %rdi
callq 0x3150
movq -0x8a0(%rbp), %rdi
movq %rax, %rsi
movl $0x10, %edx
callq 0x3070
jmp 0x4a9f
movq -0x8a0(%rbp), %rdi
leaq 0xb6a9(%rip), %rsi      # 0x10156
callq 0x3270
movq %rax, -0x948(%rbp)
jmp 0x4abb
movq -0x948(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x3270
movq %rax, -0x950(%rbp)
jmp 0x4ad4
movq -0x950(%rbp), %rdi
movq 0x104de(%rip), %rsi     # 0x14fc0
callq 0x32c0
jmp 0x4ae9
movq -0x8a0(%rbp), %rdi
addq $0x808, %rdi            # imm = 0x808
leaq 0xbaf4(%rip), %rsi      # 0x105f2
callq 0x3370
jmp 0x4b05
movq -0x8a0(%rbp), %rdi
movl $0x0, 0x828(%rdi)
movl $0x0, 0x82c(%rdi)
addq $0x830, %rdi            # imm = 0x830
leaq 0xb65f(%rip), %rsi      # 0x1018d
callq 0x3370
jmp 0x4b35
movq -0x8a0(%rbp), %rax
movl $0x0, 0x854(%rax)
addq $0x858, %rax            # imm = 0x858
movq %rax, -0x958(%rbp)
movl $0x4, -0x174(%rbp)
leaq 0xb64b(%rip), %rsi      # 0x101af
leaq -0x170(%rbp), %rdi
leaq -0x174(%rbp), %rdx
callq 0x71d0
jmp 0x4b79
movq -0x958(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x7190
movb %dl, -0x961(%rbp)
movq %rax, -0x960(%rbp)
jmp 0x4b9b
movb -0x961(%rbp), %al
movq -0x960(%rbp), %rcx
movq %rcx, -0x188(%rbp)
movb %al, -0x180(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0x970(%rbp)
movl $0x5, -0x1b4(%rbp)
leaq 0xb5ce(%rip), %rsi      # 0x101b4
leaq -0x1b0(%rbp), %rdi
leaq -0x1b4(%rbp), %rdx
callq 0x7270
jmp 0x4bfb
movq -0x970(%rbp), %rdi
leaq -0x1b0(%rbp), %rsi
callq 0x7190
movb %dl, -0x979(%rbp)
movq %rax, -0x978(%rbp)
jmp 0x4c1d
movb -0x979(%rbp), %al
movq -0x978(%rbp), %rcx
movq %rcx, -0x1c8(%rbp)
movb %al, -0x1c0(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0x988(%rbp)
movl $0x6, -0x1f4(%rbp)
leaq 0xb54f(%rip), %rsi      # 0x101b7
leaq -0x1f0(%rbp), %rdi
leaq -0x1f4(%rbp), %rdx
callq 0x71d0
jmp 0x4c7d
movq -0x988(%rbp), %rdi
leaq -0x1f0(%rbp), %rsi
callq 0x7190
movb %dl, -0x991(%rbp)
movq %rax, -0x990(%rbp)
jmp 0x4c9f
movb -0x991(%rbp), %al
movq -0x990(%rbp), %rcx
movq %rcx, -0x208(%rbp)
movb %al, -0x200(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0x9a0(%rbp)
movl $0x7, -0x234(%rbp)
leaq 0xb4d2(%rip), %rsi      # 0x101bc
leaq -0x230(%rbp), %rdi
leaq -0x234(%rbp), %rdx
callq 0x72f0
jmp 0x4cff
movq -0x9a0(%rbp), %rdi
leaq -0x230(%rbp), %rsi
callq 0x7190
movb %dl, -0x9a9(%rbp)
movq %rax, -0x9a8(%rbp)
jmp 0x4d21
movb -0x9a9(%rbp), %al
movq -0x9a8(%rbp), %rcx
movq %rcx, -0x248(%rbp)
movb %al, -0x240(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0x9b8(%rbp)
movl $0x8, -0x274(%rbp)
leaq 0xb458(%rip), %rsi      # 0x101c4
leaq -0x270(%rbp), %rdi
leaq -0x274(%rbp), %rdx
callq 0x72f0
jmp 0x4d81
movq -0x9b8(%rbp), %rdi
leaq -0x270(%rbp), %rsi
callq 0x7190
movb %dl, -0x9c1(%rbp)
movq %rax, -0x9c0(%rbp)
jmp 0x4da3
movb -0x9c1(%rbp), %al
movq -0x9c0(%rbp), %rcx
movq %rcx, -0x288(%rbp)
movb %al, -0x280(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0x9d0(%rbp)
movl $0xa, -0x2b4(%rbp)
leaq 0xb3de(%rip), %rsi      # 0x101cc
leaq -0x2b0(%rbp), %rdi
leaq -0x2b4(%rbp), %rdx
callq 0x7370
jmp 0x4e03
movq -0x9d0(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
callq 0x7190
movb %dl, -0x9d9(%rbp)
movq %rax, -0x9d8(%rbp)
jmp 0x4e25
movb -0x9d9(%rbp), %al
movq -0x9d8(%rbp), %rcx
movq %rcx, -0x2c8(%rbp)
movb %al, -0x2c0(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0x9e8(%rbp)
movl $0xb, -0x2f4(%rbp)
leaq 0xb360(%rip), %rsi      # 0x101d0
leaq -0x2f0(%rbp), %rdi
leaq -0x2f4(%rbp), %rdx
callq 0x7270
jmp 0x4e85
movq -0x9e8(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
callq 0x7190
movb %dl, -0x9f1(%rbp)
movq %rax, -0x9f0(%rbp)
jmp 0x4ea7
movb -0x9f1(%rbp), %al
movq -0x9f0(%rbp), %rcx
movq %rcx, -0x308(%rbp)
movb %al, -0x300(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xa00(%rbp)
movl $0xc, -0x334(%rbp)
leaq 0xb2e1(%rip), %rsi      # 0x101d3
leaq -0x330(%rbp), %rdi
leaq -0x334(%rbp), %rdx
callq 0x7370
jmp 0x4f07
movq -0xa00(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x7190
movb %dl, -0xa09(%rbp)
movq %rax, -0xa08(%rbp)
jmp 0x4f29
movb -0xa09(%rbp), %al
movq -0xa08(%rbp), %rcx
movq %rcx, -0x348(%rbp)
movb %al, -0x340(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xa18(%rbp)
movl $0xd, -0x374(%rbp)
leaq 0xb263(%rip), %rsi      # 0x101d7
leaq -0x370(%rbp), %rdi
leaq -0x374(%rbp), %rdx
callq 0x73f0
jmp 0x4f89
movq -0xa18(%rbp), %rdi
leaq -0x370(%rbp), %rsi
callq 0x7190
movb %dl, -0xa21(%rbp)
movq %rax, -0xa20(%rbp)
jmp 0x4fab
movb -0xa21(%rbp), %al
movq -0xa20(%rbp), %rcx
movq %rcx, -0x388(%rbp)
movb %al, -0x380(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xa30(%rbp)
movl $0xe, -0x3b4(%rbp)
leaq 0xb1e8(%rip), %rsi      # 0x101de
leaq -0x3b0(%rbp), %rdi
leaq -0x3b4(%rbp), %rdx
callq 0x72f0
jmp 0x500b
movq -0xa30(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x7190
movb %dl, -0xa39(%rbp)
movq %rax, -0xa38(%rbp)
jmp 0x502d
movb -0xa39(%rbp), %al
movq -0xa38(%rbp), %rcx
movq %rcx, -0x3c8(%rbp)
movb %al, -0x3c0(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xa48(%rbp)
movl $0xf, -0x3f4(%rbp)
leaq 0xb16e(%rip), %rsi      # 0x101e6
leaq -0x3f0(%rbp), %rdi
leaq -0x3f4(%rbp), %rdx
callq 0x7470
jmp 0x508d
movq -0xa48(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
callq 0x7190
movb %dl, -0xa51(%rbp)
movq %rax, -0xa50(%rbp)
jmp 0x50af
movb -0xa51(%rbp), %al
movq -0xa50(%rbp), %rcx
movq %rcx, -0x408(%rbp)
movb %al, -0x400(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xa60(%rbp)
movl $0x10, -0x434(%rbp)
leaq 0xb0f2(%rip), %rsi      # 0x101ec
leaq -0x430(%rbp), %rdi
leaq -0x434(%rbp), %rdx
callq 0x7470
jmp 0x510f
movq -0xa60(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x7190
movb %dl, -0xa69(%rbp)
movq %rax, -0xa68(%rbp)
jmp 0x5131
movb -0xa69(%rbp), %al
movq -0xa68(%rbp), %rcx
movq %rcx, -0x448(%rbp)
movb %al, -0x440(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xa78(%rbp)
movl $0x11, -0x474(%rbp)
leaq 0xb076(%rip), %rsi      # 0x101f2
leaq -0x470(%rbp), %rdi
leaq -0x474(%rbp), %rdx
callq 0x7470
jmp 0x5191
movq -0xa78(%rbp), %rdi
leaq -0x470(%rbp), %rsi
callq 0x7190
movb %dl, -0xa81(%rbp)
movq %rax, -0xa80(%rbp)
jmp 0x51b3
movb -0xa81(%rbp), %al
movq -0xa80(%rbp), %rcx
movq %rcx, -0x488(%rbp)
movb %al, -0x480(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xa90(%rbp)
movl $0x12, -0x4b4(%rbp)
leaq 0xaffa(%rip), %rsi      # 0x101f8
leaq -0x4b0(%rbp), %rdi
leaq -0x4b4(%rbp), %rdx
callq 0x72f0
jmp 0x5213
movq -0xa90(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x7190
movb %dl, -0xa99(%rbp)
movq %rax, -0xa98(%rbp)
jmp 0x5235
movb -0xa99(%rbp), %al
movq -0xa98(%rbp), %rcx
movq %rcx, -0x4c8(%rbp)
movb %al, -0x4c0(%rbp)
leaq -0x4b0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xaa8(%rbp)
movl $0x13, -0x4f4(%rbp)
leaq 0xaf80(%rip), %rsi      # 0x10200
leaq -0x4f0(%rbp), %rdi
leaq -0x4f4(%rbp), %rdx
callq 0x73f0
jmp 0x5295
movq -0xaa8(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0x7190
movb %dl, -0xab1(%rbp)
movq %rax, -0xab0(%rbp)
jmp 0x52b7
movb -0xab1(%rbp), %al
movq -0xab0(%rbp), %rcx
movq %rcx, -0x508(%rbp)
movb %al, -0x500(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xac0(%rbp)
movl $0x14, -0x534(%rbp)
leaq 0xaf05(%rip), %rsi      # 0x10207
leaq -0x530(%rbp), %rdi
leaq -0x534(%rbp), %rdx
callq 0x7470
jmp 0x5317
movq -0xac0(%rbp), %rdi
leaq -0x530(%rbp), %rsi
callq 0x7190
movb %dl, -0xac9(%rbp)
movq %rax, -0xac8(%rbp)
jmp 0x5339
movb -0xac9(%rbp), %al
movq -0xac8(%rbp), %rcx
movq %rcx, -0x548(%rbp)
movb %al, -0x540(%rbp)
leaq -0x530(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xad8(%rbp)
movl $0x15, -0x574(%rbp)
leaq 0xae89(%rip), %rsi      # 0x1020d
leaq -0x570(%rbp), %rdi
leaq -0x574(%rbp), %rdx
callq 0x71d0
jmp 0x5399
movq -0xad8(%rbp), %rdi
leaq -0x570(%rbp), %rsi
callq 0x7190
movb %dl, -0xae1(%rbp)
movq %rax, -0xae0(%rbp)
jmp 0x53bb
movb -0xae1(%rbp), %al
movq -0xae0(%rbp), %rcx
movq %rcx, -0x588(%rbp)
movb %al, -0x580(%rbp)
leaq -0x570(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xaf0(%rbp)
movl $0x16, -0x5b4(%rbp)
leaq 0xae0c(%rip), %rsi      # 0x10212
leaq -0x5b0(%rbp), %rdi
leaq -0x5b4(%rbp), %rdx
callq 0x74f0
jmp 0x541b
movq -0xaf0(%rbp), %rdi
leaq -0x5b0(%rbp), %rsi
callq 0x7190
movb %dl, -0xaf9(%rbp)
movq %rax, -0xaf8(%rbp)
jmp 0x543d
movb -0xaf9(%rbp), %al
movq -0xaf8(%rbp), %rcx
movq %rcx, -0x5c8(%rbp)
movb %al, -0x5c0(%rbp)
leaq -0x5b0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xb08(%rbp)
movl $0x17, -0x5f4(%rbp)
leaq 0xad8c(%rip), %rsi      # 0x10214
leaq -0x5f0(%rbp), %rdi
leaq -0x5f4(%rbp), %rdx
callq 0x74f0
jmp 0x549d
movq -0xb08(%rbp), %rdi
leaq -0x5f0(%rbp), %rsi
callq 0x7190
movb %dl, -0xb11(%rbp)
movq %rax, -0xb10(%rbp)
jmp 0x54bf
movb -0xb11(%rbp), %al
movq -0xb10(%rbp), %rcx
movq %rcx, -0x608(%rbp)
movb %al, -0x600(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xb20(%rbp)
movl $0x18, -0x634(%rbp)
leaq 0xad0c(%rip), %rsi      # 0x10216
leaq -0x630(%rbp), %rdi
leaq -0x634(%rbp), %rdx
callq 0x74f0
jmp 0x551f
movq -0xb20(%rbp), %rdi
leaq -0x630(%rbp), %rsi
callq 0x7190
movb %dl, -0xb29(%rbp)
movq %rax, -0xb28(%rbp)
jmp 0x5541
movb -0xb29(%rbp), %al
movq -0xb28(%rbp), %rcx
movq %rcx, -0x648(%rbp)
movb %al, -0x640(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xb38(%rbp)
movl $0x19, -0x674(%rbp)
leaq 0xac8c(%rip), %rsi      # 0x10218
leaq -0x670(%rbp), %rdi
leaq -0x674(%rbp), %rdx
callq 0x74f0
jmp 0x55a1
movq -0xb38(%rbp), %rdi
leaq -0x670(%rbp), %rsi
callq 0x7190
movb %dl, -0xb41(%rbp)
movq %rax, -0xb40(%rbp)
jmp 0x55c3
movb -0xb41(%rbp), %al
movq -0xb40(%rbp), %rcx
movq %rcx, -0x688(%rbp)
movb %al, -0x680(%rbp)
leaq -0x670(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xb50(%rbp)
movl $0x1a, -0x6b4(%rbp)
leaq 0xac14(%rip), %rsi      # 0x10222
leaq -0x6b0(%rbp), %rdi
leaq -0x6b4(%rbp), %rdx
callq 0x74f0
jmp 0x5623
movq -0xb50(%rbp), %rdi
leaq -0x6b0(%rbp), %rsi
callq 0x7190
movb %dl, -0xb59(%rbp)
movq %rax, -0xb58(%rbp)
jmp 0x5645
movb -0xb59(%rbp), %al
movq -0xb58(%rbp), %rcx
movq %rcx, -0x6c8(%rbp)
movb %al, -0x6c0(%rbp)
leaq -0x6b0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xb68(%rbp)
movl $0x1b, -0x6f4(%rbp)
leaq 0xab8a(%rip), %rsi      # 0x1021a
leaq -0x6f0(%rbp), %rdi
leaq -0x6f4(%rbp), %rdx
callq 0x74f0
jmp 0x56a5
movq -0xb68(%rbp), %rdi
leaq -0x6f0(%rbp), %rsi
callq 0x7190
movb %dl, -0xb71(%rbp)
movq %rax, -0xb70(%rbp)
jmp 0x56c7
movb -0xb71(%rbp), %al
movq -0xb70(%rbp), %rcx
movq %rcx, -0x708(%rbp)
movb %al, -0x700(%rbp)
leaq -0x6f0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xb80(%rbp)
movl $0x1c, -0x734(%rbp)
leaq 0xab0a(%rip), %rsi      # 0x1021c
leaq -0x730(%rbp), %rdi
leaq -0x734(%rbp), %rdx
callq 0x74f0
jmp 0x5727
movq -0xb80(%rbp), %rdi
leaq -0x730(%rbp), %rsi
callq 0x7190
movb %dl, -0xb89(%rbp)
movq %rax, -0xb88(%rbp)
jmp 0x5749
movb -0xb89(%rbp), %al
movq -0xb88(%rbp), %rcx
movq %rcx, -0x748(%rbp)
movb %al, -0x740(%rbp)
leaq -0x730(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xb98(%rbp)
movl $0x1d, -0x774(%rbp)
leaq 0xaa8a(%rip), %rsi      # 0x1021e
leaq -0x770(%rbp), %rdi
leaq -0x774(%rbp), %rdx
callq 0x7270
jmp 0x57a9
movq -0xb98(%rbp), %rdi
leaq -0x770(%rbp), %rsi
callq 0x7190
movb %dl, -0xba1(%rbp)
movq %rax, -0xba0(%rbp)
jmp 0x57cb
movb -0xba1(%rbp), %al
movq -0xba0(%rbp), %rcx
movq %rcx, -0x788(%rbp)
movb %al, -0x780(%rbp)
leaq -0x770(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xbb0(%rbp)
movl $0x1e, -0x7b4(%rbp)
leaq 0xaa0b(%rip), %rsi      # 0x10221
leaq -0x7b0(%rbp), %rdi
leaq -0x7b4(%rbp), %rdx
callq 0x7270
jmp 0x582b
movq -0xbb0(%rbp), %rdi
leaq -0x7b0(%rbp), %rsi
callq 0x7190
movb %dl, -0xbb9(%rbp)
movq %rax, -0xbb8(%rbp)
jmp 0x584d
movb -0xbb9(%rbp), %al
movq -0xbb8(%rbp), %rcx
movq %rcx, -0x7c8(%rbp)
movb %al, -0x7c0(%rbp)
leaq -0x7b0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xbc8(%rbp)
movl $0x1f, -0x7f4(%rbp)
leaq 0xa98c(%rip), %rsi      # 0x10224
leaq -0x7f0(%rbp), %rdi
leaq -0x7f4(%rbp), %rdx
callq 0x74f0
jmp 0x58ad
movq -0xbc8(%rbp), %rdi
leaq -0x7f0(%rbp), %rsi
callq 0x7190
movb %dl, -0xbd1(%rbp)
movq %rax, -0xbd0(%rbp)
jmp 0x58cf
movb -0xbd1(%rbp), %al
movq -0xbd0(%rbp), %rcx
movq %rcx, -0x808(%rbp)
movb %al, -0x800(%rbp)
leaq -0x7f0(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xbe0(%rbp)
movl $0x20, -0x834(%rbp)
leaq 0xa90c(%rip), %rsi      # 0x10226
leaq -0x830(%rbp), %rdi
leaq -0x834(%rbp), %rdx
callq 0x74f0
jmp 0x592f
movq -0xbe0(%rbp), %rdi
leaq -0x830(%rbp), %rsi
callq 0x7190
movb %dl, -0xbe9(%rbp)
movq %rax, -0xbe8(%rbp)
jmp 0x5951
movb -0xbe9(%rbp), %al
movq -0xbe8(%rbp), %rcx
movq %rcx, -0x848(%rbp)
movb %al, -0x840(%rbp)
leaq -0x830(%rbp), %rdi
callq 0x7250
movq -0x8a0(%rbp), %rax
addq $0x858, %rax            # imm = 0x858
movq %rax, -0xbf8(%rbp)
movl $0x21, -0x874(%rbp)
leaq 0xa88c(%rip), %rsi      # 0x10228
leaq -0x870(%rbp), %rdi
leaq -0x874(%rbp), %rdx
callq 0x74f0
jmp 0x59b1
movq -0xbf8(%rbp), %rdi
leaq -0x870(%rbp), %rsi
callq 0x7190
movb %dl, -0xc01(%rbp)
movq %rax, -0xc00(%rbp)
jmp 0x59d3
movb -0xc01(%rbp), %al
movq -0xc00(%rbp), %rcx
movq %rcx, -0x888(%rbp)
movb %al, -0x880(%rbp)
leaq -0x870(%rbp), %rdi
callq 0x7250
leaq -0x128(%rbp), %rdi
callq 0x34b8
leaq -0xe8(%rbp), %rdi
callq 0x34b8
leaq -0xa8(%rbp), %rdi
callq 0x34b8
leaq -0x68(%rbp), %rdi
callq 0x34b8
leaq -0x40(%rbp), %rdi
callq 0x34b8
addq $0xc10, %rsp            # imm = 0xC10
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x34b8
jmp 0x5e1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5e12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x34b8
jmp 0x5e12
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5e06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x148(%rbp), %rdi
callq 0x34b8
jmp 0x5e06
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x170(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x1b0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x1f0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x2b0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x330(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x370(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x3f0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x430(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x470(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x4b0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x4f0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x530(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x570(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x5b0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x5f0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x630(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x670(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x6b0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x6f0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x730(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x770(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x7b0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x7f0(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x830(%rbp), %rdi
callq 0x7250
jmp 0x5dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x870(%rbp), %rdi
callq 0x7250
leaq -0x128(%rbp), %rdi
callq 0x34b8
leaq -0xe8(%rbp), %rdi
callq 0x34b8
leaq -0xa8(%rbp), %rdi
callq 0x34b8
leaq -0x68(%rbp), %rdi
callq 0x34b8
leaq -0x40(%rbp), %rdi
callq 0x34b8
movq -0x8c0(%rbp), %rdi
callq 0x7570
movq -0x8c8(%rbp), %rdi
callq 0x34b8
movq -0x8d0(%rbp), %rdi
callq 0x34b8
movq -0x8b0(%rbp), %rdi
callq 0x33c0
movq -0x8a8(%rbp), %rdi
callq 0x30f0
movq -0x890(%rbp), %rdi
callq 0x33c0
movq -0x898(%rbp), %rdi
callq 0x33c0
movq -0x18(%rbp), %rdi
callq 0x3430
nopl (%rax)