// File: /workspace/github_cpp_makefile_star2_O2/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 0x56aa
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 0x62b0
leaq 0x348(%rsp), %rdi
movl $0x1, -0x8(%rdi)
leaq 0x2d0(%rsp), %rsi
callq 0x5c32
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 0x62b0
leaq 0x388(%rsp), %rdi
movl $0x2, -0x8(%rdi)
leaq 0x298(%rsp), %rsi
callq 0x5c32
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 0x62b0
leaq 0x3c8(%rsp), %rdi
movl $0x3, -0x8(%rdi)
leaq 0x260(%rsp), %rsi
callq 0x5c32
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 0x62b0
leaq 0x408(%rsp), %rdi
movl $0x4, -0x8(%rdi)
leaq 0x228(%rsp), %rsi
callq 0x5c32
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 0x62b0
leaq 0x448(%rsp), %rdi
movl $0x5, -0x8(%rdi)
leaq 0x1f0(%rsp), %rsi
callq 0x5c32
leaq 0x480(%rsp), %r14
movaps 0x6eee(%rip), %xmm0     # 0xc160
leaq 0xa0(%rsp), %rdx
movaps %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 0x62b0
leaq 0x488(%rsp), %rdi
movl $0x6, -0x8(%rdi)
leaq 0x1b8(%rsp), %rsi
callq 0x5c32
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 0x62b0
leaq 0x4c8(%rsp), %rdi
movl $0x7, -0x8(%rdi)
leaq 0x180(%rsp), %rsi
callq 0x5c32
leaq 0x500(%rsp), %r14
movaps 0x6e3f(%rip), %xmm0     # 0xc170
leaq 0x90(%rsp), %rdx
movaps %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 0x62b0
leaq 0x508(%rsp), %rdi
movl $0x8, -0x8(%rdi)
leaq 0x148(%rsp), %rsi
callq 0x5c32
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 0x62b0
leaq 0x548(%rsp), %rdi
movl $0x9, -0x8(%rdi)
leaq 0x110(%rsp), %rsi
callq 0x5c32
movaps 0x6d9b(%rip), %xmm0     # 0xc180
leaq 0x80(%rsp), %rdx
movaps %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 0x62b0
leaq 0x588(%rsp), %rdi
movl $0xa, -0x8(%rdi)
leaq 0xd8(%rsp), %rsi
callq 0x5c32
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 0x6618
movl $0x248, %r14d           # imm = 0x248
leaq (%rsp,%r14), %rdi
addq $0x340, %rdi            # imm = 0x340
callq 0x5cd0
addq $-0x40, %r14
cmpq $-0x38, %r14
jne 0x546c
leaq 0xd8(%rsp), %rdi
callq 0x5cd0
leaq 0x110(%rsp), %rdi
callq 0x5cd0
leaq 0x148(%rsp), %rdi
callq 0x5cd0
leaq 0x180(%rsp), %rdi
callq 0x5cd0
leaq 0x1b8(%rsp), %rdi
callq 0x5cd0
leaq 0x1f0(%rsp), %rdi
callq 0x5cd0
leaq 0x228(%rsp), %rdi
callq 0x5cd0
leaq 0x260(%rsp), %rdi
callq 0x5cd0
leaq 0x298(%rsp), %rdi
callq 0x5cd0
leaq 0x2d0(%rsp), %rdi
callq 0x5cd0
leaq 0xa0(%rsp), %rdi
leaq 0x308(%rsp), %rsi
callq 0x5d78
leaq 0xa0(%rsp), %rsi
movq %rbx, %rdi
callq 0x56ee
leaq 0xa0(%rsp), %rdi
callq 0x6044
leaq 0x308(%rsp), %rdi
callq 0x6044
addq $0x5c0, %rsp            # imm = 0x5C0
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
callq 0x6044
jmp 0x556c
movq %rax, %rbx
leaq 0x308(%rsp), %rdi
callq 0x6044
jmp 0x5679
movq %rax, %rbx
movl $0x248, %r14d           # imm = 0x248
leaq (%rsp,%r14), %rdi
addq $0x340, %rdi            # imm = 0x340
callq 0x5cd0
addq $-0x40, %r14
cmpq $-0x38, %r14
jne 0x5587
leaq 0xd8(%rsp), %rdi
callq 0x5cd0
movb $0x1, %bpl
jmp 0x55b8
movq %rax, %rbx
xorl %ebp, %ebp
leaq 0x580(%rsp), %r14
leaq 0x110(%rsp), %rdi
callq 0x5cd0
jmp 0x55d4
movq %rax, %rbx
xorl %ebp, %ebp
leaq 0x148(%rsp), %rdi
callq 0x5cd0
jmp 0x55e8
movq %rax, %rbx
xorl %ebp, %ebp
leaq 0x180(%rsp), %rdi
callq 0x5cd0
jmp 0x55fc
movq %rax, %rbx
xorl %ebp, %ebp
leaq 0x1b8(%rsp), %rdi
callq 0x5cd0
leaq 0x1f0(%rsp), %rdi
callq 0x5cd0
leaq 0x228(%rsp), %rdi
callq 0x5cd0
leaq 0x260(%rsp), %rdi
callq 0x5cd0
leaq 0x298(%rsp), %rdi
callq 0x5cd0
leaq 0x2d0(%rsp), %rdi
callq 0x5cd0
leaq 0x340(%rsp), %r15
cmpq %r14, %r15
sete %al
testb %bpl, %bpl
jne 0x5679
testb %al, %al
jne 0x5679
leaq -0x40(%r14), %r12
addq $-0x38, %r14
movq %r14, %rdi
callq 0x5cd0
movq %r12, %r14
cmpq %r15, %r12
jne 0x5661
movq %rbx, %rdi
callq 0x3550
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5609
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5616
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5623
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x5630
movq %rax, %rbx
xorl %ebp, %ebp
jmp 0x563d
movq %rax, %rbx
jmp 0x5679
nop