// File: /workspace/github_cpp_makefile_star2_O2/quiath[P]fast-atoi/main.cpp
// Function: generate_add(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>>>>&, int, int, bool)
void generate_add(std::vector<std::string>& v, int count, int length, bool digits_only)
{
    for (unsigned i = 0; i < count; ++i)
    {
        std::string s;
        for (unsigned j = 0; j < length; ++j)
        {
            s += '0' + (i + j * 7) % 10;
        }

        int mode = digits_only ? 0 : (i % 5);


        switch (mode)
        {
          case 0:
             v.push_back(s);
             break;
          case 1:
             v.push_back('-' + s);
             break;
          case 2:
              v.push_back('+' + s);
             break;
          case 3:
             v.push_back("    -" + s + ")))");
             break;
          case 4:
             v.push_back("    +" + s + ".12");
             break;
        }

    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movb $0x30, %r15b
movl %ecx, 0x1c(%rsp)
movl %edx, 0x20(%rsp)
movl %esi, 0x24(%rsp)
movq %rdi, 0x10(%rsp)
pushq $0xa
popq %r14
leaq 0x48(%rsp), %r12
xorl %ebp, %ebp
cmpl 0x24(%rsp), %ebp
je 0x2b11
leaq 0x58(%rsp), %rax
movl 0x20(%rsp), %r13d
movl %ebp, %ebx
movb %r15b, 0xf(%rsp)
movq %rax, 0x48(%rsp)
andq $0x0, 0x50(%rsp)
movb $0x0, 0x58(%rsp)
movl %ebx, %eax
xorl %edx, %edx
divl %r14d
subl $0x1, %r13d
jb 0x29f3
imull $0xa, %eax, %eax
movl %r15d, %ecx
subb %al, %cl
movsbl %cl, %esi
movq %r12, %rdi
callq 0x2170
addb $0x7, %r15b
addl $0x7, %ebx
jmp 0x29ca
movl %ebp, %eax
xorl %edx, %edx
pushq $0x5
popq %rcx
divl %ecx
cmpb $0x0, 0x1c(%rsp)
movl $0x0, %eax
leaq 0x25f7(%rip), %rcx      # 0x5004
cmovnel %eax, %edx
movslq (%rcx,%rdx,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x10(%rsp), %rdi
movq %r12, %rsi
callq 0x34f0
jmp 0x2afa
leaq 0x68(%rsp), %r15
leaq 0x26a5(%rip), %rsi      # 0x50dc
movq %r12, %rdx
movq %r15, %rdi
callq 0x3598
leaq 0x28(%rsp), %rbx
leaq 0x2694(%rip), %rdx      # 0x50e2
movq %r15, %rsi
movq %rbx, %rdi
callq 0x3579
movq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x3ec4
jmp 0x2ac5
leaq 0x28(%rsp), %rbx
movq %rbx, %rdi
pushq $0x2b
popq %rsi
movq %r12, %rdx
callq 0x351c
movq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x3ec4
jmp 0x2af2
leaq 0x68(%rsp), %r15
leaq 0x263c(%rip), %rsi      # 0x50d2
movq %r12, %rdx
movq %r15, %rdi
callq 0x3598
leaq 0x28(%rsp), %rbx
leaq 0x262b(%rip), %rdx      # 0x50d8
movq %r15, %rsi
movq %rbx, %rdi
callq 0x3579
movq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x3ec4
movq %rbx, %rdi
callq 0x20d0
movq %r15, %rdi
jmp 0x2af5
leaq 0x28(%rsp), %rbx
movq %rbx, %rdi
pushq $0x2d
popq %rsi
movq %r12, %rdx
callq 0x351c
movq 0x10(%rsp), %rdi
movq %rbx, %rsi
callq 0x3ec4
movq %rbx, %rdi
callq 0x20d0
movq %r12, %rdi
callq 0x20d0
movb 0xf(%rsp), %r15b
incl %ebp
incb %r15b
jmp 0x299f
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x2b29
jmp 0x2b5b
jmp 0x2b42
movq %rax, %rbx
jmp 0x2b4f
jmp 0x2b5b
jmp 0x2b5b
jmp 0x2b36
jmp 0x2b5b
leaq 0x28(%rsp), %rdi
movq %rax, %rbx
jmp 0x2b54
jmp 0x2b5b
leaq 0x28(%rsp), %rdi
movq %rax, %rbx
callq 0x20d0
leaq 0x68(%rsp), %rdi
callq 0x20d0
jmp 0x2b5e
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x20d0
movq %rbx, %rdi
callq 0x22a0