// File: czmccrory[P]ManchesterBaby/./assembler.h
// Function: InstructionSet::InstructionSet()
InstructionSet::InstructionSet()
{
	this -> size = 14;
  
	string mne[14] = { "JMP", "JRP", "LDN", "STO", "SUB", "SUB", "CMP", "STP", "MUL", "LDP", "ADD", "NEGSTO", "INC", "DEC"};
	int num[14] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 };

	vector<InstructionNode> temp(14); 

	for (int i = 0; i < 14; i++)
	{
		temp.at(i) = InstructionNode(mne[i], num[i]);
	}

	this -> vec = temp;


}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x3f0, %rsp            # imm = 0x3F0
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x2c0(%rbp)
movq %rdi, %rax
movq %rax, -0x2c8(%rbp)
callq 0x7610
movq -0x2c0(%rbp), %rax
movl $0xe, 0x18(%rax)
movb $0x1, -0x1fa(%rbp)
leaq -0x1d0(%rbp), %rax
movq %rax, -0x2b8(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1d9(%rbp), %rdi
movq %rdi, -0x2b0(%rbp)
callq 0x3460
movq -0x2b8(%rbp), %rdi
movq -0x2b0(%rbp), %rdx
leaq 0x77e9(%rip), %rsi      # 0xb004
callq 0x7630
jmp 0x3822
leaq -0x1b0(%rbp), %rax
movq %rax, -0x2d8(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1ed(%rbp), %rdi
movq %rdi, -0x2d0(%rbp)
callq 0x3460
movq -0x2d8(%rbp), %rdi
movq -0x2d0(%rbp), %rdx
leaq 0x77a9(%rip), %rsi      # 0xb008
callq 0x7630
jmp 0x3866
leaq -0x190(%rbp), %rax
movq %rax, -0x2e8(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1ee(%rbp), %rdi
movq %rdi, -0x2e0(%rbp)
callq 0x3460
movq -0x2e8(%rbp), %rdi
movq -0x2e0(%rbp), %rdx
leaq 0x7769(%rip), %rsi      # 0xb00c
callq 0x7630
jmp 0x38aa
leaq -0x170(%rbp), %rax
movq %rax, -0x2f8(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1ef(%rbp), %rdi
movq %rdi, -0x2f0(%rbp)
callq 0x3460
movq -0x2f8(%rbp), %rdi
movq -0x2f0(%rbp), %rdx
leaq 0x7744(%rip), %rsi      # 0xb02b
callq 0x7630
jmp 0x38ee
leaq -0x150(%rbp), %rax
movq %rax, -0x308(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f0(%rbp), %rdi
movq %rdi, -0x300(%rbp)
callq 0x3460
movq -0x308(%rbp), %rdi
movq -0x300(%rbp), %rdx
leaq 0x76e5(%rip), %rsi      # 0xb010
callq 0x7630
jmp 0x3932
leaq -0x130(%rbp), %rax
movq %rax, -0x318(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f1(%rbp), %rdi
movq %rdi, -0x310(%rbp)
callq 0x3460
movq -0x318(%rbp), %rdi
movq -0x310(%rbp), %rdx
leaq 0x76a1(%rip), %rsi      # 0xb010
callq 0x7630
jmp 0x3976
leaq -0x110(%rbp), %rax
movq %rax, -0x328(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f2(%rbp), %rdi
movq %rdi, -0x320(%rbp)
callq 0x3460
movq -0x328(%rbp), %rdi
movq -0x320(%rbp), %rdx
leaq 0x7661(%rip), %rsi      # 0xb014
callq 0x7630
jmp 0x39ba
leaq -0xf0(%rbp), %rax
movq %rax, -0x338(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f3(%rbp), %rdi
movq %rdi, -0x330(%rbp)
callq 0x3460
movq -0x338(%rbp), %rdi
movq -0x330(%rbp), %rdx
leaq 0x7621(%rip), %rsi      # 0xb018
callq 0x7630
jmp 0x39fe
leaq -0xd0(%rbp), %rax
movq %rax, -0x348(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f4(%rbp), %rdi
movq %rdi, -0x340(%rbp)
callq 0x3460
movq -0x348(%rbp), %rdi
movq -0x340(%rbp), %rdx
leaq 0x75e1(%rip), %rsi      # 0xb01c
callq 0x7630
jmp 0x3a42
leaq -0xb0(%rbp), %rax
movq %rax, -0x358(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f5(%rbp), %rdi
movq %rdi, -0x350(%rbp)
callq 0x3460
movq -0x358(%rbp), %rdi
movq -0x350(%rbp), %rdx
leaq 0x75a1(%rip), %rsi      # 0xb020
callq 0x7630
jmp 0x3a86
leaq -0x90(%rbp), %rax
movq %rax, -0x368(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f6(%rbp), %rdi
movq %rdi, -0x360(%rbp)
callq 0x3460
movq -0x368(%rbp), %rdi
movq -0x360(%rbp), %rdx
leaq 0x7561(%rip), %rsi      # 0xb024
callq 0x7630
jmp 0x3aca
leaq -0x70(%rbp), %rax
movq %rax, -0x378(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f7(%rbp), %rdi
movq %rdi, -0x370(%rbp)
callq 0x3460
movq -0x378(%rbp), %rdi
movq -0x370(%rbp), %rdx
leaq 0x7524(%rip), %rsi      # 0xb028
callq 0x7630
jmp 0x3b0b
leaq -0x50(%rbp), %rax
movq %rax, -0x388(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f8(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0x3460
movq -0x388(%rbp), %rdi
movq -0x380(%rbp), %rdx
leaq 0x74ea(%rip), %rsi      # 0xb02f
callq 0x7630
jmp 0x3b4c
leaq -0x30(%rbp), %rax
movq %rax, -0x398(%rbp)
movq %rax, -0x1d8(%rbp)
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x390(%rbp)
callq 0x3460
movq -0x398(%rbp), %rdi
movq -0x390(%rbp), %rdx
leaq 0x74ad(%rip), %rsi      # 0xb033
callq 0x7630
jmp 0x3b8d
movb $0x0, -0x1fa(%rbp)
leaq -0x1f9(%rbp), %rdi
callq 0x32f0
leaq -0x1f8(%rbp), %rdi
callq 0x32f0
leaq -0x1f7(%rbp), %rdi
callq 0x32f0
leaq -0x1f6(%rbp), %rdi
callq 0x32f0
leaq -0x1f5(%rbp), %rdi
callq 0x32f0
leaq -0x1f4(%rbp), %rdi
callq 0x32f0
leaq -0x1f3(%rbp), %rdi
callq 0x32f0
leaq -0x1f2(%rbp), %rdi
callq 0x32f0
leaq -0x1f1(%rbp), %rdi
callq 0x32f0
leaq -0x1f0(%rbp), %rdi
callq 0x32f0
leaq -0x1ef(%rbp), %rdi
callq 0x32f0
leaq -0x1ee(%rbp), %rdi
callq 0x32f0
leaq -0x1ed(%rbp), %rdi
callq 0x32f0
leaq -0x1d9(%rbp), %rdi
callq 0x32f0
movabsq $0xd0000000c, %rax      # imm = 0xD0000000C
movq %rax, -0x210(%rbp)
movaps 0x764c(%rip), %xmm0     # 0xb2a0
movaps %xmm0, -0x220(%rbp)
movaps 0x762e(%rip), %xmm0     # 0xb290
movaps %xmm0, -0x230(%rbp)
movaps 0x7610(%rip), %xmm0     # 0xb280
movaps %xmm0, -0x240(%rbp)
leaq -0x259(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x76e0
movq -0x3a0(%rbp), %rdx
leaq -0x258(%rbp), %rdi
movl $0xe, %esi
callq 0x7700
jmp 0x3ca4
leaq -0x259(%rbp), %rdi
callq 0x7770
movl $0x0, -0x260(%rbp)
cmpl $0xe, -0x260(%rbp)
jge 0x4016
movslq -0x260(%rbp), %rax
shlq $0x5, %rax
leaq -0x1d0(%rbp,%rax), %rsi
leaq -0x2a8(%rbp), %rdi
callq 0x3100
jmp 0x3ce8
movslq -0x260(%rbp), %rax
movl -0x240(%rbp,%rax,4), %edx
leaq -0x288(%rbp), %rdi
leaq -0x2a8(%rbp), %rsi
callq 0x4330
jmp 0x3d0b
movslq -0x260(%rbp), %rsi
leaq -0x258(%rbp), %rdi
callq 0x7790
movq %rax, -0x3a8(%rbp)
jmp 0x3d27
movq -0x3a8(%rbp), %rdi
leaq -0x288(%rbp), %rsi
callq 0x77d0
leaq -0x288(%rbp), %rdi
callq 0x7810
leaq -0x2a8(%rbp), %rdi
callq 0x31c0
movl -0x260(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x260(%rbp)
jmp 0x3cba
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3f33
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3f27
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3f1b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3f0f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3f03
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3ef7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3eeb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3edf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3ed3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3ec7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3ebb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3eaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x3ea3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
leaq -0x1f9(%rbp), %rdi
callq 0x32f0
leaq -0x1f8(%rbp), %rdi
callq 0x32f0
leaq -0x1f7(%rbp), %rdi
callq 0x32f0
leaq -0x1f6(%rbp), %rdi
callq 0x32f0
leaq -0x1f5(%rbp), %rdi
callq 0x32f0
leaq -0x1f4(%rbp), %rdi
callq 0x32f0
leaq -0x1f3(%rbp), %rdi
callq 0x32f0
leaq -0x1f2(%rbp), %rdi
callq 0x32f0
leaq -0x1f1(%rbp), %rdi
callq 0x32f0
leaq -0x1f0(%rbp), %rdi
callq 0x32f0
leaq -0x1ef(%rbp), %rdi
callq 0x32f0
leaq -0x1ee(%rbp), %rdi
callq 0x32f0
leaq -0x1ed(%rbp), %rdi
callq 0x32f0
leaq -0x1d9(%rbp), %rdi
callq 0x32f0
testb $0x1, -0x1fa(%rbp)
jne 0x3f4a
jmp 0x3f97
movq -0x1d8(%rbp), %rax
leaq -0x1d0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x3b0(%rbp)
je 0x3f95
movq -0x3b0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3b8(%rbp)
callq 0x31c0
movq -0x3b8(%rbp), %rax
leaq -0x1d0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x3b0(%rbp)
jne 0x3f64
jmp 0x3f97
jmp 0x40e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
leaq -0x259(%rbp), %rdi
callq 0x7770
jmp 0x4098
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x408c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
jmp 0x4008
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1e8(%rbp)
movl %eax, -0x1ec(%rbp)
leaq -0x288(%rbp), %rdi
callq 0x7810
leaq -0x2a8(%rbp), %rdi
callq 0x31c0
jmp 0x408c
movq -0x2c8(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x7830
jmp 0x402b
leaq -0x258(%rbp), %rdi
callq 0x7a80
leaq -0x1d0(%rbp), %rax
movq %rax, -0x3c8(%rbp)
addq $0x1c0, %rax            # imm = 0x1C0
movq %rax, -0x3c0(%rbp)
movq -0x3c0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x31c0
movq -0x3c8(%rbp), %rcx
movq -0x3d0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x3c0(%rbp)
jne 0x4052
addq $0x3f0, %rsp            # imm = 0x3F0
popq %rbp
retq
leaq -0x258(%rbp), %rdi
callq 0x7a80
leaq -0x1d0(%rbp), %rax
movq %rax, -0x3e0(%rbp)
addq $0x1c0, %rax            # imm = 0x1C0
movq %rax, -0x3d8(%rbp)
movq -0x3d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x3e8(%rbp)
callq 0x31c0
movq -0x3e0(%rbp), %rcx
movq -0x3e8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x3d8(%rbp)
jne 0x40b3
jmp 0x40e6
movq -0x2c0(%rbp), %rdi
callq 0x7a80
movq -0x1e8(%rbp), %rdi
callq 0x3450
nop