// File: /workspace/github_c_makefile_star2_O3/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 0xf719(%rip), %r14      # 0x11ae2
leaq 0x1a3b0(%rip), %r15     # 0x1c780
movq 0x1abf9(%rip), %r12     # 0x1cfd0
movq $0x0, 0x8(%rsp)
movl %ebp, %edi
movq %rbx, %rsi
movq %r14, %rdx
movq %r15, %rcx
xorl %r8d, %r8d
callq 0x20b0
cmpl $0x78, %eax
jne 0x2434
movq (%r12), %r13
movq %r13, %rdi
leaq 0x13914(%rip), %rsi     # 0x15d1a
callq 0x2120
testl %eax, %eax
je 0x242b
movq %r13, %rdi
leaq 0xf6d0(%rip), %rsi      # 0x11ae9
callq 0x2120
testl %eax, %eax
jne 0x2452
movb $0x1, 0x1ad17(%rip)     # 0x1d140
jmp 0x23e0
movb $0x0, 0x1ad0e(%rip)     # 0x1d140
jmp 0x23e0
cmpl $-0x1, %eax
je 0x2472
cmpl $0x54, %eax
jne 0x2cd0
movq (%r12), %rdi
callq 0x2200
movq %rax, 0x8(%rsp)
jmp 0x23e0
movq 0x1ab97(%rip), %rax     # 0x1cff0
movq (%rax), %rdi
leaq 0xf68a(%rip), %rsi      # 0x11aed
movq %r13, %rdx
xorl %eax, %eax
callq 0x2130
jmp 0x23e0
movq 0x1ab4f(%rip), %rax     # 0x1cfc8
cmpl %ebp, (%rax)
jl 0x2ce2
movq 0x1ab30(%rip), %rax     # 0x1cfb8
movq (%rax), %rdi
xorl %esi, %esi
movl $0x1, %edx
xorl %ecx, %ecx
callq 0x21c0
leaq 0x1acb0(%rip), %rbx     # 0x1d150
movl $0x30000, %edx          # imm = 0x30000
movq %rbx, %rdi
xorl %esi, %esi
callq 0x2110
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 0x24b4
movl $0x1, %eax
movl %eax, 0x1ac71(%rip)     # 0x1d150
movl %eax, 0x1ac83(%rip)     # 0x1d168
movl %eax, 0x1ac95(%rip)     # 0x1d180
movl %eax, 0x1addf(%rip)     # 0x1d2d0
movl $0x2, 0x1aded(%rip)     # 0x1d2e8
movl %eax, 0x1adff(%rip)     # 0x1d300
movl %eax, 0x1ae29(%rip)     # 0x1d330
movl %eax, 0x1ae0b(%rip)     # 0x1d318
movl %eax, 0x1af0d(%rip)     # 0x1d420
movl %eax, 0x1af1f(%rip)     # 0x1d438
leaq 0x4ac30(%rip), %rdi     # 0x4d150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x2110
leaq 0x4b41d(%rip), %rdi     # 0x4d950
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x2110
leaq 0x4bc0a(%rip), %rdi     # 0x4e150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x2110
leaq 0x4c3f7(%rip), %rdi     # 0x4e950
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x2110
leaq 0x4cbe4(%rip), %rdi     # 0x4f150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x2110
leaq 0x4d3d1(%rip), %rdi     # 0x4f950
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x2110
leaq 0x4dbbe(%rip), %r15     # 0x50150
movl $0x800, %edx            # imm = 0x800
movq %r15, %rdi
xorl %esi, %esi
callq 0x2110
leaq 0x4e3a8(%rip), %r13     # 0x50950
movl $0x800, %edx            # imm = 0x800
movq %r13, %rdi
xorl %esi, %esi
callq 0x2110
leaq 0x4eb92(%rip), %rdi     # 0x51150
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x2110
leaq 0x4f37f(%rip), %rdi     # 0x51950
movl $0x800, %edx            # imm = 0x800
xorl %esi, %esi
callq 0x2110
movq 0x8(%rsp), %r14
testq %r14, %r14
je 0x2675
xorl %eax, %eax
movq %rax, 0x4fb63(%rip)     # 0x52157
movq %rax, 0x4fb55(%rip)     # 0x52150
leaq 0xefba(%rip), %r15      # 0x115bc
leaq 0x4fb47(%rip), %r12     # 0x52150
movq %r14, %rdi
movl $0x2c, %esi
callq 0x20c0
testq %rax, %rax
je 0x2626
movq %rax, %r13
incq %r13
movb $0x0, (%rax)
jmp 0x2629
xorl %r13d, %r13d
movq %r15, %rbp
xorl %ebx, %ebx
movslq (%rbp), %rsi
addq %r15, %rsi
movq %r14, %rdi
callq 0x2040
testl %eax, %eax
jne 0x2646
movb $0x1, (%rbx,%r12)
incq %rbx
addq $0x4, %rbp
cmpq $0xf, %rbx
jne 0x262e
movq %r13, %r14
testq %r13, %r13
jne 0x2609
movq 0x8(%rsp), %rdi
callq 0x2030
leaq 0x4e2e4(%rip), %r13     # 0x50950
leaq 0x4dadd(%rip), %r15     # 0x50150
jmp 0x268d
movabsq $0x101010101010101, %rax # imm = 0x101010101010101
movq %rax, 0x4fad1(%rip)     # 0x52157
movq %rax, 0x4fac3(%rip)     # 0x52150
cmpb $0x1, 0x1aaac(%rip)     # 0x1d140
jne 0x26ae
leaq 0x179a6(%rip), %rdi     # 0x1a043
callq 0x2070
leaq 0x179c1(%rip), %rdi     # 0x1a06a
callq 0x2070
movq 0x1a90b(%rip), %rbx     # 0x1cfc0
movq (%rbx), %rdi
callq 0x2140
testl %eax, %eax
jne 0x2a77
xorl %ebp, %ebp
leaq 0x10(%rsp), %r12
movq (%rbx), %r14
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
jne 0x2a77
movl $0xbc, %esi
movl $0x1, %edx
movq %r12, %rdi
movq %r14, %rcx
callq 0x2090
cmpq $0x1, %rax
jne 0x2a67
cmpb $0x47, 0x10(%rsp)
jne 0x27a6
movzbl 0x11(%rsp), %ecx
movzbl 0x12(%rsp), %eax
movl %ecx, %r14d
andl $0x1f, %r14d
shll $0x8, %r14d
orq %rax, %r14
leaq (%r14,%r14,2), %rax
leaq 0x1aa24(%rip), %rdx     # 0x1d150
leaq (%rdx,%rax,8), %r13
cmpl $0x0, (%r13)
je 0x2a48
movb 0x13(%rsp), %al
movl %eax, %esi
andb $0xf, %sil
movzbl 0x4(%r13), %edx
cmpb %sil, %dl
sete %sil
testb $0x10, %al
sete %dil
orb %sil, %dil
jne 0x2a48
cmpl $0xff, %edx
je 0x282a
movzbl %al, %esi
subl %esi, %edx
incl %edx
testb $0xf, %dl
je 0x282a
movq 0x8(%r13), %rdi
callq 0x2030
movq $0x0, 0x8(%r13)
movw $0x0, 0x10(%r13)
movb 0x11(%rsp), %cl
movb 0x13(%rsp), %al
testb $0x10, %al
sete %dl
jmp 0x282c
testb $0x1, %bpl
jne 0x27ca
cmpb $0x0, 0x1a98d(%rip)     # 0x1d140
leaq 0x178b5(%rip), %rdi     # 0x1a06f
leaq 0x178c0(%rip), %rax     # 0x1a081
cmovneq %rax, %rdi
callq 0x2070
movl $0x1, %r14d
movl $0xbb, %r15d
cmpb $0x47, 0x10(%rsp,%r14)
jne 0x2813
leaq (%rsp,%r14), %rsi
addq $0x10, %rsi
movq %r12, %rdi
movq %r15, %rdx
callq 0x21d0
leaq (%rsp,%r15), %rdi
addq $0x10, %rdi
movq (%rbx), %rcx
movl $0x1, %edx
movq %r14, %rsi
callq 0x2090
cmpq $0x1, %rax
je 0x2709
incq %r14
decq %r15
jne 0x27d6
movb $0x1, %bpl
leaq 0x4d92b(%rip), %r15     # 0x50150
jmp 0x2a67
xorl %edx, %edx
leaq 0xcc(%rsp), %r15
movq %r15, %rsi
testb $0x40, %cl
jne 0x2858
testb %dl, %dl
jne 0x2875
leaq 0x14(%rsp), %rsi
testb $0x20, %al
je 0x2875
movzbl 0x14(%rsp), %esi
leaq 0x15(%rsp), %rax
addq %rax, %rsi
jmp 0x2875
testb %dl, %dl
jne 0x2872
leaq 0x14(%rsp), %rsi
testb $0x20, %al
je 0x2872
movzbl 0x14(%rsp), %esi
leaq 0x15(%rsp), %rax
addq %rax, %rsi
incq %rsi
movq 0x8(%r13), %rdi
movzwl %r14w, %eax
movl %eax, 0x8(%rsp)
testq %rdi, %rdi
je 0x291c
movl %r15d, %eax
subl %esi, %eax
movzwl 0x10(%r13), %ecx
movl $0x1000, %edx           # imm = 0x1000
subl %ecx, %edx
movzbl %al, %eax
cmpw %ax, %dx
cmovael %eax, %edx
addq %rcx, %rdi
movzwl %dx, %r14d
movq %r14, %rdx
callq 0x2150
addw 0x10(%r13), %r14w
movw %r14w, 0x10(%r13)
cmpw $0x3, %r14w
jb 0x291c
movq 0x8(%r13), %rsi
movzbl 0x1(%rsi), %eax
movzbl 0x2(%rsi), %ecx
andl $0xf, %eax
shll $0x8, %eax
orl %ecx, %eax
cmpl $0xffa, %eax            # imm = 0xFFA
ja 0x2905
movzwl %ax, %eax
addl $0x3, %eax
cmpw %r14w, %ax
ja 0x291c
movq $0x0, 0x8(%r13)
movw $0x0, 0x10(%r13)
movl 0x8(%rsp), %edi
callq 0x2cea
jmp 0x291c
movq %rsi, %rdi
callq 0x2030
movq $0x0, 0x8(%r13)
movw $0x0, 0x10(%r13)
testb $0x40, 0x11(%rsp)
je 0x2930
movb 0x13(%rsp), %cl
testb $0x10, %cl
jne 0x29ff
movq %r15, %r14
movl %r15d, %ebp
subl %r14d, %ebp
testb %bpl, %bpl
je 0x2a48
movzwl 0x10(%r13), %r15d
movl $0x1000, %r12d          # imm = 0x1000
subl %r15d, %r12d
movzbl %bpl, %eax
cmpw %ax, %r12w
cmovael %eax, %r12d
movq 0x8(%r13), %rdi
testq %rdi, %rdi
jne 0x2980
cmpb $-0x1, (%r14)
je 0x2a48
movl $0x1000, %edi           # imm = 0x1000
callq 0x2160
movq %rax, %rdi
movq %rax, 0x8(%r13)
addq %r15, %rdi
movzwl %r12w, %r15d
movq %r14, %rsi
movq %r15, %rdx
callq 0x2150
movl 0x10(%r13), %eax
leal (%rax,%r12), %ecx
movw %cx, 0x10(%r13)
cmpw $0x3, %cx
jb 0x29f1
movq 0x8(%r13), %rsi
movzbl 0x1(%rsi), %edx
movzbl 0x2(%rsi), %edi
andl $0xf, %edx
shll $0x8, %edx
leal (%rdx,%rdi), %r8d
cmpl $0xffa, %r8d            # imm = 0xFFA
ja 0x2a31
addl %edi, %edx
addl $0x3, %edx
cmpw %cx, %dx
ja 0x29f1
movzwl %dx, %r12d
subl %eax, %r12d
movq $0x0, 0x8(%r13)
movw $0x0, 0x10(%r13)
movzwl %r12w, %r15d
movl 0x8(%rsp), %edi
callq 0x2cea
addq %r15, %r14
subb %r12b, %bpl
jne 0x2942
jmp 0x2a48
leaq 0x14(%rsp), %rax
testb $0x20, %cl
je 0x2a22
movzbl 0x14(%rsp), %eax
cmpq $0xb6, %rax
ja 0x2930
leaq 0x15(%rsp), %rcx
addq %rcx, %rax
movzbl (%rax), %ecx
leaq (%rax,%rcx), %r14
incq %r14
jmp 0x2933
movq %rsi, %rdi
callq 0x2030
movq $0x0, 0x8(%r13)
movw $0x0, 0x10(%r13)
movb 0x13(%rsp), %al
andb $0xf, %al
movb %al, 0x4(%r13)
xorl %ebp, %ebp
leaq 0x4def5(%rip), %r13     # 0x50950
leaq 0x4d6ee(%rip), %r15     # 0x50150
leaq 0x10(%rsp), %r12
movq (%rbx), %rdi
callq 0x2140
testl %eax, %eax
je 0x26cc
cmpb $0x1, 0x1a6c2(%rip)     # 0x1d140
jne 0x2a8c
leaq 0x17615(%rip), %rdi     # 0x1a09c
callq 0x2070
movq 0x1a68d(%rip), %rdi     # 0x1d120
cmpq $-0x1, %rdi
leaq 0x4a6b2(%rip), %r14     # 0x4d150
je 0x2aa5
callq 0x21a0
xorl %ebx, %ebx
movq (%rbx,%r14), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2aa7
xorl %ebx, %ebx
leaq 0x4ce8a(%rip), %rbp     # 0x4f950
leaq 0x4ae83(%rip), %r14     # 0x4d950
movq (%rbx,%r14), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2acd
xorl %ebx, %ebx
leaq 0x4be64(%rip), %r14     # 0x4e950
leaq 0x4b65d(%rip), %r12     # 0x4e150
movq (%rbx,%r12), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2af3
xorl %ebx, %ebx
movq (%rbx,%r14), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2b0b
xorl %ebx, %ebx
leaq 0x4c626(%rip), %r14     # 0x4f150
movq (%rbx,%r14), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2b2a
xorl %ebx, %ebx
movq (%rbx,%rbp), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2b42
xorl %ebx, %ebx
leaq 0x4e5ef(%rip), %r14     # 0x51150
movq (%rbx,%r15), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2b61
xorl %ebx, %ebx
movq (%rbx,%r13), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2b79
xorl %ebx, %ebx
movq (%rbx,%r14), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2b91
xorl %ebx, %ebx
leaq 0x4eda0(%rip), %r14     # 0x51950
movq (%rbx,%r14), %rdi
callq 0x2030
addq $0x8, %rbx
cmpq $0x800, %rbx            # imm = 0x800
jne 0x2bb0
movslq 0x4f593(%rip), %r15     # 0x52160
movq 0x4f594(%rip), %r14     # 0x52168
testq %r15, %r15
jle 0x2c2a
xorl %r12d, %r12d
movq (%r14,%r12,8), %rbx
xorl %r13d, %r13d
movq 0x8(%rbx,%r13,8), %rdi
callq 0x2030
incq %r13
cmpq $0x100, %r13            # imm = 0x100
jne 0x2be3
movq (%r14,%r12,8), %rbx
xorl %r13d, %r13d
movq 0x808(%rbx,%r13,8), %rdi
callq 0x2030
incq %r13
cmpq $0x100, %r13            # imm = 0x100
jne 0x2c00
movq (%r14,%r12,8), %rdi
callq 0x2030
incq %r12
cmpq %r15, %r12
jne 0x2bdc
movq %r14, %rdi
callq 0x2030
movslq 0x4f537(%rip), %r15     # 0x52170
movq 0x4f538(%rip), %r14     # 0x52178
testq %r15, %r15
jle 0x2c83
xorl %r12d, %r12d
movq (%r14,%r12,8), %rbx
xorl %r13d, %r13d
movq 0x10(%rbx,%r13,8), %rdi
callq 0x2030
incq %r13
cmpq $0x100, %r13            # imm = 0x100
jne 0x2c4f
movq (%r14,%r12,8), %rax
movq 0x8(%rax), %rdi
callq 0x2030
movq (%r14,%r12,8), %rdi
callq 0x2030
incq %r12
cmpq %r15, %r12
jne 0x2c48
movq %r14, %rdi
callq 0x2030
xorl %ebx, %ebx
leaq 0x1a4bc(%rip), %r14     # 0x1d150
movq 0x8(%rbx,%r14), %rdi
callq 0x2030
movq $0x0, 0x8(%rbx,%r14)
movw $0x0, 0x10(%rbx,%r14)
addq $0x18, %rbx
cmpq $0x30000, %rbx          # imm = 0x30000
jne 0x2c94
xorl %eax, %eax
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpl $0x56, %eax
jne 0x2cda
callq 0x2230
movq %rbx, %rdi
callq 0x227c
movq %rbx, %rdi
callq 0x2258