// File: /workspace/github_c_makefile_star2_O1/videolan[P]bitstream/examples/dvb_print_si.c
// Function: main
int main(int i_argc, char **ppsz_argv)
{
    int i, c;
    char *psz_tables = NULL;

    static const struct option long_options[] = {
        { "print",           required_argument, NULL, 'x' },
        { "help",            no_argument,       NULL, 'h' },
        { "version",         no_argument,       NULL, 'V' },
        { "tables",          no_argument,       NULL, 'T' },
        { 0, 0, 0, 0 }
    };

    while ((c = getopt_long(i_argc, ppsz_argv, "x:hVT:", long_options, NULL)) != -1)
    {
        switch (c) {
        case 'x':
            if (!strcmp(optarg, "text"))
                i_print_type = PRINT_TEXT;
            else if (!strcmp(optarg, "xml"))
                i_print_type = PRINT_XML;
            else
                fprintf(stderr, "unrecognized print type %s\n", optarg);
            break;

        case 'T':
            psz_tables = strdup(optarg);
            break;

        case 'V':
            fprintf(stderr, "biTStream %d.%d.%d\n", BITSTREAM_VERSION_MAJOR,
                    BITSTREAM_VERSION_MINOR, BITSTREAM_VERSION_REVISION);
            exit(0);
            break;


        case 'h':
        default:
            usage(ppsz_argv[0]);
        }
    }
    if (optind < i_argc)
        usage(ppsz_argv[0]);

    setvbuf(stdout, NULL, _IOLBF, 0);

    memset(p_pids, 0, sizeof(p_pids));

    for (i = 0; i < 8192; i++) {
        p_pids[i].i_last_cc = -1;
        psi_assemble_init(&p_pids[i].p_psi_buffer,
                          &p_pids[i].i_psi_buffer_used);
    }

    p_pids[PAT_PID].i_psi_refcount++;
    p_pids[CAT_PID].i_psi_refcount++;
    p_pids[TSDT_PID].i_psi_refcount++;
    p_pids[NIT_PID].i_psi_refcount++;
    p_pids[BAT_PID].i_psi_refcount++;
    p_pids[SDT_PID].i_psi_refcount++;
    p_pids[EIT_PID].i_psi_refcount++;
    p_pids[TDT_PID].i_psi_refcount++;
    p_pids[RST_PID].i_psi_refcount++;
    p_pids[DIT_PID].i_psi_refcount++;
    p_pids[SIT_PID].i_psi_refcount++;

    psi_table_init(pp_current_pat_sections);
    psi_table_init(pp_next_pat_sections);
    psi_table_init(pp_current_cat_sections);
    psi_table_init(pp_next_cat_sections);
    psi_table_init(pp_current_tsdt_sections);
    psi_table_init(pp_next_tsdt_sections);
    psi_table_init(pp_current_nit_sections);
    psi_table_init(pp_next_nit_sections);
    psi_table_init(pp_current_sdt_sections);
    psi_table_init(pp_next_sdt_sections);

    if (psz_tables != NULL) {
        char *psz_table = psz_tables;
        for (i = 0; i < TABLE_END; i++)
            pb_print_table[i] = false;

        do {
            char *psz_next = strpbrk(psz_table, ",");
            if (psz_next != NULL) *psz_next++ = '\0';

            for (i = 0; i < TABLE_END; i++)
                if (!strcasecmp(psz_table, ppsz_all_tables[i]))
                    pb_print_table[i] = true;

            psz_table = psz_next;
        } while (psz_table != NULL);

        free(psz_tables);
    } else
        for (i = 0; i < TABLE_END; i++)
            pb_print_table[i] = true;

    switch (i_print_type) {
    case PRINT_XML:
        printf("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n");
        printf("<TS>\n");
        break;
    default:
        break;
    }

    bool b_is_last_invalid = false;
    while (!feof(stdin) && !ferror(stdin)) {
        uint8_t p_ts[TS_SIZE];
        size_t i_ret = fread(p_ts, sizeof(p_ts), 1, stdin);
        if (i_ret != 1) continue;
        if (!ts_validate(p_ts)) {
            if (!b_is_last_invalid) {
                switch (i_print_type) {
                case PRINT_XML:
                    printf("<ERROR type=\"invalid_ts\"/>\n");
                    break;
                default:
                    printf("invalid TS packet\n");
                }
                b_is_last_invalid = true;
            }

            int i;
            for (i = 1; i < TS_SIZE; i++) {
                if (ts_validate(p_ts + i)) {
                    memmove(p_ts, p_ts + i, TS_SIZE - i);
                    i_ret = fread(p_ts + TS_SIZE - i, i, 1, stdin);
                    if (i_ret != 1) continue;
                    break;
                }
            }
            if (i == TS_SIZE)
                continue;
        }

        uint16_t i_pid = ts_get_pid(p_ts);
        ts_pid_t *p_pid = &p_pids[i_pid];
        if (p_pid->i_psi_refcount)
            handle_psi_packet(p_ts);
        p_pid->i_last_cc = ts_get_cc(p_ts);
        b_is_last_invalid = false;
    }

    switch (i_print_type) {
    case PRINT_XML:
        printf("</TS>\n");
        break;
    default:
        break;
    }

    if (iconv_handle != (iconv_t)-1)
        iconv_close(iconv_handle);

    psi_table_free(pp_current_pat_sections);
    psi_table_free(pp_next_pat_sections);
    psi_table_free(pp_current_cat_sections);
    psi_table_free(pp_next_cat_sections);
    psi_table_free(pp_current_tsdt_sections);
    psi_table_free(pp_next_tsdt_sections);
    psi_table_free(pp_current_nit_sections);
    psi_table_free(pp_next_nit_sections);
    psi_table_free(pp_current_sdt_sections);
    psi_table_free(pp_next_sdt_sections);

    for (i = 0; i < i_nb_bouquets; i++) {
        psi_table_free(pp_bouquets[i]->pp_current_bat_sections);
        psi_table_free(pp_bouquets[i]->pp_next_bat_sections);
        free(pp_bouquets[i]);
    }
    free(pp_bouquets);

    for (i = 0; i < i_nb_sids; i++) {
        psi_table_free(pp_sids[i]->pp_eit_sections);
        free(pp_sids[i]->p_current_pmt);
        free(pp_sids[i]);
    }
    free(pp_sids);

    for (i = 0; i < 8192; i++)
        psi_assemble_reset(&p_pids[i].p_psi_buffer,
                           &p_pids[i].i_psi_buffer_used);

    return EXIT_SUCCESS;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rsi, %rbx
movl %edi, %ebp
leaq 0xf659(%rip), %r15      # 0x12a22
leaq 0x1a2b0(%rip), %r12     # 0x1d680
movq 0x1abf9(%rip), %r13     # 0x1dfd0
movq $0x0, 0x8(%rsp)
movl %ebp, %edi
movq %rbx, %rsi
movq %r15, %rdx
movq %r12, %rcx
xorl %r8d, %r8d
callq 0x30b0
cmpl $0x78, %eax
jne 0x3434
movq (%r13), %r14
movq %r14, %rdi
leaq 0x13854(%rip), %rsi     # 0x16c5a
callq 0x3120
testl %eax, %eax
je 0x342b
movq %r14, %rdi
leaq 0xf610(%rip), %rsi      # 0x12a29
callq 0x3120
testl %eax, %eax
jne 0x3452
movb $0x1, 0x1ad17(%rip)     # 0x1e140
jmp 0x33e0
movb $0x0, 0x1ad0e(%rip)     # 0x1e140
jmp 0x33e0
cmpl $-0x1, %eax
je 0x3472
cmpl $0x54, %eax
jne 0x3cad
movq (%r13), %rdi
callq 0x3200
movq %rax, 0x8(%rsp)
jmp 0x33e0
movq 0x1ab97(%rip), %rax     # 0x1dff0
movq (%rax), %rdi
leaq 0xf5ca(%rip), %rsi      # 0x12a2d
movq %r14, %rdx
xorl %eax, %eax
callq 0x3130
jmp 0x33e0
movq 0x1ab4f(%rip), %rax     # 0x1dfc8
cmpl %ebp, (%rax)
jl 0x3cbf
movq 0x1ab30(%rip), %rax     # 0x1dfb8
movq (%rax), %rdi
xorl %esi, %esi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x31c0
leaq 0x1acb0(%rip), %rbx     # 0x1e150
movl $0x30000, %edx          # imm = 0x30000
movq %rbx, %rdi
xorl %esi, %esi
callq 0x3110
movl $0x10, %eax
movb $-0x1, -0xc(%rax,%rbx)
movq $0x0, -0x8(%rax,%rbx)
movw $0x0, (%rax,%rbx)
addq $0x18, %rax
cmpq $0x30010, %rax          # imm = 0x30010
jne 0x34b4
incl 0x1ac76(%rip)           # 0x1e150
incl 0x1ac88(%rip)           # 0x1e168
incl 0x1ac9a(%rip)           # 0x1e180
incl 0x1ade4(%rip)           # 0x1e2d0
addl $0x2, 0x1adf5(%rip)     # 0x1e2e8
incl 0x1ae07(%rip)           # 0x1e300
incl 0x1ae31(%rip)           # 0x1e330
incl 0x1ae13(%rip)           # 0x1e318
incl 0x1af15(%rip)           # 0x1e420
incl 0x1af27(%rip)           # 0x1e438
leaq 0x4ac38(%rip), %rdi     # 0x4e150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
leaq 0x4b425(%rip), %rdi     # 0x4e950
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
leaq 0x4bc12(%rip), %rdi     # 0x4f150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
leaq 0x4c3ff(%rip), %rdi     # 0x4f950
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
leaq 0x4cbec(%rip), %rdi     # 0x50150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
leaq 0x4d3d9(%rip), %rbp     # 0x50950
movl $0x800, %edx            # imm = 0x800
movq %rbp, %rdi
xorl %esi, %esi
callq 0x3110
leaq 0x4dbc3(%rip), %rdi     # 0x51150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
leaq 0x4e3b0(%rip), %rdi     # 0x51950
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
leaq 0x4eb9d(%rip), %rdi     # 0x52150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
leaq 0x4f38a(%rip), %rdi     # 0x52950
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x3110
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x3663
xorl %eax, %eax
movq %rax, 0x4fb6e(%rip)     # 0x53157
movq %rax, 0x4fb60(%rip)     # 0x53150
leaq 0xef0d(%rip), %r15      # 0x12504
leaq 0x4fb52(%rip), %r12     # 0x53150
movq %r14, %rdi
movl $0x2c, %esi
callq 0x30c0
testq %rax, %rax
je 0x361b
movq %rax, %r13
incq %r13
movb $0x0, (%rax)
jmp 0x361e
xorl %r13d, %r13d
movq %r15, %rbp
xorl %ebx, %ebx
movslq (%rbp), %rsi
addq %r15, %rsi
movq %r14, %rdi
callq 0x3040
testl %eax, %eax
jne 0x363b
movb $0x1, (%rbx,%r12)
incq %rbx
addq $0x4, %rbp
cmpq $0xf, %rbx
jne 0x3623
movq %r13, %r14
testq %r13, %r13
leaq 0x4d2fb(%rip), %rbp     # 0x50950
jne 0x35fe
movq 0x8(%rsp), %rdi
callq 0x3030
jmp 0x367b
movabsq $0x101010101010101, %rax # imm = 0x101010101010101
movq %rax, 0x4fae3(%rip)     # 0x53157
movq %rax, 0x4fad5(%rip)     # 0x53150
cmpb $0x1, 0x1aabe(%rip)     # 0x1e140
jne 0x369c
leaq 0x17918(%rip), %rdi     # 0x1afa3
callq 0x3070
leaq 0x17933(%rip), %rdi     # 0x1afca
callq 0x3070
movq 0x1a91d(%rip), %rbx     # 0x1dfc0
movq (%rbx), %rdi
callq 0x3140
testl %eax, %eax
jne 0x3a45
xorl %r12d, %r12d
leaq 0x10(%rsp), %r13
movq (%rbx), %r14
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
jne 0x3a45
movl $0xbc, %esi
movl $0x1, %edx
movq %r13, %rdi
movq %r14, %rcx
callq 0x3090
cmpq $0x1, %rax
jne 0x3a35
cmpb $0x47, 0x10(%rsp)
je 0x377f
testb $0x1, %r12b
jne 0x371f
cmpb $0x0, 0x1aa3b(%rip)     # 0x1e140
leaq 0x178c3(%rip), %rdi     # 0x1afcf
leaq 0x178ce(%rip), %rax     # 0x1afe1
cmovneq %rax, %rdi
callq 0x3070
movb $0x1, %r12b
movl $0x1, %r14d
movl $0xbb, %r15d
cmpb $0x47, 0x10(%rsp,%r14)
jne 0x3764
leaq (%rsp,%r14), %rsi
addq $0x10, %rsi
movq %r13, %rdi
movq %r15, %rdx
callq 0x31d0
leaq (%rsp,%r15), %rdi
addq $0x10, %rdi
movq (%rbx), %rcx
movl $0x1, %edx
movq %r14, %rsi
callq 0x3090
cmpq $0x1, %rax
je 0x3772
incq %r14
decq %r15
jne 0x372b
movl $0xbc, %r14d
cmpl $0xbc, %r14d
je 0x3a35
movzbl 0x11(%rsp), %eax
andl $0x1f, %eax
shll $0x8, %eax
movzbl 0x12(%rsp), %r14d
orq %rax, %r14
leaq (%r14,%r14,2), %rax
leaq 0x1a9b2(%rip), %rcx     # 0x1e150
leaq (%rcx,%rax,8), %rbp
cmpl $0x0, (%rbp)
je 0x3a1d
movzbl 0x13(%rsp), %eax
movl %eax, %edx
andb $0xf, %dl
movzbl 0x4(%rbp), %ecx
cmpb %dl, %cl
sete %dl
testb $0x10, %al
sete %sil
orb %dl, %sil
jne 0x3a1d
cmpl $0xff, %ecx
je 0x37f6
subl %eax, %ecx
incl %ecx
testb $0xf, %cl
je 0x37f6
movq 0x8(%rbp), %rdi
callq 0x3030
movq $0x0, 0x8(%rbp)
movw $0x0, 0x10(%rbp)
testb $0x40, 0x11(%rsp)
movb 0x13(%rsp), %al
leaq 0xcc(%rsp), %r13
movq %r13, %rsi
jne 0x3828
testb $0x10, %al
je 0x3845
leaq 0x14(%rsp), %rsi
testb $0x20, %al
je 0x3845
movzbl 0x14(%rsp), %esi
leaq 0x15(%rsp), %rax
addq %rax, %rsi
jmp 0x3845
testb $0x10, %al
je 0x3842
leaq 0x14(%rsp), %rsi
testb $0x20, %al
je 0x3842
movzbl 0x14(%rsp), %esi
leaq 0x15(%rsp), %rax
addq %rax, %rsi
incq %rsi
movq 0x8(%rbp), %rdi
movzwl %r14w, %eax
movl %eax, 0x8(%rsp)
testq %rdi, %rdi
je 0x38e4
movl %r13d, %eax
subl %esi, %eax
movzwl 0x10(%rbp), %ecx
movl $0x1000, %edx           # imm = 0x1000
subl %ecx, %edx
movzbl %al, %eax
cmpw %ax, %dx
cmovael %eax, %edx
addq %rcx, %rdi
movzwl %dx, %r15d
movq %r15, %rdx
callq 0x3150
addw 0x10(%rbp), %r15w
movw %r15w, 0x10(%rbp)
cmpw $0x3, %r15w
jb 0x38ba
movq 0x8(%rbp), %rsi
movzbl 0x1(%rsi), %ecx
andl $0xf, %ecx
shll $0x8, %ecx
movzbl 0x2(%rsi), %eax
orl %ecx, %eax
cmpl $0xffb, %eax            # imm = 0xFFB
jae 0x38be
movzwl %ax, %eax
addl $0x3, %eax
cmpw %r15w, %ax
jbe 0x38c8
xorl %esi, %esi
jmp 0x38d6
movq %rsi, %rdi
callq 0x3030
xorl %esi, %esi
movq $0x0, 0x8(%rbp)
movw $0x0, 0x10(%rbp)
testq %rsi, %rsi
je 0x38e4
movl 0x8(%rsp), %edi
callq 0x3cc7
testb $0x40, 0x11(%rsp)
movq %r13, %r15
je 0x392e
movb 0x13(%rsp), %cl
movl $0xbc, %eax
testb $0x10, %cl
je 0x390f
movl $0x4, %eax
testb $0x20, %cl
je 0x390f
movzbl 0x14(%rsp), %eax
addq $0x5, %rax
movq %r13, %r15
cmpq $0xbb, %rax
jg 0x392e
leaq (%rsp,%rax), %rcx
addq $0x10, %rcx
movzbl 0x10(%rsp,%rax), %eax
leaq (%rax,%rcx), %r15
incq %r15
subl %r15d, %r13d
testb %r13b, %r13b
je 0x3a1d
movzwl 0x10(%rbp), %r12d
movl $0x1000, %r14d          # imm = 0x1000
subl %r12d, %r14d
movzbl %r13b, %eax
cmpw %ax, %r14w
cmovael %eax, %r14d
cmpq $0x0, 0x8(%rbp)
jne 0x396f
cmpb $-0x1, (%r15)
je 0x39d3
movl $0x1000, %edi           # imm = 0x1000
callq 0x3160
movq %rax, 0x8(%rbp)
addq 0x8(%rbp), %r12
movzwl %r14w, %edx
movq %r12, %rdi
movq %r15, %rsi
callq 0x3150
movl 0x10(%rbp), %eax
leal (%rax,%r14), %ecx
movw %cx, 0x10(%rbp)
cmpw $0x3, %cx
jb 0x39c0
movq 0x8(%rbp), %rsi
movzbl 0x1(%rsi), %edx
andl $0xf, %edx
shll $0x8, %edx
movzbl 0x2(%rsi), %edi
leal (%rdx,%rdi), %r12d
cmpl $0xffb, %r12d           # imm = 0xFFB
jae 0x39c4
addl %edi, %edx
addl $0x3, %edx
cmpw %cx, %dx
jbe 0x39d8
xorl %esi, %esi
jmp 0x39ed
xorl %esi, %esi
jmp 0x39f8
movq %rsi, %rdi
callq 0x3030
xorl %r13d, %r13d
xorl %esi, %esi
jmp 0x39df
xorl %r13d, %r13d
jmp 0x3a04
movzwl %dx, %r14d
subl %eax, %r14d
movq $0x0, 0x8(%rbp)
movw $0x0, 0x10(%rbp)
movzwl %r12w, %eax
cmpl $0xffa, %eax            # imm = 0xFFA
ja 0x3a04
movzwl %r14w, %eax
addq %rax, %r15
subb %r14b, %r13b
jmp 0x3a06
xorl %esi, %esi
testq %rsi, %rsi
je 0x3931
movl 0x8(%rsp), %edi
callq 0x3cc7
jmp 0x3931
movb 0x13(%rsp), %al
andb $0xf, %al
movb %al, 0x4(%rbp)
xorl %r12d, %r12d
leaq 0x4cf20(%rip), %rbp     # 0x50950
leaq 0x10(%rsp), %r13
movq (%rbx), %rdi
callq 0x3140
testl %eax, %eax
je 0x36bb
cmpb $0x1, 0x1a6f4(%rip)     # 0x1e140
jne 0x3a5a
leaq 0x175a7(%rip), %rdi     # 0x1affc
callq 0x3070
movq 0x1a6bf(%rip), %rdi     # 0x1e120
cmpq $-0x1, %rdi
leaq 0x4a6e4(%rip), %r14     # 0x4e150
je 0x3a73
callq 0x31a0
xorl %ebx, %ebx
movq (%rbx,%r14), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3a75
xorl %ebx, %ebx
leaq 0x4e6bc(%rip), %r15     # 0x52150
leaq 0x4deb5(%rip), %r12     # 0x51950
leaq 0x4aeae(%rip), %r14     # 0x4e950
movq (%rbx,%r14), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3aa2
xorl %ebx, %ebx
leaq 0x4be8f(%rip), %r14     # 0x4f950
leaq 0x4b688(%rip), %r13     # 0x4f150
movq (%rbx,%r13), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3ac8
xorl %ebx, %ebx
movq (%rbx,%r14), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3ae0
xorl %ebx, %ebx
leaq 0x4c651(%rip), %r14     # 0x50150
movq (%rbx,%r14), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3aff
xorl %ebx, %ebx
movq (%rbx,%rbp), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3b17
xorl %ebx, %ebx
leaq 0x4d61a(%rip), %r14     # 0x51150
movq (%rbx,%r14), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3b36
xorl %ebx, %ebx
movq (%rbx,%r12), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3b4e
xorl %ebx, %ebx
leaq 0x4ede3(%rip), %r14     # 0x52950
movq (%rbx,%r15), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3b6d
xorl %ebx, %ebx
movq (%rbx,%r14), %rdi
callq 0x3030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x3b85
movslq 0x4f5be(%rip), %r14     # 0x53160
testq %r14, %r14
jle 0x3bff
movq 0x4f5ba(%rip), %r15     # 0x53168
xorl %r12d, %r12d
movq (%r15,%r12,8), %rbx
xorl %r13d, %r13d
movq 0x8(%rbx,%r13,8), %rdi
callq 0x3030
incq %r13
cmpq $0x100, %r13            # imm = 0x100
jne 0x3bb8
movq (%r15,%r12,8), %rbx
xorl %r13d, %r13d
movq 0x808(%rbx,%r13,8), %rdi
callq 0x3030
incq %r13
cmpq $0x100, %r13            # imm = 0x100
jne 0x3bd5
movq (%r15,%r12,8), %rdi
callq 0x3030
incq %r12
cmpq %r14, %r12
jne 0x3bb1
movq 0x4f562(%rip), %rdi     # 0x53168
callq 0x3030
movslq 0x4f55e(%rip), %r14     # 0x53170
testq %r14, %r14
jle 0x3c5c
movq 0x4f55a(%rip), %r15     # 0x53178
xorl %r12d, %r12d
movq (%r15,%r12,8), %rbx
xorl %r13d, %r13d
movq 0x10(%rbx,%r13,8), %rdi
callq 0x3030
incq %r13
cmpq $0x100, %r13            # imm = 0x100
jne 0x3c28
movq (%r15,%r12,8), %rax
movq 0x8(%rax), %rdi
callq 0x3030
movq (%r15,%r12,8), %rdi
callq 0x3030
incq %r12
cmpq %r14, %r12
jne 0x3c21
movq 0x4f515(%rip), %rdi     # 0x53178
callq 0x3030
xorl %ebx, %ebx
leaq 0x1a4df(%rip), %r14     # 0x1e150
movq 0x8(%rbx,%r14), %rdi
callq 0x3030
movq $0x0, 0x8(%rbx,%r14)
movw $0x0, 0x10(%rbx,%r14)
addq $0x18, %rbx
cmpq $0x30000, %rbx          # imm = 0x30000
jne 0x3c71
xorl %eax, %eax
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x56, %eax
jne 0x3cb7
callq 0x3230
movq %rbx, %rdi
callq 0x327c
movq %rbx, %rdi
callq 0x3258