// File: /workspace/github_cpp_makefile_star2_O2/cauimsouza[P]rikudo-solver/src/rikudo_solver/graph.cpp
// Function: Graph::solve_sat()
void Graph::solve_sat(){
    char buffer[1024];  
    int buffer_size = 1024;
    
    readlink("/proc/self/exe", buffer, buffer_size);
    char *path_s = dirname(buffer);
    char *parpath_s = dirname(path_s);
    std::string path(path_s);
    std::string sat_path(std::string(parpath_s) + "/lib/" + sat_solver);
    std::string inp_path(path + "/bin/" + std::string(sat_input));
    std::string out_path(path + "/bin/" + std::string(sat_output));
    std::cout << inp_path << "\n" << out_path << "\n";

    std::string cmd = sat_path + " " + inp_path + " > " + out_path; 
    std::system(cmd.data());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r14
pushq %rbx
subq $0x500, %rsp            # imm = 0x500
leaq 0x38b3(%rip), %rdi      # 0x8172
leaq -0x510(%rbp), %rbx
movl $0x400, %edx            # imm = 0x400
movq %rbx, %rsi
callq 0x21f0
movq %rbx, %rdi
callq 0x20d0
movq %rax, %rbx
movq %rax, %rdi
callq 0x20d0
movq %rax, %r14
leaq -0xf0(%rbp), %rdi
leaq -0xd0(%rbp), %rdx
movq %rbx, %rsi
callq 0x20b0
leaq -0x50(%rbp), %rdi
leaq -0x30(%rbp), %rdx
movq %r14, %rsi
callq 0x20b0
leaq 0x386b(%rip), %rdx      # 0x8181
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x6063
leaq 0x385a(%rip), %rdx      # 0x8187
leaq -0xd0(%rbp), %rdi
leaq -0x90(%rbp), %rsi
callq 0x6063
leaq -0x90(%rbp), %rdi
callq 0x20e0
leaq -0x50(%rbp), %rdi
callq 0x20e0
leaq 0x3839(%rip), %rdx      # 0x8195
leaq -0x50(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x60fd
leaq 0x37b1(%rip), %rsi      # 0x8124
leaq -0x30(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x20b0
leaq -0x90(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x608c
leaq -0x30(%rbp), %rdi
callq 0x20e0
leaq -0x50(%rbp), %rdi
callq 0x20e0
leaq 0x37e8(%rip), %rdx      # 0x8195
leaq -0x30(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
callq 0x60fd
leaq 0x378e(%rip), %rsi      # 0x8152
leaq -0x70(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
callq 0x20b0
leaq -0x50(%rbp), %rdi
leaq -0x30(%rbp), %rsi
leaq -0x70(%rbp), %rdx
callq 0x608c
leaq -0x70(%rbp), %rdi
callq 0x20e0
leaq -0x30(%rbp), %rdi
callq 0x20e0
movq 0x75d2(%rip), %rdi      # 0xbfd0
leaq -0x90(%rbp), %rsi
callq 0x21a0
leaq 0x372a(%rip), %rsi      # 0x813b
movq %rax, %rdi
callq 0x21d0
leaq -0x50(%rbp), %rsi
movq %rax, %rdi
callq 0x21a0
leaq 0x370f(%rip), %rsi      # 0x813b
movq %rax, %rdi
callq 0x21d0
leaq 0x3762(%rip), %rdx      # 0x819d
leaq -0x110(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x60fd
leaq -0xb0(%rbp), %rdi
leaq -0x110(%rbp), %rsi
leaq -0x90(%rbp), %rdx
callq 0x6135
leaq 0x372c(%rip), %rdx      # 0x819b
leaq -0x70(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x6063
leaq -0x30(%rbp), %rdi
leaq -0x70(%rbp), %rsi
leaq -0x50(%rbp), %rdx
callq 0x6135
leaq -0x70(%rbp), %rdi
callq 0x20e0
leaq -0xb0(%rbp), %rdi
callq 0x20e0
leaq -0x110(%rbp), %rdi
callq 0x20e0
movq -0x30(%rbp), %rdi
callq 0x2170
leaq -0x30(%rbp), %rdi
callq 0x20e0
leaq -0x50(%rbp), %rdi
callq 0x20e0
leaq -0x90(%rbp), %rdi
callq 0x20e0
leaq -0xd0(%rbp), %rdi
callq 0x20e0
leaq -0xf0(%rbp), %rdi
callq 0x20e0
addq $0x500, %rsp            # imm = 0x500
popq %rbx
popq %r14
popq %rbp
retq
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
jmp 0x4b2e
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x20e0
jmp 0x4b16
movq %rax, %rbx
leaq -0xb0(%rbp), %rdi
callq 0x20e0
jmp 0x4b27
movq %rax, %rbx
leaq -0x110(%rbp), %rdi
callq 0x20e0
jmp 0x4b91
jmp 0x4b8e
movq %rax, %rbx
leaq -0x70(%rbp), %rdi
callq 0x20e0
jmp 0x4b48
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
jmp 0x4b95
movq %rax, %rbx
jmp 0x4b9a
movq %rax, %rbx
leaq -0x30(%rbp), %rdi
callq 0x20e0
jmp 0x4b64
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0x4ba1
movq %rax, %rbx
jmp 0x4ba6
movq %rax, %rbx
leaq -0x90(%rbp), %rdi
callq 0x20e0
jmp 0x4b83
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0x4bad
movq %rax, %rbx
jmp 0x4bb2
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
callq 0x20e0
leaq -0x90(%rbp), %rdi
callq 0x20e0
leaq -0xd0(%rbp), %rdi
callq 0x20e0
leaq -0xf0(%rbp), %rdi
callq 0x20e0
movq %rbx, %rdi
callq 0x2360