// File: /workspace/github_c_makefile_star2_O1/sasairc[P]yasuna/src/subset.c
// Function: parse_dict_file
int parse_dict_file(FILE* fp, polyaness_t** pt)
{
    int     i       = 0,
            status  = 0;

    if (parse_polyaness(fp, 0, pt) < 0) {
        status = -1; goto ERR;
    }

    /*
     * 1. polyaness dict
     * 2. plain dict
     */
    if (strcmp_lite("polyaness_dict",
                get_polyaness("filetype", 0, pt)) == 0) {
        /* release header */
        release_polyaness_cell(&(*(*pt)->record));

        /* shift record */
        i = 0;
        while (i < (*pt)->recs &&
                (*((*pt)->record + i) = *((*pt)->record + (i + 1))))
            i++;
        (*pt)->recs--;
    } else {
        if (plain_dict_to_polyaness(fp, pt) < 0) {
            status = -2; goto ERR;
        }
    }

    return 0;

ERR:
    switch (status) {
        case    -1:
            fprintf(stderr, "%s: parse_polyaness() failure\n",
                    PROGNAME);
            break;
        case    -2:
            fprintf(stderr, "%s: plain_dict_to_polyaness() failure\n",
                    PROGNAME);
            break;
    }

    return status;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq %rdi, %r14
xorl %esi, %esi
movq %rbx, %rdx
callq 0xa0b6
testl %eax, %eax
js 0xaa47
leaq 0x1cac(%rip), %rdi      # 0xc59e
xorl %esi, %esi
movq %rbx, %rdx
callq 0xa41b
leaq 0x1c8c(%rip), %rdi      # 0xc58f
movq %rax, %rsi
callq 0x6241
testl %eax, %eax
je 0xaa05
movq %rsp, %r15
movq $0x0, (%r15)
movq %r14, %rdi
callq 0x2270
movl $0x400, %esi            # imm = 0x400
movl $0x280, %edx            # imm = 0x280
movq %r15, %rdi
movq %r14, %rcx
callq 0x3d35
testl %eax, %eax
js 0xaa52
movl %eax, %ebp
movl $0x6, %edi
callq 0x20e0
testq %rax, %rax
je 0xaa4e
movw $0x65, 0x4(%rax)
movl $0x746f7571, (%rax)     # imm = 0x746F7571
movq (%rbx), %rdi
movslq (%rdi), %rcx
testq %rcx, %rcx
jle 0xa9fa
decq %rcx
movl $0x1, %esi
movl $0x1, %edx
movq 0x8(%rdi), %rdi
movq -0x8(%rdi,%rsi,8), %r8
movl %edx, (%r8)
movq (%rdi,%rcx,8), %rdi
movl %edx, (%rdi)
movq 0x8(%r8), %rdi
movq %rax, (%rdi)
movq (%rsp), %rdi
movq -0x8(%rdi,%rsi,8), %rdi
movq (%rbx), %r8
movq 0x8(%r8), %r8
movq -0x8(%r8,%rsi,8), %r8
movq 0x10(%r8), %r8
movq %rdi, (%r8)
movq (%rbx), %rdi
movq 0x8(%rdi), %rdi
movq (%rdi,%rcx,8), %rdi
movq 0x8(%rdi), %rdi
movq %rax, (%rdi)
movq (%rsp), %rdi
movq (%rdi,%rcx,8), %rdi
movq (%rbx), %r8
movq 0x8(%r8), %r8
movq (%r8,%rcx,8), %r8
movq 0x10(%r8), %r8
movq %rdi, (%r8)
cmpq %rcx, %rsi
jge 0xa9fa
movq (%rbx), %rdi
movslq (%rdi), %r8
leaq 0x1(%rsi), %r9
decq %rcx
cmpq %r8, %rsi
movq %r9, %rsi
jl 0xa97f
movq (%rsp), %rdi
callq 0x2190
jmp 0xaa38
movq (%rbx), %rax
movq 0x8(%rax), %rdi
callq 0xa5c6
xorl %eax, %eax
movq (%rbx), %rcx
movslq (%rcx), %rdx
cmpq %rdx, %rax
jge 0xaa33
movq 0x8(%rcx), %rcx
movq 0x8(%rcx,%rax,8), %rdx
movq %rdx, (%rcx,%rax,8)
incq %rax
testq %rdx, %rdx
jne 0xaa13
movq (%rbx), %rax
decl (%rax)
xorl %ebx, %ebx
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
jmp 0xaa69
testl %ebp, %ebp
jns 0xaa59
callq 0x2824
jmp 0xaa64
movq %rsp, %rdi
movq %rbx, %rsi
callq 0x27d0
movl $0xfffffffe, %ebx       # imm = 0xFFFFFFFE
movq 0x6578(%rip), %rax      # 0x10fe8
movq (%rax), %rdi
testb $0x1, %bl
je 0xaa81
leaq 0x1b28(%rip), %rsi      # 0xc5a7
jmp 0xaa88
leaq 0x1b3e(%rip), %rsi      # 0xc5c6
leaq 0x17a3(%rip), %rdx      # 0xc232
xorl %eax, %eax
callq 0x23f0
jmp 0xaa3a