// File: /workspace/github_c_makefile_star2_O2/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 %r15
pushq %r14
pushq %rbx
subq $0x10, %rsp
movq %rsi, %rbx
movq %rdi, %r14
xorl %esi, %esi
movq %rbx, %rdx
callq 0x9225
testl %eax, %eax
js 0x9c3b
leaq 0x1a8f(%rip), %rdi      # 0xb582
xorl %esi, %esi
movq %rbx, %rdx
callq 0x95c7
leaq 0x1a6f(%rip), %rdi      # 0xb573
movq %rax, %rsi
callq 0x57c8
testl %eax, %eax
je 0x9bf8
leaq 0x8(%rsp), %r15
andq $0x0, (%r15)
movq %r14, %rdi
callq 0x2270
movl $0x400, %esi            # imm = 0x400
movl $0x280, %edx            # imm = 0x280
movq %r15, %rdi
movq %r14, %rcx
callq 0x36fc
testl %eax, %eax
js 0x9c61
pushq $0x6
popq %rdi
callq 0x20e0
testq %rax, %rax
je 0x9c94
movw $0x65, 0x4(%rax)
movl $0x746f7571, (%rax)     # imm = 0x746F7571
movq (%rbx), %rdi
movl (%rdi), %r8d
movslq %r8d, %rsi
xorl %ecx, %ecx
pushq $0x1
popq %rdx
movslq %r8d, %r8
cmpq %r8, %rcx
jge 0x9bec
cmpq %rsi, %rcx
jge 0x9bec
movq 0x8(%rdi), %rdi
movq (%rdi,%rcx,8), %r8
movl %edx, (%r8)
movq -0x8(%rdi,%rsi,8), %rdi
movl %edx, (%rdi)
movq 0x8(%r8), %rdi
movq %rax, (%rdi)
movq 0x8(%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)
movq (%rbx), %rdi
movq 0x8(%rdi), %rdi
movq -0x8(%rdi,%rsi,8), %rdi
movq 0x8(%rdi), %rdi
movq %rax, (%rdi)
movq 0x8(%rsp), %rdi
movq -0x8(%rdi,%rsi,8), %rdi
movq (%rbx), %r8
movq 0x8(%r8), %r8
movq -0x8(%r8,%rsi,8), %r8
decq %rsi
movq 0x10(%r8), %r8
movq %rdi, (%r8)
incq %rcx
movq (%rbx), %rdi
movl (%rdi), %r8d
jmp 0x9b6d
movq 0x8(%rsp), %rdi
callq 0x2190
jmp 0x9c2f
movq (%rbx), %rax
movq 0x8(%rax), %rdi
callq 0x9737
xorl %ecx, %ecx
movq (%rbx), %rax
movslq (%rax), %rdx
cmpq %rdx, %rcx
jge 0x9c2b
movq 0x8(%rax), %rax
movq 0x8(%rax,%rcx,8), %rdx
movq %rdx, (%rax,%rcx,8)
incq %rcx
testq %rdx, %rdx
jne 0x9c06
movq (%rbx), %rax
movl (%rax), %edx
decl %edx
movl %edx, (%rax)
xorl %eax, %eax
addq $0x10, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq 0x63a6(%rip), %rax      # 0xffe8
movq (%rax), %rdi
leaq 0x193f(%rip), %rsi      # 0xb58b
leaq 0x15c3(%rip), %rdx      # 0xb216
xorl %eax, %eax
callq 0x2400
pushq $-0x1
jmp 0x9cfa
movq 0x6380(%rip), %rax      # 0xffe8
movq (%rax), %rbx
callq 0x2340
movl (%rax), %edi
callq 0x2240
leaq 0x19bb(%rip), %rsi      # 0xb639
leaq 0x1591(%rip), %rdx      # 0xb216
movq %rbx, %rdi
movq %rax, %rcx
xorl %eax, %eax
callq 0x2400
jmp 0x9cd9
movq 0x634d(%rip), %rax      # 0xffe8
movq (%rax), %r14
callq 0x2340
movl (%rax), %edi
callq 0x2240
leaq 0x1920(%rip), %rsi      # 0xb5d1
leaq 0x155e(%rip), %rdx      # 0xb216
movq %r14, %rdi
movq %rax, %rcx
xorl %eax, %eax
callq 0x2400
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x9cd9
movq (%rbx), %rax
movl (%rax), %esi
callq 0x443f
movq 0x6308(%rip), %rax      # 0xffe8
movq (%rax), %rdi
leaq 0x18c0(%rip), %rsi      # 0xb5aa
leaq 0x1525(%rip), %rdx      # 0xb216
xorl %eax, %eax
callq 0x2400
pushq $-0x2
popq %rax
jmp 0x9c31