// File: WShabti-Team[P]WShabtiPict/wshabtilib/input-parser/input-parser.cpp
// Function: constraint_parser(std::basic_ifstream<char, std::char_traits<char>>&, std::vector<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>, std::allocator<std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>>>>&)
void constraint_parser(ifstream &input_file_stream, vector<vector<string>> &constraint_matrix)
{
	string file_row;
	int num_of_params = 0;

	while(!input_file_stream.eof())
	{	
		getline(input_file_stream, file_row);
		if(start_string_delim_find(file_row,'#'))
		{
			break;
		}

		vector<string> values_vector = split(file_row, ",");
	    constraint_matrix.push_back(vector<string>());

		for (auto value : values_vector)
		{
			constraint_matrix[num_of_params].push_back(value);
		}

		num_of_params++;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x140, %rsp            # imm = 0x140
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x77e0
movl $0x0, -0x34(%rbp)
movq -0x8(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x7a30
movb %al, -0x119(%rbp)
jmp 0x3426e
movb -0x119(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x3427f
jmp 0x34510
movq -0x8(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x70e0
jmp 0x3428e
leaq -0x68(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x7270
jmp 0x3429d
leaq -0x68(%rbp), %rdi
movl $0x23, %esi
callq 0x32ac0
movb %al, -0x11a(%rbp)
jmp 0x342b3
leaq -0x68(%rbp), %rdi
callq 0x73e0
movb -0x11a(%rbp), %al
testb $0x1, %al
jne 0x342c8
jmp 0x342f8
jmp 0x34510
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x34522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x73e0
jmp 0x34522
leaq -0xa0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x7270
jmp 0x3430a
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x128(%rbp)
callq 0x79e0
movq -0x128(%rbp), %rdx
leaq 0x31947(%rip), %rsi     # 0x65c72
leaq -0xc0(%rbp), %rdi
callq 0xd700
jmp 0x34339
leaq -0x80(%rbp), %rdi
leaq -0xa0(%rbp), %rsi
leaq -0xc0(%rbp), %rdx
callq 0x32880
jmp 0x34352
leaq -0xc0(%rbp), %rdi
callq 0x73e0
leaq -0xc1(%rbp), %rdi
callq 0x7660
leaq -0xa0(%rbp), %rdi
callq 0x73e0
movq -0x10(%rbp), %rax
movq %rax, -0x138(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0xe0(%rbp)
movq $0x0, -0xd0(%rbp)
leaq -0xe0(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x32b00
movq -0x138(%rbp), %rdi
movq -0x130(%rbp), %rsi
callq 0x34540
jmp 0x343be
leaq -0xe0(%rbp), %rdi
callq 0x32bc0
leaq -0x80(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rdi
callq 0x33300
movq %rax, -0xf0(%rbp)
movq -0xe8(%rbp), %rdi
callq 0x33180
movq %rax, -0xf8(%rbp)
leaq -0xf0(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x34570
testb $0x1, %al
jne 0x34417
jmp 0x344ee
leaq -0xf0(%rbp), %rdi
callq 0x339f0
movq %rax, %rsi
leaq -0x118(%rbp), %rdi
callq 0x7270
jmp 0x34434
movq -0x10(%rbp), %rdi
movslq -0x34(%rbp), %rsi
callq 0x345b0
movq %rax, %rdi
leaq -0x118(%rbp), %rsi
callq 0x32b20
jmp 0x34452
leaq -0x118(%rbp), %rdi
callq 0x73e0
leaq -0xf0(%rbp), %rdi
callq 0x345d0
jmp 0x343fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x34492
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x73e0
leaq -0xc1(%rbp), %rdi
callq 0x7660
leaq -0xa0(%rbp), %rdi
callq 0x73e0
jmp 0x34522
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xe0(%rbp), %rdi
callq 0x32bc0
jmp 0x34505
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0x34505
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x73e0
jmp 0x34505
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x32bc0
jmp 0x34253
leaq -0x80(%rbp), %rdi
callq 0x32bc0
jmp 0x34522
leaq -0x30(%rbp), %rdi
callq 0x73e0
addq $0x140, %rsp            # imm = 0x140
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x73e0
movq -0x40(%rbp), %rdi
callq 0x79d0
nopw %cs:(%rax,%rax)
nop