// File: /workspace/github_cpp_makefile_star2_O1/ridgelab[P]Kmer-SSR/src/AtomicityChecker.cpp
// Function: AtomicityChecker::AtomicityChecker()
AtomicityChecker::AtomicityChecker()
{
	this->setUp();
	unordered_map<uint32_t, unordered_set<uint32_t>> default_factors( {
		{ 1, unordered_set<uint32_t>( {1} ) },
		{ 2, unordered_set<uint32_t>( {1,2} ) },
		{ 3, unordered_set<uint32_t>( {1,3} ) },
		{ 4, unordered_set<uint32_t>( {1,2,4} ) },
		{ 5, unordered_set<uint32_t>( {1,5} ) },
		{ 6, unordered_set<uint32_t>( {1,2,3,6} ) },
		{ 7, unordered_set<uint32_t>( {1,7} ) },
		{ 8, unordered_set<uint32_t>( {1,2,4,8} ) },
		{ 9, unordered_set<uint32_t>( {1,3,9} ) },
		{ 10, unordered_set<uint32_t>( {1,2,5,10} ) }
	} );
	this->initFactorsWithPreDefinedFactors(default_factors);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x5c0, %rsp            # imm = 0x5C0
movq %rdi, %rbx
callq 0x5c4c
leaq 0x38(%rsp), %rdx
movl $0x1, -0x4(%rdx)
leaq 0x31(%rsp), %rax
movq %rax, (%rsp)
leaq 0x2d0(%rsp), %rdi
leaq 0x34(%rsp), %rsi
leaq 0x33(%rsp), %r8
leaq 0x32(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x348(%rsp), %rdi
movl $0x1, -0x8(%rdi)
leaq 0x2d0(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x380(%rsp), %r14
movabsq $0x200000001, %r12      # imm = 0x200000001
leaq 0x58(%rsp), %rdx
movq %r12, -0x8(%rdx)
leaq 0x2e(%rsp), %rax
movq %rax, (%rsp)
leaq 0x298(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x30(%rsp), %r8
leaq 0x2f(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x388(%rsp), %rdi
movl $0x2, -0x8(%rdi)
leaq 0x298(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x3c0(%rsp), %r14
movabsq $0x300000001, %r15      # imm = 0x300000001
leaq 0x50(%rsp), %rdx
movq %r15, -0x8(%rdx)
leaq 0x2b(%rsp), %rax
movq %rax, (%rsp)
leaq 0x260(%rsp), %rdi
leaq 0x48(%rsp), %rsi
leaq 0x2d(%rsp), %r8
leaq 0x2c(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x3c8(%rsp), %rdi
movl $0x3, -0x8(%rdi)
leaq 0x260(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x400(%rsp), %r14
leaq 0x70(%rsp), %rdx
movq %r12, -0xc(%rdx)
movl $0x4, -0x4(%rdx)
leaq 0x28(%rsp), %rax
movq %rax, (%rsp)
leaq 0x228(%rsp), %rdi
leaq 0x64(%rsp), %rsi
leaq 0x2a(%rsp), %r8
leaq 0x29(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x408(%rsp), %rdi
movl $0x4, -0x8(%rdi)
leaq 0x228(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x440(%rsp), %r14
movabsq $0x500000001, %rax      # imm = 0x500000001
leaq 0x48(%rsp), %rdx
movq %rax, -0x8(%rdx)
leaq 0x25(%rsp), %rax
movq %rax, (%rsp)
leaq 0x1f0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
leaq 0x27(%rsp), %r8
leaq 0x26(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x448(%rsp), %rdi
movl $0x5, -0x8(%rdi)
leaq 0x1f0(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x480(%rsp), %r14
movaps 0x89a7(%rip), %xmm0     # 0xe160
leaq 0xa0(%rsp), %rdx
movups %xmm0, -0x10(%rdx)
leaq 0x22(%rsp), %rax
movq %rax, (%rsp)
leaq 0x1b8(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x24(%rsp), %r8
leaq 0x23(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x488(%rsp), %rdi
movl $0x6, -0x8(%rdi)
leaq 0x1b8(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x4c0(%rsp), %r14
movabsq $0x700000001, %rax      # imm = 0x700000001
leaq 0x40(%rsp), %rdx
movq %rax, -0x8(%rdx)
leaq 0x1f(%rsp), %rax
movq %rax, (%rsp)
leaq 0x180(%rsp), %rdi
leaq 0x38(%rsp), %rsi
leaq 0x21(%rsp), %r8
leaq 0x20(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x4c8(%rsp), %rdi
movl $0x7, -0x8(%rdi)
leaq 0x180(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x500(%rsp), %r14
movaps 0x88f2(%rip), %xmm0     # 0xe170
leaq 0x90(%rsp), %rdx
movups %xmm0, -0x10(%rdx)
leaq 0x1c(%rsp), %rax
movq %rax, (%rsp)
leaq 0x148(%rsp), %rdi
leaq 0x80(%rsp), %rsi
leaq 0x1e(%rsp), %r8
leaq 0x1d(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x508(%rsp), %rdi
movl $0x8, -0x8(%rdi)
leaq 0x148(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x540(%rsp), %r14
leaq 0x64(%rsp), %rdx
movq %r15, -0xc(%rdx)
movl $0x9, -0x4(%rdx)
leaq 0x19(%rsp), %rax
movq %rax, (%rsp)
leaq 0x110(%rsp), %rdi
leaq 0x58(%rsp), %rsi
leaq 0x1b(%rsp), %r8
leaq 0x1a(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x548(%rsp), %rdi
movl $0x9, -0x8(%rdi)
leaq 0x110(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
movaps 0x8848(%rip), %xmm0     # 0xe180
leaq 0x80(%rsp), %rdx
movups %xmm0, -0x10(%rdx)
leaq 0x16(%rsp), %rax
movq %rax, (%rsp)
leaq 0xd8(%rsp), %rdi
leaq 0x70(%rsp), %rsi
leaq 0x18(%rsp), %r8
leaq 0x17(%rsp), %r9
xorl %ecx, %ecx
callq 0x683c
leaq 0x588(%rsp), %rdi
movl $0xa, -0x8(%rdi)
leaq 0xd8(%rsp), %rdx
movq %rdx, %rsi
callq 0x6340
leaq 0x5c0(%rsp), %rdx
leaq 0x13(%rsp), %rax
movq %rax, (%rsp)
leaq 0x308(%rsp), %rdi
leaq 0x340(%rsp), %rsi
leaq 0x15(%rsp), %r8
leaq 0x14(%rsp), %r9
xorl %ecx, %ecx
callq 0x6bfc
movl $0x248, %r14d           # imm = 0x248
leaq (%rsp,%r14), %rdi
addq $0x340, %rdi            # imm = 0x340
callq 0x63b8
addq $-0x40, %r14
cmpq $-0x38, %r14
jne 0x59c2
leaq 0xd8(%rsp), %rdi
callq 0x63b8
leaq 0x110(%rsp), %rdi
callq 0x63b8
leaq 0x148(%rsp), %rdi
callq 0x63b8
leaq 0x180(%rsp), %rdi
callq 0x63b8
leaq 0x1b8(%rsp), %rdi
callq 0x63b8
leaq 0x1f0(%rsp), %rdi
callq 0x63b8
leaq 0x228(%rsp), %rdi
callq 0x63b8
leaq 0x260(%rsp), %rdi
callq 0x63b8
leaq 0x298(%rsp), %rdi
callq 0x63b8
leaq 0x2d0(%rsp), %rdi
callq 0x63b8
xorl %eax, %eax
leaq 0xa0(%rsp), %rdi
movq %rax, (%rdi)
leaq 0x308(%rsp), %rsi
movq 0x8(%rsi), %rcx
movq 0x18(%rsi), %rdx
movq %rcx, 0x8(%rdi)
movq %rax, 0x10(%rdi)
movq %rdx, 0x18(%rdi)
movups 0x20(%rsi), %xmm0
movups %xmm0, 0x20(%rdi)
movq %rax, 0x30(%rdi)
leaq 0x340(%rsp), %rdx
movq %rdi, (%rdx)
callq 0x6428
movq 0xb0(%rsp), %r14
testq %r14, %r14
je 0x5ac5
movl 0x8(%r14), %esi
leaq 0x10(%r14), %rdx
movq %rbx, %rdi
callq 0x622c
movq (%r14), %r14
jmp 0x5aab
leaq 0xa0(%rsp), %rdi
callq 0x6668
leaq 0x308(%rsp), %rdi
callq 0x6668
addq $0x5c0, %rsp            # imm = 0x5C0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x5c36
movq %rax, %rbx
movl $0x248, %r14d           # imm = 0x248
leaq (%rsp,%r14), %rdi
addq $0x340, %rdi            # imm = 0x340
callq 0x63b8
addq $-0x40, %r14
cmpq $-0x38, %r14
jne 0x5b00
leaq 0xd8(%rsp), %rdi
callq 0x63b8
movb $0x1, %bpl
jmp 0x5b31
movq %rax, %rbx
xorl %ebp, %ebp
leaq 0x580(%rsp), %r14
leaq 0x110(%rsp), %rdi
callq 0x63b8
jmp 0x5b4d
movq %rax, %rbx
xorl %ebp, %ebp
leaq 0x148(%rsp), %rdi
callq 0x63b8
jmp 0x5b61
movq %rax, %rbx
xorl %ebp, %ebp
leaq 0x180(%rsp), %rdi
callq 0x63b8
jmp 0x5b75
movq %rax, %rbx
xorl %ebp, %ebp
leaq 0x1b8(%rsp), %rdi
callq 0x63b8
leaq 0x1f0(%rsp), %rdi
callq 0x63b8
leaq 0x228(%rsp), %rdi
callq 0x63b8
leaq 0x260(%rsp), %rdi
callq 0x63b8
leaq 0x298(%rsp), %rdi
callq 0x63b8
leaq 0x2d0(%rsp), %rdi
callq 0x63b8
leaq 0x340(%rsp), %r15
cmpq %r14, %r15
sete %al
testb %bpl, %bpl
jne 0x5c43
testb %al, %al
jne 0x5c43
leaq -0x40(%r14), %r12
addq $-0x38, %r14
movq %r14, %rdi
callq 0x63b8
movq %r12, %r14
cmpq %r15, %r12
jne 0x5bda
jmp 0x5c43
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5b82
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5b8f
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5b9c
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5ba9
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5bb6
movq %rax, %rbx
leaq 0x340(%rsp), %r14
xorl %ebp, %ebp
jmp 0x5bc3
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x6668
leaq 0x308(%rsp), %rdi
callq 0x6668
movq %rbx, %rdi
callq 0x3540
nop