// File: /workspace/github_c_makefile_star2_O0/samtools[P]htslib/vcf.c
// Function: bcf_hdr_parse_line
bcf_hrec_t *bcf_hdr_parse_line(const bcf_hdr_t *h, const char *line, int *len)
{
    bcf_hrec_t *hrec = NULL;
    const char *p = line;
    if (p[0] != '#' || p[1] != '#') { *len = 0; return NULL; }
    p += 2;

    const char *q = p;
    while ( *q && *q!='=' && *q != '\n' ) q++;
    ptrdiff_t n = q-p;
    if ( *q!='=' || !n ) // wrong format
        goto malformed_line;

    hrec = (bcf_hrec_t*) calloc(1,sizeof(bcf_hrec_t));
    if (!hrec) { *len = -1; return NULL; }
    hrec->key = (char*) malloc(sizeof(char)*(n+1));
    if (!hrec->key) goto fail;
    memcpy(hrec->key,p,n);
    hrec->key[n] = 0;
    hrec->type = -1;

    p = ++q;
    if ( *p!='<' ) // generic field, e.g. ##samtoolsVersion=0.1.18-r579
    {
        while ( *q && *q!='\n' ) q++;
        hrec->value = (char*) malloc((q-p+1)*sizeof(char));
        if (!hrec->value) goto fail;
        memcpy(hrec->value, p, q-p);
        hrec->value[q-p] = 0;
        *len = q - line + (*q ? 1 : 0); // Skip \n but not \0
        return hrec;
    }

    // structured line, e.g.
    // ##INFO=<ID=PV1,Number=1,Type=Float,Description="P-value for baseQ bias">
    // ##PEDIGREE=<Name_0=G0-ID,Name_1=G1-ID,Name_3=GN-ID>
    int nopen = 1;
    while ( *q && *q!='\n' && nopen>0 )
    {
        p = ++q;
        while ( *q && *q==' ' ) { p++; q++; }
        // ^[A-Za-z_][0-9A-Za-z_.]*$
        if (p==q && *q && (isalpha_c(*q) || *q=='_'))
        {
            q++;
            while ( *q && (isalnum_c(*q) || *q=='_' || *q=='.') ) q++;
        }
        n = q-p;
        int m = 0;
        while ( *q && *q==' ' ) { q++; m++; }
        if ( *q!='=' || !n )
            goto malformed_line;

        if (bcf_hrec_add_key(hrec, p, q-p-m) < 0) goto fail;
        p = ++q;
        while ( *q && *q==' ' ) { p++; q++; }

        int quoted = 0;
        char ending = '\0';
        switch (*p) {
        case '"':
            quoted = 1;
            ending = '"';
            p++;
            break;
        case '[':
            quoted = 1;
            ending = ']';
            break;
        }
        if ( quoted ) q++;
        while ( *q && *q != '\n' )
        {
            if ( quoted ) { if ( *q==ending && !is_escaped(p,q) ) break; }
            else
            {
                if ( *q=='<' ) nopen++;
                if ( *q=='>' ) nopen--;
                if ( !nopen ) break;
                if ( *q==',' && nopen==1 ) break;
            }
            q++;
        }
        const char *r = q;
        if (quoted && ending == ']') {
            if (*q == ending) {
                r++;
                q++;
                quoted = 0;
            } else {
                char buffer[320];
                hts_log_error("Missing ']' in header line %s",
                              hts_strprint(buffer, sizeof(buffer), '"',
                                           line, q-line));
                goto fail;
            }
        }
        while ( r > p && r[-1] == ' ' ) r--;
        if (bcf_hrec_set_val(hrec, hrec->nkeys-1, p, r-p, quoted) < 0)
            goto fail;
        if ( quoted && *q==ending ) q++;
        if ( *q=='>' )
        {
            if (nopen) nopen--;     // this can happen with nested angle brackets <>
            q++;
        }
    }
    if ( nopen )
        hts_log_warning("Incomplete header line, trying to proceed anyway:\n\t[%s]\n\t[%d]",line,q[0]);

    // Skip to end of line
    int nonspace = 0;
    p = q;
    while ( *q && *q!='\n' ) { nonspace |= !isspace_c(*q); q++; }
    if (nonspace) {
        char buffer[320];
        hts_log_warning("Dropped trailing junk from header line '%s'",
                        hts_strprint(buffer, sizeof(buffer),
                                     '"', line, q - line));
    }

    *len = q - line + (*q ? 1 : 0);
    return hrec;

 fail:
    *len = -1;
    bcf_hrec_destroy(hrec);
    return NULL;

 malformed_line:
    {
        char buffer[320];
        while ( *q && *q!='\n' ) q++;  // Ensure *len includes full line
        hts_log_error("Could not parse the header line: %s",
                      hts_strprint(buffer, sizeof(buffer),
                                   '"', line, q - line));
        *len = q - line + (*q ? 1 : 0);
        bcf_hrec_destroy(hrec);
        return NULL;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x440, %rsp            # imm = 0x440
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x3bbf0
movq -0x30(%rbp), %rax
movsbl 0x1(%rax), %eax
cmpl $0x23, %eax
je 0x3bc07
movq -0x20(%rbp), %rax
movl $0x0, (%rax)
movq $0x0, -0x8(%rbp)
jmp 0x3c512
movq -0x30(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x431(%rbp)
je 0x3bc56
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x3d, %ecx
movb %al, -0x431(%rbp)
je 0x3bc56
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x431(%rbp)
movb -0x431(%rbp), %al
testb $0x1, %al
jne 0x3bc62
jmp 0x3bc70
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3bc1b
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x40(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
jne 0x3bc92
cmpq $0x0, -0x40(%rbp)
jne 0x3bc97
jmp 0x3c44f
movl $0x1, %edi
movl $0x30, %esi
callq 0x42e0
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x3bcc8
movq -0x20(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq $0x0, -0x8(%rbp)
jmp 0x3c512
movq -0x40(%rbp), %rdi
addq $0x1, %rdi
shlq $0x0, %rdi
callq 0x4670
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x3bcf4
jmp 0x3c42f
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x30(%rbp), %rsi
movq -0x40(%rbp), %rdx
callq 0x43b0
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq -0x40(%rbp), %rcx
movb $0x0, (%rax,%rcx)
movq -0x28(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3c, %eax
je 0x3be26
jmp 0x3bd45
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x432(%rbp)
je 0x3bd6c
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x432(%rbp)
movb -0x432(%rbp), %al
testb $0x1, %al
jne 0x3bd78
jmp 0x3bd86
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3bd45
movq -0x38(%rbp), %rdi
movq -0x30(%rbp), %rax
subq %rax, %rdi
addq $0x1, %rdi
shlq $0x0, %rdi
callq 0x4670
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x3bdb9
jmp 0x3c42f
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq -0x30(%rbp), %rax
subq %rax, %rdx
callq 0x43b0
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x38(%rbp), %rcx
movq -0x30(%rbp), %rdx
subq %rdx, %rcx
movb $0x0, (%rax,%rcx)
movq -0x38(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
movq -0x38(%rbp), %rcx
movsbl (%rcx), %esi
xorl %ecx, %ecx
movl $0x1, %edx
cmpl $0x0, %esi
cmovnel %edx, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3c512
movl $0x1, -0x44(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x433(%rbp)
je 0x3be62
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0xa, %ecx
movb %al, -0x433(%rbp)
je 0x3be62
cmpl $0x0, -0x44(%rbp)
setg %al
movb %al, -0x433(%rbp)
movb -0x433(%rbp), %al
testb $0x1, %al
jne 0x3be71
jmp 0x3c306
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x434(%rbp)
je 0x3bea8
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
sete %al
movb %al, -0x434(%rbp)
movb -0x434(%rbp), %al
testb $0x1, %al
jne 0x3beb4
jmp 0x3bece
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3be81
movq -0x30(%rbp), %rax
cmpq -0x38(%rbp), %rax
jne 0x3bf97
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x0, %eax
je 0x3bf97
movq -0x38(%rbp), %rax
movsbl (%rax), %edi
callq 0x3c520
cmpl $0x0, %eax
jne 0x3bf0d
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x5f, %eax
jne 0x3bf97
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x435(%rbp)
je 0x3bf7b
movq -0x38(%rbp), %rax
movsbl (%rax), %edi
callq 0x3c550
movl %eax, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x436(%rbp)
jne 0x3bf6f
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x5f, %ecx
movb %al, -0x436(%rbp)
je 0x3bf6f
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2e, %eax
sete %al
movb %al, -0x436(%rbp)
movb -0x436(%rbp), %al
movb %al, -0x435(%rbp)
movb -0x435(%rbp), %al
testb $0x1, %al
jne 0x3bf87
jmp 0x3bf95
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3bf19
jmp 0x3bf97
movq -0x38(%rbp), %rax
movq -0x30(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x40(%rbp)
movl $0x0, -0x48(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x437(%rbp)
je 0x3bfd4
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
sete %al
movb %al, -0x437(%rbp)
movb -0x437(%rbp), %al
testb $0x1, %al
jne 0x3bfe0
jmp 0x3bff7
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movl -0x48(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x48(%rbp)
jmp 0x3bfad
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
jne 0x3c00a
cmpq $0x0, -0x40(%rbp)
jne 0x3c00f
jmp 0x3c44f
movq -0x28(%rbp), %rdi
movq -0x30(%rbp), %rsi
movq -0x38(%rbp), %rdx
movq -0x30(%rbp), %rax
subq %rax, %rdx
movslq -0x48(%rbp), %rax
subq %rax, %rdx
callq 0x3b610
cmpl $0x0, %eax
jge 0x3c038
jmp 0x3c42f
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x438(%rbp)
je 0x3c06f
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x20, %eax
sete %al
movb %al, -0x438(%rbp)
movb -0x438(%rbp), %al
testb $0x1, %al
jne 0x3c07b
jmp 0x3c095
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3c048
movl $0x0, -0x4c(%rbp)
movb $0x0, -0x4d(%rbp)
movq -0x30(%rbp), %rax
movsbl (%rax), %eax
movl %eax, -0x43c(%rbp)
subl $0x22, %eax
je 0x3c0c1
jmp 0x3c0b4
movl -0x43c(%rbp), %eax
subl $0x5b, %eax
je 0x3c0da
jmp 0x3c0e5
movl $0x1, -0x4c(%rbp)
movb $0x22, -0x4d(%rbp)
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x3c0e5
movl $0x1, -0x4c(%rbp)
movb $0x5d, -0x4d(%rbp)
cmpl $0x0, -0x4c(%rbp)
je 0x3c0f7
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3c0f9
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x43d(%rbp)
je 0x3c120
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x43d(%rbp)
movb -0x43d(%rbp), %al
testb $0x1, %al
jne 0x3c12f
jmp 0x3c1b3
cmpl $0x0, -0x4c(%rbp)
je 0x3c15a
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
movsbl -0x4d(%rbp), %ecx
cmpl %ecx, %eax
jne 0x3c158
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x3c580
cmpl $0x0, %eax
jne 0x3c158
jmp 0x3c1b3
jmp 0x3c1a2
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3c, %eax
jne 0x3c16f
movl -0x44(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x44(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x3c184
movl -0x44(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
jne 0x3c18c
jmp 0x3c1b3
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2c, %eax
jne 0x3c1a0
cmpl $0x1, -0x44(%rbp)
jne 0x3c1a0
jmp 0x3c1b3
jmp 0x3c1a2
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3c0f9
movq -0x38(%rbp), %rax
movq %rax, -0x58(%rbp)
cmpl $0x0, -0x4c(%rbp)
je 0x3c247
movsbl -0x4d(%rbp), %eax
cmpl $0x5d, %eax
jne 0x3c247
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
movsbl -0x4d(%rbp), %ecx
cmpl %ecx, %eax
jne 0x3c1fe
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movl $0x0, -0x4c(%rbp)
jmp 0x3c245
leaq -0x1a0(%rbp), %rdi
movq -0x18(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x18(%rbp), %rax
subq %rax, %r8
movl $0x140, %esi            # imm = 0x140
movl $0x22, %edx
callq 0x38530
movq %rax, %rcx
movl $0x1, %edi
leaq 0xcb470(%rip), %rsi     # 0x1076a2
leaq 0xcb47c(%rip), %rdx     # 0x1076b5
movb $0x0, %al
callq 0x9d90
jmp 0x3c42f
jmp 0x3c247
jmp 0x3c249
movq -0x58(%rbp), %rcx
xorl %eax, %eax
cmpq -0x30(%rbp), %rcx
movb %al, -0x43e(%rbp)
jbe 0x3c26f
movq -0x58(%rbp), %rax
movsbl -0x1(%rax), %eax
cmpl $0x20, %eax
sete %al
movb %al, -0x43e(%rbp)
movb -0x43e(%rbp), %al
testb $0x1, %al
jne 0x3c27b
jmp 0x3c289
movq -0x58(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x3c249
movq -0x28(%rbp), %rdi
movq -0x28(%rbp), %rax
movl 0x18(%rax), %esi
subl $0x1, %esi
movq -0x30(%rbp), %rdx
movq -0x58(%rbp), %rcx
movq -0x30(%rbp), %rax
subq %rax, %rcx
movl -0x4c(%rbp), %r8d
callq 0x3b790
cmpl $0x0, %eax
jge 0x3c2b9
jmp 0x3c42f
cmpl $0x0, -0x4c(%rbp)
je 0x3c2da
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
movsbl -0x4d(%rbp), %ecx
cmpl %ecx, %eax
jne 0x3c2da
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3e, %eax
jne 0x3c301
cmpl $0x0, -0x44(%rbp)
je 0x3c2f5
movl -0x44(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x44(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3be2d
cmpl $0x0, -0x44(%rbp)
je 0x3c332
movq -0x18(%rbp), %rcx
movq -0x38(%rbp), %rax
movsbl (%rax), %r8d
movl $0x3, %edi
leaq 0xcb37e(%rip), %rsi     # 0x1076a2
leaq 0xcb3a8(%rip), %rdx     # 0x1076d3
movb $0x0, %al
callq 0x9d90
movl $0x0, -0x1a4(%rbp)
movq -0x38(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x43f(%rbp)
je 0x3c36b
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x43f(%rbp)
movb -0x43f(%rbp), %al
testb $0x1, %al
jne 0x3c377
jmp 0x3c3aa
movq -0x38(%rbp), %rax
movsbl (%rax), %edi
callq 0x3c5e0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
orl -0x1a4(%rbp), %eax
movl %eax, -0x1a4(%rbp)
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3c344
cmpl $0x0, -0x1a4(%rbp)
je 0x3c3f5
leaq -0x2f0(%rbp), %rdi
movq -0x18(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x18(%rbp), %rax
subq %rax, %r8
movl $0x140, %esi            # imm = 0x140
movl $0x22, %edx
callq 0x38530
movq %rax, %rcx
movl $0x3, %edi
leaq 0xcb2bb(%rip), %rsi     # 0x1076a2
leaq 0xcb323(%rip), %rdx     # 0x107711
movb $0x0, %al
callq 0x9d90
movq -0x38(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
movq -0x38(%rbp), %rcx
movsbl (%rcx), %esi
xorl %ecx, %ecx
movl $0x1, %edx
cmpl $0x0, %esi
cmovnel %edx, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x3c512
movq -0x20(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x28(%rbp), %rdi
callq 0x3b040
movq $0x0, -0x8(%rbp)
jmp 0x3c512
jmp 0x3c451
movq -0x38(%rbp), %rax
movsbl (%rax), %ecx
xorl %eax, %eax
cmpl $0x0, %ecx
movb %al, -0x440(%rbp)
je 0x3c478
movq -0x38(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
setne %al
movb %al, -0x440(%rbp)
movb -0x440(%rbp), %al
testb $0x1, %al
jne 0x3c484
jmp 0x3c492
movq -0x38(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x38(%rbp)
jmp 0x3c451
leaq -0x430(%rbp), %rdi
movq -0x18(%rbp), %rcx
movq -0x38(%rbp), %r8
movq -0x18(%rbp), %rax
subq %rax, %r8
movl $0x140, %esi            # imm = 0x140
movl $0x22, %edx
callq 0x38530
movq %rax, %rcx
movl $0x1, %edi
leaq 0xcb1dc(%rip), %rsi     # 0x1076a2
leaq 0xcb270(%rip), %rdx     # 0x10773d
movb $0x0, %al
callq 0x9d90
movq -0x38(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
movq -0x38(%rbp), %rcx
movsbl (%rcx), %esi
xorl %ecx, %ecx
movl $0x1, %edx
cmpl $0x0, %esi
cmovnel %edx, %ecx
movslq %ecx, %rcx
addq %rcx, %rax
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, (%rax)
movq -0x28(%rbp), %rdi
callq 0x3b040
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x440, %rsp            # imm = 0x440
popq %rbp
retq
nop