// File: /workspace/github_cpp_makefile_star2_O1/mshabbirhasan[P]ups-indel/src/ups_indel.cpp
// Function: executeUPSIndel(void*)
void * executeUPSIndel(void * threadIndex) {
    long chrNum;
    chrNum = (long) threadIndex;

    int flag = -999;
    string chr = "";

    if (chrNum >= 1 && chrNum <= 22) {
        chr = to_string(chrNum);
    } else if (chrNum == 23) {
        chr = "X";
    } else if (chrNum == 24) {
        chr = "Y";
    } else if (chrNum == 25) {
        chr = "MT";
    }

    string vcfFileName = input_file_base_name + "." + chr + ".vcf";

    if(fileExists(vcfFileName)){
        flag = genenateUPSCoordinate(reference_file_name,
        vcfFileName, output_file_name + "." + chr);

        if (flag) {
            exit(-1);
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %rdi, %rbx
leaq -0x78(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x98cf(%rip), %rdx      # 0x11248
leaq -0x88(%rbp), %rdi
movq %rdx, %rsi
callq 0x10022
testq %rbx, %rbx
setle %al
cmpq $0x17, %rbx
setge %cl
orb %al, %cl
jne 0x79f4
movl $0x1, %r14d
cmpq $0xa, %rbx
jb 0x7a3c
movl $0x4, %r14d
movabsq $0x346dc5d63886594b, %rsi # imm = 0x346DC5D63886594B
movq %rbx, %rcx
cmpq $0x63, %rcx
jbe 0x7a33
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0x7a39
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0x7a3c
movq %rcx, %rax
mulq %rsi
shrq $0xb, %rdx
addl $0x4, %r14d
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0x79bc
addl $-0x3, %r14d
jmp 0x7a3c
leaq -0x17(%rbx), %rax
cmpq $0x3, %rax
jae 0x7a83
leaq 0xa08f(%rip), %rdx      # 0x11a98
movslq (%rdx,%rax,4), %rcx
addq %rdx, %rcx
leaq 0xa091(%rip), %rax      # 0x11aa8
movq -0xb8(%rax,%rbx,8), %r8
leaq -0x88(%rbp), %rdi
movq 0x8(%rdi), %rdx
xorl %esi, %esi
callq 0x34d0
jmp 0x7a83
addl $-0x2, %r14d
jmp 0x7a3c
decl %r14d
movl %r14d, %esi
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
leaq -0x48(%rbp), %rdi
movl $0x2d, %edx
callq 0x33b0
leaq -0x48(%rbp), %r15
movq (%r15), %rdi
movl %r14d, %esi
movq %rbx, %rdx
callq 0xfe92
leaq -0x88(%rbp), %rdi
movq %r15, %rsi
callq 0x3400
movq (%r15), %rdi
cmpq %r13, %rdi
je 0x7a83
callq 0x32f0
leaq -0x98(%rbp), %r13
movq %r13, -0x10(%r13)
movq 0xe92b(%rip), %rsi      # 0x163c0
movq 0xe92c(%rip), %rdx      # 0x163c8
addq %rsi, %rdx
leaq -0xa8(%rbp), %rdi
callq 0xff88
leaq 0x96a5(%rip), %rsi      # 0x11157
leaq -0xa8(%rbp), %rdi
callq 0x3640
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
leaq -0xa8(%rbp), %rdi
callq 0x30f0
leaq -0x58(%rbp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x7af5
movups (%rcx), %xmm0
movups %xmm0, (%r15)
jmp 0x7b00
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
movq 0x8(%rax), %rdx
leaq -0x68(%rbp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x96ce(%rip), %rsi      # 0x111f0
callq 0x3640
leaq -0x38(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
jne 0x7b47
movups (%rcx), %xmm0
movups %xmm0, (%r14)
jmp 0x7b52
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x7b77
callq 0x32f0
movq -0xa8(%rbp), %rdi
cmpq %r13, %rdi
je 0x7b88
callq 0x32f0
movq -0x48(%rbp), %rdi
leaq 0x9b32(%rip), %rsi      # 0x116c5
callq 0x33c0
testq %rax, %rax
je 0x7ba5
movq %rax, %rdi
callq 0x3330
leaq -0xd8(%rbp), %r13
movq %r13, -0x10(%r13)
movq 0xe7c9(%rip), %rsi      # 0x16380
movq 0xe7ca(%rip), %rdx      # 0x16388
addq %rsi, %rdx
leaq -0xe8(%rbp), %rdi
callq 0xff88
leaq -0xb8(%rbp), %rax
movq %rax, -0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0xc8(%rbp), %rdi
callq 0xff88
leaq 0xe7ea(%rip), %rsi      # 0x163e0
leaq 0x955a(%rip), %rdx      # 0x11157
leaq -0x68(%rbp), %rdi
callq 0x8960
leaq -0x108(%rbp), %rdi
leaq -0x68(%rbp), %rsi
leaq -0x88(%rbp), %rdx
callq 0x8d0b
leaq -0xe8(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
leaq -0x108(%rbp), %rdx
callq 0x5182
leaq -0x108(%rbp), %rdi
callq 0x3688
leaq -0x68(%rbp), %rdi
callq 0x3688
leaq -0xc8(%rbp), %rdi
callq 0x3688
leaq -0xe8(%rbp), %rdi
callq 0x3688
movl $0xffffffff, %edi       # imm = 0xFFFFFFFF
callq 0x33e0
movq %rax, %rbx
leaq -0xf8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7c8b
callq 0x32f0
jmp 0x7c8b
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x7c9e
callq 0x32f0
jmp 0x7c9e
movq %rax, %rbx
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x7cbb
callq 0x32f0
jmp 0x7cbb
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
cmpq %r13, %rdi
je 0x7cd1
callq 0x32f0
jmp 0x7cd1
movq %rax, %rbx
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
jne 0x7d02
jmp 0x7d0e
movq %rax, %rbx
movq -0x68(%rbp), %rdi
cmpq %r15, %rdi
je 0x7cf6
callq 0x32f0
jmp 0x7cf6
jmp 0x7cf3
jmp 0x7d0b
movq %rax, %rbx
movq -0xa8(%rbp), %rdi
cmpq %r13, %rdi
je 0x7d0e
callq 0x32f0
jmp 0x7d0e
jmp 0x7d0b
movq %rax, %rbx
movq -0x88(%rbp), %rdi
cmpq %r12, %rdi
je 0x7d1f
callq 0x32f0
movq %rbx, %rdi
callq 0x35b0