LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: TaxiAgency::print_ongoing_shifts()
void TaxiAgency::print_ongoing_shifts(){
    cout << "[" << endl;
    for (list<Shift>::iterator i = current_shifts.begin(); i != current_shifts.end(); ++i)
        cout << *i;
    cout << "]" << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq 0x1d315(%rip), %rdi     # 0x45f80
leaq 0x7fdf(%rip), %rsi      # 0x30c51
callq 0x42d0
movq %rax, %rdi
movq 0x1d2c7(%rip), %rsi     # 0x45f48
callq 0x4310
movq -0x20(%rbp), %rdi
addq $0x48, %rdi
callq 0x2aa60
movq %rax, -0x10(%rbp)
movq -0x20(%rbp), %rdi
addq $0x48, %rdi
callq 0x2aac0
movq %rax, -0x18(%rbp)
leaq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x2aa90
testb $0x1, %al
jne 0x28cbb
jmp 0x28cde
leaq -0x10(%rbp), %rdi
callq 0x2ab70
movq %rax, %rsi
movq 0x1d2b2(%rip), %rdi     # 0x45f80
callq 0x1f980
leaq -0x10(%rbp), %rdi
callq 0x2ab10
jmp 0x28c97
movq 0x1d29b(%rip), %rdi     # 0x45f80
leaq 0x8e89(%rip), %rsi      # 0x31b75
callq 0x42d0
movq %rax, %rdi
movq 0x1d24d(%rip), %rsi     # 0x45f48
callq 0x4310
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: TaxiAgency::print_shift_history()
void TaxiAgency::print_shift_history(){
    cout << "[" << endl;
    for (list<Shift>::iterator i = shift_history.begin(); i != shift_history.end(); ++i)
        cout << *i;
    cout << "]" << endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x20(%rbp)
movq 0x1d255(%rip), %rdi     # 0x45f80
leaq 0x7f1f(%rip), %rsi      # 0x30c51
callq 0x42d0
movq %rax, %rdi
movq 0x1d207(%rip), %rsi     # 0x45f48
callq 0x4310
movq -0x20(%rbp), %rdi
addq $0x60, %rdi
callq 0x2aa60
movq %rax, -0x10(%rbp)
movq -0x20(%rbp), %rdi
addq $0x60, %rdi
callq 0x2aac0
movq %rax, -0x18(%rbp)
leaq -0x10(%rbp), %rdi
leaq -0x18(%rbp), %rsi
callq 0x2aa90
testb $0x1, %al
jne 0x28d7b
jmp 0x28d9e
leaq -0x10(%rbp), %rdi
callq 0x2ab70
movq %rax, %rsi
movq 0x1d1f2(%rip), %rdi     # 0x45f80
callq 0x1f980
leaq -0x10(%rbp), %rdi
callq 0x2ab10
jmp 0x28d57
movq 0x1d1db(%rip), %rdi     # 0x45f80
leaq 0x8dc9(%rip), %rsi      # 0x31b75
callq 0x42d0
movq %rax, %rdi
movq 0x1d18d(%rip), %rsi     # 0x45f48
callq 0x4310
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: Karunika[P]Taxi_Agency_OODB/./src/TaxiAgency.cpp
// Function: TaxiAgency::upgrade_agency_assets(int, int, int)
void TaxiAgency::upgrade_agency_assets(int garage_limit, int each_car_limit, int driver_vacancies){
    if(garage_limit < GarageLimit || each_car_limit < EachCarLimit || driver_vacancies < DriverLimit){
        return;
    }
    this->GarageLimit = garage_limit;
    this->EachCarLimit = each_car_limit;
    this->DriverLimit = driver_vacancies;

    taxies.reserve(GarageLimit+1);
    driver_db.reserve(DriverLimit+1);
    customer_db.reserve(DriverLimit+1);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movq -0x8(%rbp), %rcx
movq %rcx, -0x20(%rbp)
movl -0xc(%rbp), %eax
cmpl 0x7c(%rcx), %eax
jl 0x28e13
movq -0x20(%rbp), %rcx
movl -0x10(%rbp), %eax
cmpl 0x80(%rcx), %eax
jl 0x28e13
movq -0x20(%rbp), %rcx
movl -0x14(%rbp), %eax
cmpl 0x84(%rcx), %eax
jge 0x28e15
jmp 0x28e77
movq -0x20(%rbp), %rdi
movl -0xc(%rbp), %eax
movl %eax, 0x7c(%rdi)
movl -0x10(%rbp), %eax
movl %eax, 0x80(%rdi)
movl -0x14(%rbp), %eax
movl %eax, 0x84(%rdi)
movl 0x7c(%rdi), %eax
addl $0x1, %eax
movslq %eax, %rsi
callq 0x29100
movq -0x20(%rbp), %rax
movq %rax, %rdi
addq $0x18, %rdi
movl 0x84(%rax), %eax
addl $0x1, %eax
movslq %eax, %rsi
callq 0x29200
movq -0x20(%rbp), %rax
movq %rax, %rdi
addq $0x30, %rdi
movl 0x84(%rax), %eax
addl $0x1, %eax
movslq %eax, %rsi
callq 0x29300
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: Karunika[P]Taxi_Agency_OODB/./src/../include/./Taxi.hpp
// Function: operator<<(std::ostream&, Taxi const&)
ostream& operator<<(ostream& output, const Taxi& T){
        output << "\t{" <<
            "\n\t\thybrid : " << (T.hybrid ? "True" : "False") <<
            "\n\t\tid : " << T.id <<
            "\n\t\tmanufacturer : " << T.manufacturer <<
            "\n\t\tfare amount : " << T.fare_amount <<
            "\n\t\tcount : " << T.number <<
            "\n\t\tavailable count : " << T.available_number <<
            "\n\t\ton shift count : " << T.number - T.available_number <<
            "\n\t}" <<
            endl;
        return output;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
leaq 0x64bc(%rip), %rsi      # 0x31887
callq 0x42d0
movq %rax, %rdi
leaq 0x6c0f(%rip), %rsi      # 0x31fe9
callq 0x42d0
movq %rax, %rdi
movq -0x10(%rbp), %rax
movb (%rax), %cl
leaq 0x68d1(%rip), %rsi      # 0x31cc0
leaq 0x68c5(%rip), %rax      # 0x31cbb
testb $0x1, %cl
cmovneq %rax, %rsi
callq 0x42d0
movq %rax, %rdi
leaq 0x6bea(%rip), %rsi      # 0x31ff6
callq 0x42d0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x8, %rsi
callq 0x4290
movq %rax, %rdi
leaq 0x6bd4(%rip), %rsi      # 0x31fff
callq 0x42d0
movq %rax, %rdi
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
callq 0x4290
movq %rax, %rdi
leaq 0x6bc8(%rip), %rsi      # 0x32012
callq 0x42d0
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x48(%rax), %esi
callq 0x44d0
movq %rax, %rdi
leaq 0x6bbc(%rip), %rsi      # 0x32024
callq 0x42d0
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x4c(%rax), %esi
callq 0x44d0
movq %rax, %rdi
leaq 0x6baa(%rip), %rsi      # 0x32030
callq 0x42d0
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x50(%rax), %esi
callq 0x44d0
movq %rax, %rdi
leaq 0x6ba2(%rip), %rsi      # 0x32046
callq 0x42d0
movq %rax, %rdi
movq -0x10(%rbp), %rax
movl 0x4c(%rax), %esi
movq -0x10(%rbp), %rax
subl 0x50(%rax), %esi
callq 0x44d0
movq %rax, %rdi
leaq 0x6415(%rip), %rsi      # 0x318de
callq 0x42d0
movq %rax, %rdi
movq 0x1aa70(%rip), %rsi     # 0x45f48
callq 0x4310
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: bubiche[P]wu_manber/./wu_manber.hpp
// Function: wu_manber::WuManber<char, std::char_traits<char>>::getWuManberTableHashFromText_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long)
unsigned int getWuManberTableHashFromText_(const StringType &text, std::size_t cur_idx) {
      unsigned int hashValue;
      hashValue = text[cur_idx];
      hashValue <<= HBITS_;
      hashValue += text[cur_idx - 1];
      hashValue <<= HBITS_;
      hashValue += text[cur_idx - 2];
      hashValue %= tableSize_; // may try this for faster mod: https://www.youtube.com/watch?v=nXaxk27zwlk&feature=youtu.be&t=56m34s
      return hashValue;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x21e0
movq %rax, %rcx
movq -0x28(%rbp), %rax
movsbl (%rcx), %ecx
movl %ecx, -0x1c(%rbp)
movzwl 0x18(%rax), %ecx
movl -0x1c(%rbp), %eax
shll %cl, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
subq $0x1, %rsi
callq 0x21e0
movq %rax, %rcx
movq -0x28(%rbp), %rax
movsbl (%rcx), %ecx
addl -0x1c(%rbp), %ecx
movl %ecx, -0x1c(%rbp)
movzwl 0x18(%rax), %ecx
movl -0x1c(%rbp), %eax
shll %cl, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
subq $0x2, %rsi
callq 0x21e0
movq %rax, %rcx
movq -0x28(%rbp), %rax
movsbl (%rcx), %ecx
addl -0x1c(%rbp), %ecx
movl %ecx, -0x1c(%rbp)
movq 0x20(%rax), %rcx
movl -0x1c(%rbp), %eax
xorl %edx, %edx
divq %rcx
movl %edx, %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: bubiche[P]wu_manber/./wu_manber.hpp
// Function: wu_manber::WuManber<char, std::char_traits<char>>::getPrefixHashFromText_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long)
unsigned int getPrefixHashFromText_(const StringType &text, std::size_t cur_idx) {
      unsigned int prefixHash;
      prefixHash = text[cur_idx];
      prefixHash <<= HBITS_;
      prefixHash += text[cur_idx + 1];
      return prefixHash;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x21e0
movq %rax, %rcx
movq -0x28(%rbp), %rax
movsbl (%rcx), %ecx
movl %ecx, -0x1c(%rbp)
movzwl 0x18(%rax), %ecx
movl -0x1c(%rbp), %eax
shll %cl, %eax
movl %eax, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
addq $0x1, %rsi
callq 0x21e0
movsbl (%rax), %eax
addl -0x1c(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: bubiche[P]wu_manber/./wu_manber.hpp
// Function: wu_manber::WuManber<char, std::char_traits<char>>::checkShortPattern_(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long, std::function<void (std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned long, unsigned long)>) const
void checkShortPattern_(const StringType &text, std::size_t cur_idx, std::function<void(const StringType&, std::size_t, std::size_t)> onMatch) const {
      int l1MatchIndex = lengthOnePatternLookup_[static_cast<std::size_t>(text[cur_idx])];
      if (l1MatchIndex > -1) {
        onMatch(lengthOnePatterns_[l1MatchIndex], l1MatchIndex, cur_idx);
      }

      int l2MatchIndex = lengthTwoPatternLookup_[static_cast<std::size_t>(text[cur_idx - 1])][static_cast<std::size_t>(text[cur_idx])];
      if (l2MatchIndex > -1) {
        onMatch(lengthTwoPatterns_[l2MatchIndex], l2MatchIndex, cur_idx - 1);
      }
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rcx, -0x40(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
addq $0x80, %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x21e0
movq -0x30(%rbp), %rdi
movsbq (%rax), %rsi
callq 0x8730
movq (%rax), %rax
movl %eax, -0x24(%rbp)
cmpl $-0x1, -0x24(%rbp)
jle 0x854c
movq -0x38(%rbp), %rdi
addq $0xb0, %rdi
movslq -0x24(%rbp), %rsi
callq 0x8750
movq -0x40(%rbp), %rdi
movq %rax, %rsi
movslq -0x24(%rbp), %rdx
movq -0x18(%rbp), %rcx
callq 0x8480
movq -0x38(%rbp), %rax
addq $0x98, %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
subq $0x1, %rsi
callq 0x21e0
movq -0x50(%rbp), %rdi
movsbq (%rax), %rsi
callq 0x8770
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x21e0
movq -0x48(%rbp), %rdi
movsbq (%rax), %rsi
callq 0x8730
movq (%rax), %rax
movl %eax, -0x28(%rbp)
cmpl $-0x1, -0x28(%rbp)
jle 0x85ce
movq -0x38(%rbp), %rdi
addq $0xc8, %rdi
movslq -0x28(%rbp), %rsi
callq 0x8750
movq -0x40(%rbp), %rdi
movq %rax, %rsi
movslq -0x28(%rbp), %rdx
movq -0x18(%rbp), %rcx
subq $0x1, %rcx
callq 0x8480
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
nop
// File: biotomas[P]ipasir/app/genipalsp/genipalsp.cpp
// Function: log(char const*, ...)
void log(const char* fmt ...) {
	va_list args;
	va_start(args, fmt);
	printf("[%.3f] ", getAbsoluteTimeLP() - start);
	vprintf(fmt, args);
	va_end(args);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xd0, %rsp
testb %al, %al
je 0x24b5
movaps %xmm0, -0xa0(%rbp)
movaps %xmm1, -0x90(%rbp)
movaps %xmm2, -0x80(%rbp)
movaps %xmm3, -0x70(%rbp)
movaps %xmm4, -0x60(%rbp)
movaps %xmm5, -0x50(%rbp)
movaps %xmm6, -0x40(%rbp)
movaps %xmm7, -0x30(%rbp)
movq %r9, -0xa8(%rbp)
movq %r8, -0xb0(%rbp)
movq %rcx, -0xb8(%rbp)
movq %rdx, -0xc0(%rbp)
movq %rsi, -0xc8(%rbp)
movq %rdi, -0x8(%rbp)
leaq -0xd0(%rbp), %rax
movq %rax, -0x10(%rbp)
leaq 0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movl $0x30, -0x1c(%rbp)
movl $0x8, -0x20(%rbp)
callq 0x2440
movsd 0x24c8e(%rip), %xmm1    # 0x27198
subsd %xmm1, %xmm0
leaq 0x1bafb(%rip), %rdi     # 0x1e010
movb $0x1, %al
callq 0x2030
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x2170
addq $0xd0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: biotomas[P]ipasir/app/genipalsp/genipalsp.cpp
// Function: addFormula(void*, SimpleFormula const&)
void addFormula(void* solver, const SimpleFormula& formula) {
	for (size_t i = 0; i < formula.clauses.size(); i++) {
		for (size_t j = 0; j < formula.clauses[i].size(); j++) {
			ipasir_add(solver, formula.clauses[i][j]);
		}
		ipasir_add(solver, 0);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
callq 0x34c0
movq %rax, %rcx
movq -0x28(%rbp), %rax
cmpq %rcx, %rax
jae 0x2b1c
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movq -0x18(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
callq 0x3630
movq %rax, %rcx
movq -0x30(%rbp), %rax
cmpq %rcx, %rax
jae 0x2b00
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movq -0x18(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
movq -0x20(%rbp), %rsi
callq 0x3650
movq -0x38(%rbp), %rdi
movl (%rax), %esi
callq 0x6550
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x2a95
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x6550
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x2a68
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: biotomas[P]ipasir/app/genipalsp/genipalsp.cpp
// Function: printGraph(Graph const&)
void printGraph(const Graph& graph) {
	printf("p edge %d %d\n", graph.verticesCount, graph.edgesCount);
	for (size_t i = 0; i < graph.neighbours.size(); i++) {
		for (size_t j = 0; j < graph.neighbours[i].size(); j++) {
			printf("e %lu %d\n", i, graph.neighbours[i][j]);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %esi
movq -0x8(%rbp), %rax
movl 0x4(%rax), %edx
leaq 0x1b5ad(%rip), %rdi     # 0x1e0fd
movb $0x0, %al
callq 0x2030
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x34c0
movq %rax, %rcx
movq -0x20(%rbp), %rax
cmpq %rcx, %rax
jae 0x2c13
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
callq 0x3630
movq %rax, %rcx
movq -0x28(%rbp), %rax
cmpq %rcx, %rax
jae 0x2c00
movq -0x10(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x3650
movq -0x30(%rbp), %rsi
movl (%rax), %edx
leaq 0x1b520(%rip), %rdi     # 0x1e10b
movb $0x0, %al
callq 0x2030
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x2b8c
jmp 0x2c02
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x2b5f
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: biotomas[P]ipasir/app/genipalsp/genipalsp.cpp
// Function: printFormula(SimpleFormula const&)
void printFormula(const SimpleFormula& formula) {
	printf("p cnf %d %lu\n", formula.vars, formula.clauses.size());
	for (size_t i = 0; i < formula.clauses.size(); i++) {
		for (size_t j = 0; j < formula.clauses[i].size(); j++) {
			printf("%d ", formula.clauses[i][j]);
		}
		printf("0\n");
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x34c0
movl -0x1c(%rbp), %esi
movq %rax, %rdx
leaq 0x1b4c6(%rip), %rdi     # 0x1e115
movb $0x0, %al
callq 0x2030
movq $0x0, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x34c0
movq %rax, %rcx
movq -0x28(%rbp), %rax
cmpq %rcx, %rax
jae 0x2d12
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
callq 0x3630
movq %rax, %rcx
movq -0x30(%rbp), %rax
cmpq %rcx, %rax
jae 0x2cf3
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x10(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
movq -0x18(%rbp), %rsi
callq 0x3650
movl (%rax), %esi
leaq 0x1b445(%rip), %rdi     # 0x1e123
movb $0x0, %al
callq 0x2030
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0x2c8b
leaq 0x1c214(%rip), %rdi     # 0x1ef0e
movb $0x0, %al
callq 0x2030
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
jmp 0x2c5e
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: biotomas[P]ipasir/app/genipalsp/genipalsp.cpp
// Function: recDFS(Graph const&, int, int)
int recDFS(const Graph&g, int vert, int goal) {
	//log("called dfs with %d\n", vert);
	if (vert == goal) {
		return 1;
	}
	visited[vert]=vert;
	int best = 0;
	for (size_t i = 0; i < g.neighbours[vert].size(); i++) {
		int nvert = g.neighbours[vert][i];
		if (!isVisited(nvert)) {
			int res = recDFS(g, nvert, goal);
			if (res > best) {
				best = res;
			}
		}
	}
	return best > 0 ? best+1 : 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x18(%rbp), %eax
jne 0x2d96
movl $0x1, -0x4(%rbp)
jmp 0x2e6e
movl -0x14(%rbp), %eax
movl %eax, -0x34(%rbp)
leaq 0x24405(%rip), %rdi     # 0x271a8
leaq -0x14(%rbp), %rsi
callq 0x3740
movl -0x34(%rbp), %ecx
movl %ecx, (%rax)
movl $0x0, -0x1c(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movslq -0x14(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
callq 0x3630
movq %rax, %rcx
movq -0x40(%rbp), %rax
cmpq %rcx, %rax
jae 0x2e50
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movslq -0x14(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
movq -0x28(%rbp), %rsi
callq 0x3650
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %edi
callq 0x2d20
testb $0x1, %al
jne 0x2e3d
movq -0x10(%rbp), %rdi
movl -0x2c(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x2d70
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jle 0x2e3b
movl -0x30(%rbp), %eax
movl %eax, -0x1c(%rbp)
jmp 0x2e3d
jmp 0x2e3f
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x2dc0
cmpl $0x0, -0x1c(%rbp)
jle 0x2e61
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
jmp 0x2e68
xorl %eax, %eax
movl %eax, -0x44(%rbp)
jmp 0x2e68
movl -0x44(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: biotomas[P]ipasir/app/genipalsp/genipalsp.cpp
// Function: getLowerUpperBound(Graph const&, int, int, int&, int&)
int getLowerUpperBound(const Graph& g, int start, int goal, int& lowBound, int& upBound) {
	visited.clear();
	lowBound = recDFS(g,start,goal);
	visited[goal] = goal; // because goal is not marked visited by DFS
	upBound = visited.size();
	return lowBound;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movq %r8, -0x20(%rbp)
leaq 0x24307(%rip), %rdi     # 0x271a8
callq 0x3820
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
movl -0x10(%rbp), %edx
callq 0x2d70
movl %eax, %ecx
movq -0x18(%rbp), %rax
movl %ecx, (%rax)
movl -0x10(%rbp), %eax
movl %eax, -0x24(%rbp)
leaq 0x242de(%rip), %rdi     # 0x271a8
leaq -0x10(%rbp), %rsi
callq 0x3740
movl -0x24(%rbp), %ecx
movl %ecx, (%rax)
leaq 0x242c9(%rip), %rdi     # 0x271a8
callq 0x3840
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rax
movl (%rax), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: biotomas[P]ipasir/app/genipalsp/genipalsp.cpp
// Function: addUniversalConditions(void*, Graph const&, int)
void addUniversalConditions(void* solver, const Graph&g, int step) {
	// at most one vertex has a particular position
	for (int v1 = 1; v1 <= g.verticesCount; v1++) {
		if (!isVisited(v1)) continue;
		for (int v2 = 1; v2 < v1; v2++) {
			if (!isVisited(v2)) continue;
			ipasir_add(solver, -mapVar(v1,step,g.verticesCount));
			ipasir_add(solver, -mapVar(v2,step,g.verticesCount));
			ipasir_add(solver, 0);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl $0x1, -0x18(%rbp)
movl -0x18(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl (%rcx), %eax
jg 0x3059
movl -0x18(%rbp), %edi
callq 0x2d20
testb $0x1, %al
jne 0x2fca
jmp 0x304b
movl $0x1, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x3049
movl -0x1c(%rbp), %edi
callq 0x2d20
testb $0x1, %al
jne 0x2fe7
jmp 0x303e
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
movl -0x18(%rbp), %edi
movl -0x14(%rbp), %esi
movq -0x10(%rbp), %rax
movl (%rax), %edx
callq 0x3860
movq -0x30(%rbp), %rdi
xorl %esi, %esi
subl %eax, %esi
callq 0x6550
movq -0x8(%rbp), %rax
movq %rax, -0x28(%rbp)
movl -0x1c(%rbp), %edi
movl -0x14(%rbp), %esi
movq -0x10(%rbp), %rax
movl (%rax), %edx
callq 0x3860
movq -0x28(%rbp), %rdi
xorl %esi, %esi
subl %eax, %esi
callq 0x6550
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x6550
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2fd1
jmp 0x304b
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x2faa
addq $0x30, %rsp
popq %rbp
retq
nop
// File: biotomas[P]ipasir/app/genipalsp/genipalsp.cpp
// Function: addTransitionalConditions(void*, Graph const&, int)
void addTransitionalConditions(void* solver, const Graph&g, int step) {
	int verts = g.verticesCount;
	for (int v1 = 1; v1 <= verts; v1++) {
		if (!isVisited(v1)) continue;
		// clauses expressing that successor of the node in a path is its neighbour
		ipasir_add(solver, -mapVar(v1,step-1,verts));
		for (size_t i = 0; i < g.neighbours[v1].size(); i++) {
			int v2 = g.neighbours[v1][i];
			ipasir_add(solver, mapVar(v2, step,verts));
		}
		ipasir_add(solver, 0);
		// the selected vertex is not used in any of the previous steps
		for (int prevStep=0; prevStep < step; prevStep++) {
			ipasir_add(solver, -mapVar(v1,step,verts));
			ipasir_add(solver, -mapVar(v1,prevStep,verts));
			ipasir_add(solver, 0);
		}
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x18(%rbp)
movl $0x1, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0x18(%rbp), %eax
jg 0x31d2
movl -0x1c(%rbp), %edi
callq 0x2d20
testb $0x1, %al
jne 0x30a0
jmp 0x31c4
movq -0x8(%rbp), %rax
movq %rax, -0x38(%rbp)
movl -0x1c(%rbp), %edi
movl -0x14(%rbp), %esi
subl $0x1, %esi
movl -0x18(%rbp), %edx
callq 0x3860
movq -0x38(%rbp), %rdi
xorl %esi, %esi
subl %eax, %esi
callq 0x6550
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movslq -0x1c(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
callq 0x3630
movq %rax, %rcx
movq -0x40(%rbp), %rax
cmpq %rcx, %rax
jae 0x314c
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movslq -0x1c(%rbp), %rsi
callq 0x3610
movq %rax, %rdi
movq -0x28(%rbp), %rsi
callq 0x3650
movl (%rax), %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x48(%rbp)
movl -0x2c(%rbp), %edi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x3860
movq -0x48(%rbp), %rdi
movl %eax, %esi
callq 0x6550
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x30ce
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x6550
movl $0x0, -0x30(%rbp)
movl -0x30(%rbp), %eax
cmpl -0x14(%rbp), %eax
jge 0x31c2
movq -0x8(%rbp), %rax
movq %rax, -0x58(%rbp)
movl -0x1c(%rbp), %edi
movl -0x14(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x3860
movq -0x58(%rbp), %rdi
xorl %esi, %esi
subl %eax, %esi
callq 0x6550
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
movl -0x1c(%rbp), %edi
movl -0x30(%rbp), %esi
movl -0x18(%rbp), %edx
callq 0x3860
movq -0x50(%rbp), %rdi
xorl %esi, %esi
subl %eax, %esi
callq 0x6550
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x6550
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
jmp 0x315e
jmp 0x31c4
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x3083
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: JameyWoo[P]re2graph/algorithms.cpp
// Function: parse_range(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
string parse_range(string str) {
    /**
     * ! 范围解析的函数
     * ! 可以解析出如A-Z, a-zA-Z0-9_- 这一类范围定义的字符
     * 以字符串形式返回
     */
    if (str.size() == 1) return str;
    string range;
    for (size_t i = 0; i < str.size(); ++i) {
        if (i + 1 < str.size() and str[i + 1] == '-') {  // 识别到一个范围
            for (auto x = str[i]; x <= str[i + 2]; ++x) {
                range += x;
            }
            i += 2;
        } else {
            range += str[i];
        }
    }
    return range;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rsi, -0x48(%rbp)
movq %rdi, %rax
movq -0x48(%rbp), %rdi
movq %rax, -0x40(%rbp)
movq %rax, %rcx
movq %rcx, -0x38(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
callq 0x3210
cmpq $0x1, %rax
jne 0x93b6
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdi
callq 0x3190
jmp 0x950e
movq -0x40(%rbp), %rdi
movb $0x0, -0x11(%rbp)
callq 0x3410
movq $0x0, -0x20(%rbp)
movq -0x48(%rbp), %rdi
movq -0x20(%rbp), %rax
movq %rax, -0x50(%rbp)
callq 0x3210
movq %rax, %rcx
movq -0x50(%rbp), %rax
cmpq %rcx, %rax
jae 0x94f9
movq -0x48(%rbp), %rdi
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
callq 0x3210
movq %rax, %rcx
movq -0x58(%rbp), %rax
cmpq %rcx, %rax
jae 0x94bf
movq -0x48(%rbp), %rdi
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x3550
movq %rax, -0x60(%rbp)
jmp 0x9427
movq -0x60(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
jne 0x94bf
movq -0x48(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x3550
movq %rax, -0x68(%rbp)
jmp 0x944a
movq -0x68(%rbp), %rax
movb (%rax), %al
movb %al, -0x2d(%rbp)
movq -0x48(%rbp), %rdi
movsbl -0x2d(%rbp), %eax
movl %eax, -0x74(%rbp)
movq -0x20(%rbp), %rsi
addq $0x2, %rsi
callq 0x3550
movq %rax, -0x70(%rbp)
jmp 0x9471
movl -0x74(%rbp), %eax
movq -0x70(%rbp), %rcx
movsbl (%rcx), %ecx
cmpl %ecx, %eax
jg 0x94b1
movq -0x40(%rbp), %rdi
movsbl -0x2d(%rbp), %esi
callq 0x31d0
jmp 0x948e
jmp 0x9490
movb -0x2d(%rbp), %al
addb $0x1, %al
movb %al, -0x2d(%rbp)
jmp 0x9453
movq -0x40(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
callq 0x31c0
jmp 0x951b
movq -0x20(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x20(%rbp)
jmp 0x94e6
movq -0x48(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x3550
movq %rax, -0x80(%rbp)
jmp 0x94d2
movq -0x40(%rbp), %rdi
movq -0x80(%rbp), %rax
movsbl (%rax), %esi
callq 0x31d0
jmp 0x94e4
jmp 0x94e6
jmp 0x94e8
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x93cb
movb $0x1, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0x950c
movq -0x40(%rbp), %rdi
callq 0x31c0
jmp 0x950e
movq -0x38(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0x34e0
nopw %cs:(%rax,%rax)
// File: 6851-2021[P]Cache-Oblivious-Data-Structures/static_search_trees/perf_co_sst.cpp
// Function: main
int main(){
    // I think it's better to first let the user specify the inputs,
    // then make 10 independent runs on the same inputs n and Q, and
    // measure the runtime of each separately. We need an average of
    // runtimes, not the total runtime - maybe I'm wrong about this?
    srand(10);
    chrono::steady_clock::time_point begin = chrono::steady_clock::now();
    int n, Q;
    cin >> n >> Q;
    test(n, Q);
    chrono::steady_clock::time_point end = chrono::steady_clock::now();
    cout << "Time difference = " << chrono::duration_cast<chrono::microseconds>(end - begin).count() << "[µs]" << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl $0xa, %edi
callq 0x10d0
callq 0x1140
movq %rax, -0x8(%rbp)
movq 0x393e(%rip), %rdi      # 0x8fe0
leaq -0xc(%rbp), %rsi
callq 0x1090
movq %rax, %rdi
leaq -0x10(%rbp), %rsi
callq 0x1090
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
callq 0x53d0
callq 0x1140
movq %rax, -0x18(%rbp)
movq 0x38fe(%rip), %rdi      # 0x8fd0
leaq 0xa72(%rip), %rsi       # 0x614b
callq 0x10e0
movq %rax, -0x30(%rbp)
leaq -0x18(%rbp), %rdi
leaq -0x8(%rbp), %rsi
callq 0x5770
movq %rax, -0x28(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x5740
movq %rax, -0x20(%rbp)
leaq -0x20(%rbp), %rdi
callq 0x57c0
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0x11c0
movq %rax, %rdi
leaq 0xa3f(%rip), %rsi       # 0x615e
callq 0x10e0
movq %rax, %rdi
movq 0x3892(%rip), %rsi      # 0x8fc0
callq 0x1120
xorl %eax, %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: brianbbsu[P]TCP-Ping/src/server.cpp
// Function: sigint_handler(int)
void sigint_handler(int sig)
{
    logger::log_error("\nShuting down server ...");
    shutdown(server_socket_fd, SHUT_RDWR);
    close(server_socket_fd);
    exit(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movl %edi, -0x4(%rbp)
leaq -0x29(%rbp), %rdi
movq %rdi, -0x48(%rbp)
callq 0x6670
movq -0x48(%rbp), %rdx
leaq 0xe124(%rip), %rsi      # 0x15027
leaq -0x28(%rbp), %rdi
callq 0x7d50
jmp 0x6f0e
leaq -0x28(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x149b0
jmp 0x6f1e
leaq -0x28(%rbp), %rdi
callq 0x6768
leaq -0x29(%rbp), %rdi
callq 0x63c0
movl 0x1958a(%rip), %edi     # 0x204c0
movl $0x2, %esi
callq 0x6500
movl 0x1957a(%rip), %edi     # 0x204c0
callq 0x6710
xorl %edi, %edi
callq 0x6450
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
jmp 0x6f75
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x38(%rbp)
movl %eax, -0x3c(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x6768
leaq -0x29(%rbp), %rdi
callq 0x63c0
movq -0x38(%rbp), %rdi
callq 0x6650
nopw (%rax,%rax)
// File: brianbbsu[P]TCP-Ping/src/server.cpp
// Function: print_help(boost::program_options::options_description)
void print_help(po::options_description desc){
    std::cout<<"Usage: ./server [--help] port\n\n";
    std::cout<<"TCP Ping - Server - Made by Po-Hsuan Su (b08902107)\n\n";
    std::cout<<"Positional Argument\n  port - Port to listen on\n\n";
    std::cout<<"Optional Arguments\n";
    std::cout<<desc<<std::endl;
    exit(0);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x10(%rbp)
movq %rdi, -0x8(%rbp)
movq 0x18c81(%rip), %rdi     # 0x1ffc8
leaq 0xdd64(%rip), %rsi      # 0x150b2
callq 0x6340
movq 0x18c6e(%rip), %rdi     # 0x1ffc8
leaq 0xdd71(%rip), %rsi      # 0x150d2
callq 0x6340
movq 0x18c5b(%rip), %rdi     # 0x1ffc8
leaq 0xdd94(%rip), %rsi      # 0x15108
callq 0x6340
movq 0x18c48(%rip), %rdi     # 0x1ffc8
leaq 0xddb2(%rip), %rsi      # 0x15139
callq 0x6340
movq -0x10(%rbp), %rsi
movq 0x18c31(%rip), %rdi     # 0x1ffc8
callq 0x60c0
movq %rax, %rdi
movq 0x18be2(%rip), %rsi     # 0x1ff88
callq 0x6390
xorl %edi, %edi
callq 0x6450
nopw %cs:(%rax,%rax)
// File: NFAcz[P]compareQC/main.cpp
// Function: getCmdOption(char**, char**, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
char* getCmdOption(char ** begin, char ** end, const std::string & option)
{
  char ** itr = std::find(begin, end, option);
  if (itr != end && ++itr != end)
  {
    return *itr;
  }
  return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0xa520
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq -0x18(%rbp), %rax
je 0x7be2
movq -0x28(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x28(%rbp)
cmpq -0x18(%rbp), %rax
je 0x7be2
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x7bea
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: NFAcz[P]compareQC/main.cpp
// Function: split(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, char)
std::vector<std::string> split(const std::string& s, char delimiter)
{
  std::vector<std::string> tokens;
  std::string token;
  std::istringstream tokenStream(s);

  while (std::getline(tokenStream, token, delimiter))
  {
    tokens.push_back(token);
  }

  return tokens;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1f0, %rsp            # imm = 0x1F0
movq %rdi, -0x1d8(%rbp)
movb %dl, %al
movq %rdi, %rcx
movq %rcx, -0x1d0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movb $0x0, -0x12(%rbp)
callq 0xa570
leaq -0x38(%rbp), %rdi
callq 0x74e0
movq -0x10(%rbp), %rsi
leaq -0x1b8(%rbp), %rdi
movl $0x8, %edx
callq 0x7620
jmp 0x7c92
jmp 0x7c94
movsbl -0x11(%rbp), %edx
leaq -0x1b8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x76c0
movq %rax, -0x1e0(%rbp)
jmp 0x7cb1
movq -0x1e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x7480
movb %al, -0x1e1(%rbp)
jmp 0x7ccf
movb -0x1e1(%rbp), %al
testb $0x1, %al
jne 0x7cdb
jmp 0x7d23
movq -0x1d8(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0xa590
jmp 0x7ced
jmp 0x7c94
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
jmp 0x7d44
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x1c0(%rbp)
movl %eax, -0x1c4(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x71d0
jmp 0x7d44
movb $0x1, -0x12(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x71d0
leaq -0x38(%rbp), %rdi
callq 0x7738
testb $0x1, -0x12(%rbp)
jne 0x7d67
jmp 0x7d5b
leaq -0x38(%rbp), %rdi
callq 0x7738
movq -0x1d8(%rbp), %rdi
callq 0xa600
jmp 0x7d77
movq -0x1d8(%rbp), %rdi
callq 0xa600
movq -0x1d0(%rbp), %rax
addq $0x1f0, %rsp            # imm = 0x1F0
popq %rbp
retq
movq -0x1c0(%rbp), %rdi
callq 0x7660
nopw %cs:(%rax,%rax)
// File: NFAcz[P]compareQC/main.cpp
// Function: loadFromTxt(char const*, int)
std::vector<float> loadFromTxt(const char *filename, const int jump){

    std:ifstream instream(filename);
    float Y;
    std::string line;
    std::vector<float> tmp;
    int counter = 0;
    int frms = 0;
    while(std::getline(instream, line)){
      if(counter%3==0){
        if(frms%jump==0){
        Y = float(strtof(line.c_str(),NULL));
        tmp.push_back(Y);
        }
        frms++;
      }
      counter++;
    }
    instream.close();

    FPS = 25.0;

    return tmp;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x290, %rsp            # imm = 0x290
movq %rdi, -0x278(%rbp)
movq %rdi, %rax
movq %rax, -0x270(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq -0x10(%rbp), %rsi
leaq -0x220(%rbp), %rdi
movl $0x8, %edx
callq 0x76b0
leaq -0x248(%rbp), %rdi
callq 0x74e0
movq -0x278(%rbp), %rdi
movb $0x0, -0x249(%rbp)
callq 0xa660
movl $0x0, -0x250(%rbp)
movl $0x0, -0x254(%rbp)
leaq -0x220(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x7070
movq %rax, -0x280(%rbp)
jmp 0x7e1b
movq -0x280(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
addq %rax, %rdi
callq 0x7480
movb %al, -0x281(%rbp)
jmp 0x7e39
movb -0x281(%rbp), %al
testb $0x1, %al
jne 0x7e48
jmp 0x7f03
movl -0x250(%rbp), %eax
movl $0x3, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
jne 0x7eef
movl -0x254(%rbp), %eax
cltd
idivl -0x14(%rbp)
cmpl $0x0, %edx
jne 0x7ee0
leaq -0x248(%rbp), %rdi
callq 0x7190
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x74c0
movq -0x278(%rbp), %rdi
movss %xmm0, -0x224(%rbp)
leaq -0x224(%rbp), %rsi
callq 0xa680
jmp 0x7ea3
jmp 0x7ee0
movq -0x278(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x260(%rbp)
movl %eax, -0x264(%rbp)
callq 0xa6f0
leaq -0x248(%rbp), %rdi
callq 0x7738
leaq -0x220(%rbp), %rdi
callq 0x70b0
jmp 0x7f65
movl -0x254(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x254(%rbp)
movl -0x250(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x250(%rbp)
jmp 0x7dff
leaq -0x220(%rbp), %rdi
callq 0x7080
jmp 0x7f11
movss 0x130eb(%rip), %xmm0    # 0x1b004
movss %xmm0, 0x21487(%rip)    # 0x293a8
movb $0x1, -0x249(%rbp)
testb $0x1, -0x249(%rbp)
jne 0x7f3d
movq -0x278(%rbp), %rdi
callq 0xa6f0
leaq -0x248(%rbp), %rdi
callq 0x7738
leaq -0x220(%rbp), %rdi
callq 0x70b0
movq -0x270(%rbp), %rax
addq $0x290, %rsp            # imm = 0x290
popq %rbp
retq
movq -0x260(%rbp), %rdi
callq 0x7660
nopw %cs:(%rax,%rax)
// File: yueww[P]TSR/yyThreadPool.c
// Function: threadpool_init
threadpool_t *threadpool_init(int threadNum,int queueMaxLen){
    threadpool_t *pThreadPool=(threadpool_t *)malloc(sizeof(threadpool_t));
    if(pThreadPool==NULL) return NULL;
    (pThreadPool->tasks).front=NULL;
    (pThreadPool->tasks).rear=NULL;
    pthread_mutex_init(&((pThreadPool->tasks).qmutex),NULL);
    pthread_cond_init(&((pThreadPool->tasks).not_full),NULL);
    (pThreadPool->tasks).max_len=queueMaxLen;
    (pThreadPool->tasks).qlen=0;
    (pThreadPool->tasks).has_tasks=(bsem *)malloc(sizeof(bsem));
    if((pThreadPool->tasks).has_tasks==NULL) return NULL;
    if(bsem_init((pThreadPool->tasks).has_tasks,0)!=0) return NULL;
    pThreadPool->work_threads=(pthread_t *)malloc(threadNum*sizeof(pthread_t));
    pThreadPool->num_alive_threads=threadNum;
    pThreadPool->num_running_threads=0;
    pthread_mutex_init(&(pThreadPool->tmutex),NULL);
    pthread_cond_init(&(pThreadPool->has_idle),NULL);
    keepAlive=1;
    for(int i=0;i<threadNum;i++){
        pthread_create(&((pThreadPool->work_threads)[i]),0,thread_work,(void *)pThreadPool);
    }
    return pThreadPool;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0xc(%rbp)
movl %esi, -0x10(%rbp)
movl $0xe0, %edi
callq 0x23a0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x2770
movq $0x0, -0x8(%rbp)
jmp 0x28ba
movq -0x18(%rbp), %rax
movq $0x0, (%rax)
movq -0x18(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x18(%rbp), %rdi
addq $0x10, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2450
movq -0x18(%rbp), %rdi
addq $0x38, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2380
movl -0x10(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x68(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x6c(%rax)
movl $0x60, %edi
callq 0x23a0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x70(%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x70(%rax)
jne 0x27eb
movq $0x0, -0x8(%rbp)
jmp 0x28ba
movq -0x18(%rbp), %rax
movq 0x70(%rax), %rdi
xorl %esi, %esi
callq 0x28d0
cmpl $0x0, %eax
je 0x280c
movq $0x0, -0x8(%rbp)
jmp 0x28ba
movslq -0xc(%rbp), %rdi
shlq $0x3, %rdi
callq 0x23a0
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x78(%rax)
movl -0xc(%rbp), %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x80(%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x84(%rax)
movq -0x18(%rbp), %rdi
addq $0x88, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2450
movq -0x18(%rbp), %rdi
addq $0xb0, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2380
movl $0x1, 0xca53(%rip)      # 0xf2c4
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x28b2
movq -0x18(%rbp), %rax
movq 0x78(%rax), %rdi
movslq -0x1c(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x18(%rbp), %rcx
xorl %eax, %eax
movl %eax, %esi
leaq 0x8e(%rip), %rdx        # 0x2930
callq 0x2520
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2878
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: yueww[P]TSR/yyThreadPool.c
// Function: bsem_init(bsem*, int)
int bsem_init(bsem *pBsem,int sem){
    if(sem<0||sem>1){
        printf("the binary sem only can be 1 or 0!\n");
        return -1;
    }
    pthread_mutex_init(&(pBsem->mut),NULL);
    pthread_cond_init(&(pBsem->con),NULL);
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jl 0x28eb
cmpl $0x1, -0x14(%rbp)
jle 0x2902
leaq 0x7712(%rip), %rdi      # 0xa004
movb $0x0, %al
callq 0x2040
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x2927
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2450
movq -0x10(%rbp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x2380
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
// File: yueww[P]TSR/yyThreadPool.c
// Function: bsem_wait(bsem*)
void bsem_wait(bsem *pBsem){
    pthread_mutex_lock(&(pBsem->mut));
    while(pBsem->sem==0) pthread_cond_wait(&(pBsem->con),&(pBsem->mut));
    pBsem->sem=0;
    pthread_mutex_unlock(&(pBsem->mut));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2440
movq -0x8(%rbp), %rax
cmpl $0x0, 0x58(%rax)
jne 0x2b32
movq -0x8(%rbp), %rdi
addq $0x28, %rdi
movq -0x8(%rbp), %rsi
callq 0x2480
jmp 0x2b15
movq -0x8(%rbp), %rax
movl $0x0, 0x58(%rax)
movq -0x8(%rbp), %rdi
callq 0x21f0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: yueww[P]TSR/yyThreadPool.c
// Function: bsem_post(bsem*)
void bsem_post(bsem *pBsem){
    pthread_mutex_lock(&(pBsem->mut));
    pBsem->sem=1;
    pthread_cond_signal(&(pBsem->con));
    pthread_mutex_unlock(&(pBsem->mut));
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x2440
movq -0x8(%rbp), %rax
movl $0x1, 0x58(%rax)
movq -0x8(%rbp), %rdi
addq $0x28, %rdi
callq 0x2030
movq -0x8(%rbp), %rdi
callq 0x21f0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: yueww[P]TSR/yyThreadPool.c
// Function: threadpool_add_task
int threadpool_add_task(threadpool_t *pThreadPool,void* (*func)(void *),void *args){
#ifdef LIMITTASK
    pthread_mutex_lock(&(pThreadPool->tmutex));
    while((pThreadPool->num_running_threads==pThreadPool->num_alive_threads)&&(pThreadPool->num_alive_threads!=0)) pthread_cond_wait(&(pThreadPool->has_idle),&(pThreadPool->tmutex));
    pthread_mutex_unlock(&(pThreadPool->tmutex));
#endif
    task *t=(task *)malloc(sizeof(task));
    if(t==NULL) return -1;
    t->func=func;
    t->args=args;
    t->next=NULL;
    pthread_mutex_lock(&((pThreadPool->tasks).qmutex));
    while((pThreadPool->tasks).qlen==(pThreadPool->tasks).max_len){
        pthread_cond_wait(&((pThreadPool->tasks).not_full),&((pThreadPool->tasks).qmutex));
    }
    if((pThreadPool->tasks).qlen==0){
        (pThreadPool->tasks).front=(pThreadPool->tasks).rear=t;
    }else{
        ((pThreadPool->tasks).rear)->next=t;
        (pThreadPool->tasks).rear=((pThreadPool->tasks).rear)->next;
    }
    (pThreadPool->tasks).qlen++;
    bsem_post((pThreadPool->tasks).has_tasks);
    pthread_mutex_unlock(&((pThreadPool->tasks).qmutex));
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl $0x18, %edi
callq 0x23a0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x2bc5
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x2c8d
movq -0x18(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x2440
movq -0x10(%rbp), %rax
movl 0x6c(%rax), %eax
movq -0x10(%rbp), %rcx
cmpl 0x68(%rcx), %eax
jne 0x2c1c
movq -0x10(%rbp), %rdi
addq $0x38, %rdi
movq -0x10(%rbp), %rsi
addq $0x10, %rsi
callq 0x2480
jmp 0x2bf5
movq -0x10(%rbp), %rax
cmpl $0x0, 0x6c(%rax)
jne 0x2c3b
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
jmp 0x2c5f
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movl 0x6c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x6c(%rax)
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rdi
callq 0x2b50
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x21f0
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: yueww[P]TSR/yyThreadPool.c
// Function: threadpool_destroy
void threadpool_destroy(threadpool_t *pThreadPool){
    keepAlive=0;
    while(pThreadPool->num_alive_threads!=0){
        bsem_post((pThreadPool->tasks).has_tasks);
        sleep(0.1);
    }
    task *t=(pThreadPool->tasks).front;
    while(t!=NULL){
        task *tmp=t;
        t=t->next;
        free(tmp);
    }
    free((pThreadPool->tasks).has_tasks);
    free(pThreadPool->work_threads);
    free(pThreadPool);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, 0xc60e(%rip)      # 0xf2c4
movq -0x8(%rbp), %rax
cmpl $0x0, 0x80(%rax)
je 0x2cd9
movq -0x8(%rbp), %rax
movq 0x70(%rax), %rdi
callq 0x2b50
xorl %edi, %edi
callq 0x21e0
jmp 0x2cb6
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x2d0a
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rdi
callq 0x2370
jmp 0x2ce4
movq -0x8(%rbp), %rax
movq 0x70(%rax), %rdi
callq 0x2370
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
callq 0x2370
movq -0x8(%rbp), %rdi
callq 0x2370
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: yueww[P]TSR/produceFlows.c
// Function: cleanup(void*)
void cleanup(void *arg){
    threadpool_t *pThreadPool=(threadpool_t *)arg;
    if((pThreadPool->tasks).qmutex.__data.__owner==syscall(SYS_gettid)){
        pthread_mutex_unlock(&((pThreadPool->tasks).qmutex));
    }
    if((((pThreadPool->tasks).has_tasks)->mut).__data.__owner==syscall(SYS_gettid)){
        pthread_mutex_unlock(&(((pThreadPool->tasks).has_tasks)->mut));
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movslq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
movl $0xba, %edi
movb $0x0, %al
callq 0x2060
movq %rax, %rcx
movq -0x18(%rbp), %rax
cmpq %rcx, %rax
jne 0x2da5
movq -0x10(%rbp), %rdi
addq $0x10, %rdi
callq 0x21f0
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rax
movslq 0x8(%rax), %rax
movq %rax, -0x20(%rbp)
movl $0xba, %edi
movb $0x0, %al
callq 0x2060
movq %rax, %rcx
movq -0x20(%rbp), %rax
cmpq %rcx, %rax
jne 0x2dda
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rdi
callq 0x21f0
addq $0x20, %rsp
popq %rbp
retq
// File: yueww[P]TSR/lsh.cpp
// Function: genAPara(int)
vector<double> genAPara(int dim){
    vector<double> aPara;
    int i;
    random_device rd;
    mt19937 gen(rd());
    normal_distribution<double> d(0,1);
    for(i=0;i<dim;i++){
        aPara.push_back(d(gen));
    }
    return aPara;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2780, %rsp           # imm = 0x2780
movq %rdi, -0x2770(%rbp)
movq %rdi, %rax
movq %rax, -0x2768(%rbp)
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movb $0x0, -0xd(%rbp)
callq 0x37c0
leaq -0x13a0(%rbp), %rdi
callq 0x3840
jmp 0x344a
leaq -0x13a0(%rbp), %rdi
callq 0x38e0
movl %eax, -0x2774(%rbp)
jmp 0x345e
movl -0x2774(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x2738(%rbp), %rdi
callq 0x3900
jmp 0x3476
leaq -0x2758(%rbp), %rdi
xorps %xmm0, %xmm0
movsd 0x6c38(%rip), %xmm1     # 0xa0c0
callq 0x3930
jmp 0x348f
movl $0x0, -0x14(%rbp)
movl -0x14(%rbp), %eax
cmpl -0xc(%rbp), %eax
jge 0x3525
leaq -0x2758(%rbp), %rdi
leaq -0x2738(%rbp), %rsi
callq 0x39b0
movsd %xmm0, -0x2780(%rbp)
jmp 0x34bf
movq -0x2770(%rbp), %rdi
movsd -0x2780(%rbp), %xmm0
movsd %xmm0, -0x2760(%rbp)
leaq -0x2760(%rbp), %rsi
callq 0x3980
jmp 0x34e4
jmp 0x34e6
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x3496
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x13a8(%rbp)
movl %eax, -0x13ac(%rbp)
jmp 0x3557
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x13a8(%rbp)
movl %eax, -0x13ac(%rbp)
leaq -0x13a0(%rbp), %rdi
callq 0x39e0
jmp 0x3557
movb $0x1, -0xd(%rbp)
leaq -0x13a0(%rbp), %rdi
callq 0x39e0
testb $0x1, -0xd(%rbp)
jne 0x3547
movq -0x2770(%rbp), %rdi
callq 0x37e0
movq -0x2768(%rbp), %rax
addq $0x2780, %rsp           # imm = 0x2780
popq %rbp
retq
movq -0x2770(%rbp), %rdi
callq 0x37e0
movq -0x13a8(%rbp), %rdi
callq 0x24e0
nop
// File: yueww[P]TSR/lsh.cpp
// Function: genBPara(double)
double genBPara(double w){
    random_device rd;
    mt19937 gen(rd());
    uniform_real_distribution<double> d(0,w);
    return d(gen);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x2750, %rsp           # imm = 0x2750
movsd %xmm0, -0x8(%rbp)
leaq -0x1390(%rbp), %rdi
movq %rdi, -0x2748(%rbp)
callq 0x3840
movq -0x2748(%rbp), %rdi
callq 0x38e0
movl %eax, -0x273c(%rbp)
jmp 0x35a7
movl -0x273c(%rbp), %eax
movl %eax, %eax
movl %eax, %esi
leaq -0x2718(%rbp), %rdi
callq 0x3900
jmp 0x35bf
movsd -0x8(%rbp), %xmm1
leaq -0x2738(%rbp), %rdi
xorps %xmm0, %xmm0
callq 0x3a10
jmp 0x35d5
leaq -0x2738(%rbp), %rdi
leaq -0x2718(%rbp), %rsi
callq 0x3a40
movsd %xmm0, -0x2750(%rbp)
jmp 0x35f2
leaq -0x1390(%rbp), %rdi
callq 0x39e0
movsd -0x2750(%rbp), %xmm0
addq $0x2750, %rsp           # imm = 0x2750
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2720(%rbp)
movl %eax, -0x2724(%rbp)
leaq -0x1390(%rbp), %rdi
callq 0x39e0
movq -0x2720(%rbp), %rdi
callq 0x24e0
nopl (%rax)