// File: /workspace/github_c_makefile_star2_O2/videolan[P]bitstream/examples/mpeg_print_pcr.c
// Function: handle_section
static void handle_section(uint16_t i_pid, uint8_t *p_section)
{
    uint8_t i_table_id = psi_get_tableid(p_section);

    if (!psi_validate(p_section)) {
        free(p_section);
        return;
    }

    switch (i_table_id) {
    case PAT_TABLE_ID:
        handle_pat_section(i_pid, p_section);
        break;

    case PMT_TABLE_ID:
        handle_pmt(i_pid, p_section);
        break;

    default:
        free( p_section );
        break;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x838, %rsp            # imm = 0x838
movq %rsi, %rbx
movl %edi, %ebp
movzbl (%rsi), %eax
movzbl 0x1(%rsi), %r15d
testb %r15b, %r15b
jns 0x15e2
movzwl %r15w, %ecx
andl $0xf, %ecx
shll $0x8, %ecx
movzbl 0x2(%rbx), %edx
orl %ecx, %edx
cmpw $0x8, %dx
jbe 0x17b8
cmpl $0x2, %eax
je 0x17a7
testl %eax, %eax
jne 0x17b8
testb %r15b, %r15b
setns %al
testw %bp, %bp
setne %cl
orb %al, %cl
jne 0x17b8
movb 0x2(%rbx), %al
decb %al
testb $0x3, %al
jne 0x17b8
movzbl 0x6(%rbx), %r13d
movzbl 0x7(%rbx), %r15d
movb 0x5(%rbx), %bpl
movzwl 0x3(%rbx), %r12d
rolw $0x8, %r12w
leaq 0x32a7d(%rip), %r14     # 0x340b0
movq (%r14,%r13,8), %rdi
callq 0x1030
movq %rbx, (%r14,%r13,8)
leaq 0x8(,%r15,8), %rax
xorl %ecx, %ecx
cmpq %rcx, %rax
je 0x16a1
movq (%rcx,%r14), %rdx
testq %rdx, %rdx
je 0x1893
cmpb %r15b, 0x7(%rdx)
jne 0x1893
movb 0x5(%rdx), %sil
xorb %bpl, %sil
testb $0x3e, %sil
jne 0x1893
movzwl 0x3(%rdx), %edx
rolw $0x8, %dx
addq $0x8, %rcx
cmpw %r12w, %dx
je 0x164a
jmp 0x1893
movq 0x8(%r14,%r15,8), %rdi
callq 0x1030
andq $0x0, 0x8(%r14,%r15,8)
incq %r15
cmpq $0xff, %r15
jne 0x168e
movq 0x329ff(%rip), %rax     # 0x340b0
movzbl 0x7(%rax), %r13d
movq 0x331f3(%rip), %rax     # 0x348b0
testq %rax, %rax
je 0x1727
cmpb %r13b, 0x7(%rax)
jne 0x1727
xorl %ebx, %ebx
leaq 0x331df(%rip), %r15     # 0x348b0
cmpb %r13b, %bl
ja 0x1882
movzbl %bl, %eax
shll $0x3, %eax
movq (%rax,%r15), %rdi
movq (%rax,%r14), %rsi
movb 0x5(%rsi), %al
xorb 0x5(%rdi), %al
testb $0x3e, %al
jne 0x1727
movzbl 0x1(%rdi), %eax
andl $0xf, %eax
shll $0x8, %eax
movzbl 0x2(%rdi), %edx
orq %rax, %rdx
movzbl 0x1(%rsi), %eax
andl $0xf, %eax
shll $0x8, %eax
movzbl 0x2(%rsi), %ecx
orl %eax, %ecx
cmpw %cx, %dx
jne 0x1727
addq $0x3, %rdx
callq 0x10d0
incb %bl
testl %eax, %eax
je 0x16d1
xorl %ebp, %ebp
cmpb %r13b, %bpl
ja 0x18ee
movzbl %bpl, %eax
movq (%r14,%rax,8), %rbx
movq %rbx, %rdi
callq 0x1cb7
testb %al, %al
je 0x1882
xorl %r12d, %r12d
movzbl %r12b, %esi
movq %rbx, %rdi
callq 0x1c2b
testq %rax, %rax
je 0x17a2
movq %rax, %r15
movzwl (%rax), %eax
rolw $0x8, %ax
movzwl %ax, %esi
movq %r14, %rdi
callq 0x1c55
incb %r12b
movzbl 0x2(%r15), %ecx
andl $0x1f, %ecx
shll $0x8, %ecx
movzbl 0x3(%r15), %edx
orl %ecx, %edx
movzbl 0x2(%rax), %ecx
andl $0x1f, %ecx
shll $0x8, %ecx
movzbl 0x3(%rax), %eax
orl %ecx, %eax
cmpw %ax, %dx
je 0x174d
jmp 0x1882
incb %bpl
jmp 0x1729
testb %r15b, %r15b
jns 0x17b8
cmpb $0x0, 0x6(%rbx)
jne 0x17b8
cmpb $0x0, 0x7(%rbx)
je 0x17d1
movq %rbx, %rdi
addq $0x838, %rsp            # imm = 0x838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1030
movzwl 0x3(%rbx), %r14d
movzbl 0x2(%rbx), %r12d
movq %rbx, %rdi
callq 0x1cb7
testb %al, %al
je 0x17b8
movzwl %r15w, %eax
andl $0xf, %eax
shll $0x8, %eax
addl %eax, %r12d
decl %r12d
cmpw $0xc, %r12w
jb 0x17b8
movzbl 0xa(%rbx), %eax
andl $0xf, %eax
shll $0x8, %eax
movzbl 0xb(%rbx), %r15d
orq %rax, %r15
leal 0xc(%r15), %eax
cmpw %ax, %r12w
jb 0x17b8
leaq 0xa(%rbx), %rdi
callq 0x1d29
testb %al, %al
je 0x17b8
rolw $0x8, %r14w
addq %rbx, %r15
addq $0xc, %r15
movzwl %r12w, %r12d
leaq 0x5(%r15), %rax
movq %rax, %rcx
subq %rbx, %rcx
cmpq %r12, %rcx
jg 0x18a5
movzbl 0x3(%r15), %ecx
andl $0xf, %ecx
shll $0x8, %ecx
movzbl 0x4(%r15), %r13d
orq %rcx, %r13
addq %r13, %rax
subq %rbx, %rax
cmpq %r12, %rax
jg 0x18a5
leaq 0x3(%r15), %rdi
callq 0x1d29
testb %al, %al
je 0x17b8
movzwl %r13w, %eax
addq %rax, %r15
addq $0x5, %r15
jmp 0x1837
leaq 0x32827(%rip), %rdi     # 0x340b0
callq 0x1be5
callq 0x1c0e
addq $0x838, %rsp            # imm = 0x838
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
subq %rbx, %r15
cmpq %r12, %r15
jne 0x17b8
movl 0x337f9(%rip), %ecx     # 0x350b0
movq 0x337fa(%rip), %rax     # 0x350b8
xorl %esi, %esi
testl %ecx, %ecx
movl $0x0, %edx
cmovgl %ecx, %edx
cmpq %rsi, %rdx
je 0x1b80
movq (%rax,%rsi,8), %rdi
movzwl (%rdi), %edi
testw %di, %di
je 0x18e9
cmpw %r14w, %di
je 0x1b7e
incq %rsi
jmp 0x18ca
leaq 0x32fbb(%rip), %rbx     # 0x348b0
leaq 0x30(%rsp), %rbp
movl $0x800, %edx            # imm = 0x800
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x10b0
leaq 0x3279f(%rip), %rsi     # 0x340b0
movl $0x800, %edx            # imm = 0x800
movq %rbx, %rdi
callq 0x10b0
callq 0x1c0e
movq (%rbp), %rax
movq %rax, 0x18(%rsp)
movl 0x3377e(%rip), %eax     # 0x350b0
movl %eax, 0x14(%rsp)
incq %r13
xorl %ecx, %ecx
movq 0x33776(%rip), %r12     # 0x350b8
movq %r13, 0x20(%rsp)
cmpq %r13, %rcx
je 0x1aaf
leaq 0x32f59(%rip), %rax     # 0x348b0
movq %rcx, 0x28(%rsp)
movq (%rax,%rcx,8), %r13
xorl %ebx, %ebx
movl 0x14(%rsp), %eax
movq %rax, 0x8(%rsp)
movzbl %bl, %esi
movq %r13, %rdi
callq 0x1c2b
testq %rax, %rax
je 0x1a9d
movzwl (%rax), %r14d
rolw $0x8, %r14w
testw %r14w, %r14w
je 0x19d1
movzbl 0x2(%rax), %ecx
andl $0x1f, %ecx
shll $0x8, %ecx
movzbl 0x3(%rax), %r15d
orq %rcx, %r15
cmpq $0x0, 0x18(%rsp)
je 0x19e9
movzwl %r14w, %esi
movq %rbp, %rdi
callq 0x1c55
testq %rax, %rax
je 0x19e9
movzbl 0x2(%rax), %ecx
andl $0x1f, %ecx
movl %ecx, %edx
shll $0x8, %edx
movzbl 0x3(%rax), %eax
orl %eax, %edx
cmpw %r15w, %dx
jne 0x19d5
incb %bl
jmp 0x196b
shll $0x8, %ecx
orq %rax, %rcx
imulq $0x18, %rcx, %rax
leaq 0x26ca(%rip), %rcx      # 0x40b0
decl (%rax,%rcx)
imulq $0x18, %r15, %rax
leaq 0x26bc(%rip), %rcx      # 0x40b0
incl (%rax,%rcx)
movq 0x8(%rsp), %rsi
testl %esi, %esi
movl $0x0, %eax
cmovgl %esi, %eax
incb %bl
xorl %ecx, %ecx
cmpq %rcx, %rax
je 0x1a28
movq (%r12,%rcx,8), %rdx
movzwl (%rdx), %edx
cmpw %r14w, %dx
je 0x1a26
testw %dx, %dx
je 0x1a26
incq %rcx
jmp 0x1a0a
movl %ecx, %eax
cmpl %esi, %eax
jne 0x1a83
pushq $0x10
popq %rdi
movq %rsi, 0x8(%rsp)
callq 0x10c0
movq %rax, %rbp
movq 0x8(%rsp), %rcx
leal 0x1(%rcx), %eax
movl %eax, 0x14(%rsp)
movl %eax, 0x33662(%rip)     # 0x350b0
movslq %ecx, %rax
leaq 0x8(,%rax,8), %rsi
movq %r12, %rdi
callq 0x10e0
movq %rax, %r12
movq %rax, 0x3364d(%rip)     # 0x350b8
movl 0x8(%rsp), %eax
movq %rbp, (%r12,%rax,8)
andq $0x0, 0x8(%rbp)
movl 0x14(%rsp), %eax
movq %rax, 0x8(%rsp)
jmp 0x1a89
movl %eax, %eax
movq (%r12,%rax,8), %rbp
movw %r14w, (%rbp)
movw %r15w, 0x2(%rbp)
leaq 0x30(%rsp), %rbp
jmp 0x196b
movq 0x28(%rsp), %rcx
incq %rcx
movq 0x20(%rsp), %r13
jmp 0x1947
movq 0x18(%rsp), %rax
testq %rax, %rax
je 0x1893
movb 0x7(%rax), %al
movb %al, 0x8(%rsp)
movl 0x335e5(%rip), %r15d    # 0x350b0
movq 0x335e6(%rip), %r12     # 0x350b8
xorl %eax, %eax
testl %r15d, %r15d
cmovlel %eax, %r15d
leaq 0x32dce(%rip), %rbx     # 0x348b0
cmpb 0x8(%rsp), %al
ja 0x1b6f
movq %rax, 0x18(%rsp)
movzbl %al, %eax
movq 0x30(%rsp,%rax,8), %r14
xorl %ebp, %ebp
movzbl %bpl, %esi
movq %r14, %rdi
callq 0x1c2b
testq %rax, %rax
je 0x1b63
movzwl (%rax), %r13d
rolw $0x8, %r13w
incb %bpl
testw %r13w, %r13w
je 0x1afb
movzwl %r13w, %esi
movq %rbx, %rdi
callq 0x1c55
testq %rax, %rax
jne 0x1afb
xorl %ebx, %ebx
cmpq %rbx, %r15
je 0x1b5a
movq (%r12,%rbx,8), %rax
incq %rbx
cmpw %r13w, (%rax)
jne 0x1b31
andw $0x0, (%rax)
movq 0x8(%rax), %rdi
callq 0x1030
movq -0x8(%r12,%rbx,8), %rax
andq $0x0, 0x8(%rax)
leaq 0x32d4f(%rip), %rbx     # 0x348b0
jmp 0x1afb
movq 0x18(%rsp), %rax
incb %al
jmp 0x1ae2
leaq 0x30(%rsp), %rdi
callq 0x1be5
jmp 0x1893
movl %esi, %edx
cmpl %ecx, %edx
je 0x17b8
movl %edx, %ecx
movq (%rax,%rcx,8), %rax
cmpw %bp, 0x2(%rax)
jne 0x17b8
movzbl 0x8(%rbx), %eax
andl $0x1f, %eax
shll $0x8, %eax
movzbl 0x9(%rbx), %esi
orl %eax, %esi
leaq 0x483(%rip), %rdi       # 0x2032
xorl %eax, %eax
callq 0x1060
xorl %edi, %edi
callq 0x1100