// File: /workspace/github_c_makefile_star2_O0/videolan[P]bitstream/examples/dvb_gen_si.c
// Function: build_desc6c
static void build_desc6c(uint8_t *desc) {
    uint8_t n = 0, k;
    uint8_t *cell_n, *subcell_k;

    desc6c_init(desc);
    desc_set_length(desc, 255);

    cell_n = desc6c_get_cell(desc, n++);
    desc6cn_set_cell_id(cell_n, 1234);
    desc6cn_set_cell_latitude(cell_n, 4567);
    desc6cn_set_cell_longtitude(cell_n, 5678);
    desc6cn_set_cell_extend_of_latitude(cell_n, 123);
    desc6cn_set_cell_extend_of_longtitude(cell_n, 345);
    desc6cn_set_subcell_info_loop_length(cell_n, 0);

    cell_n = desc6c_get_cell(desc, n++);
    desc6cn_set_cell_id(cell_n, 4456);
    desc6cn_set_cell_latitude(cell_n, 5567);
    desc6cn_set_cell_longtitude(cell_n, 6678);
    desc6cn_set_cell_extend_of_latitude(cell_n, 1234);
    desc6cn_set_cell_extend_of_longtitude(cell_n, 1234);
    desc6cn_set_subcell_info_loop_length(cell_n, 0);
    {
        k = 0;
        desc6cn_set_subcell_info_loop_length(cell_n, 255);

        subcell_k = desc6cn_get_subcell(cell_n, k++);
        desc6ck_set_cell_id_extension(subcell_k, 0);
        desc6ck_set_subcell_latitude(subcell_k, 0x1122);
        desc6ck_set_subcell_longtitude(subcell_k, 0x3344);
        desc6ck_set_subcell_extend_of_latitude(subcell_k, 0xf567);
        desc6ck_set_subcell_extend_of_longtitude(subcell_k, 0xf89a);

        subcell_k = desc6cn_get_subcell(cell_n, k++);
        desc6ck_set_cell_id_extension(subcell_k, 1);
        desc6ck_set_subcell_latitude(subcell_k, 0x2233);
        desc6ck_set_subcell_longtitude(subcell_k, 0x4455);
        desc6ck_set_subcell_extend_of_latitude(subcell_k, 0xf678);
        desc6ck_set_subcell_extend_of_longtitude(subcell_k, 0xf9ab);

        subcell_k = desc6cn_get_subcell(cell_n, k++);
        desc6ck_set_cell_id_extension(subcell_k, 2);
        desc6ck_set_subcell_latitude(subcell_k, 0x2233);
        desc6ck_set_subcell_longtitude(subcell_k, 0x4455);
        desc6ck_set_subcell_extend_of_latitude(subcell_k, 0xf678);
        desc6ck_set_subcell_extend_of_longtitude(subcell_k, 0xf9ab);

        subcell_k = desc6cn_get_subcell(cell_n, k);
        desc6cn_set_subcell_info_loop_length(cell_n, subcell_k - cell_n - DESC6C_DATA_SIZE);
    }

    cell_n = desc6c_get_cell(desc, n++);
    desc6cn_set_cell_id(cell_n, 0xffff);
    desc6cn_set_cell_latitude(cell_n, 0xeeee);
    desc6cn_set_cell_longtitude(cell_n, 0xdddd);
    desc6cn_set_cell_extend_of_latitude(cell_n, 0xf789);
    desc6cn_set_cell_extend_of_longtitude(cell_n, 0xfabc);
    desc6cn_set_subcell_info_loop_length(cell_n, 0);
    {
        k = 0;
        desc6cn_set_subcell_info_loop_length(cell_n, 255);

        subcell_k = desc6cn_get_subcell(cell_n, k++);
        desc6ck_set_cell_id_extension(subcell_k, 0x00);
        desc6ck_set_subcell_latitude(subcell_k, 0x1122);
        desc6ck_set_subcell_longtitude(subcell_k, 0x3344);
        desc6ck_set_subcell_extend_of_latitude(subcell_k, 0xf567);
        desc6ck_set_subcell_extend_of_longtitude(subcell_k, 0xf89a);

        subcell_k = desc6cn_get_subcell(cell_n, k);
        desc6cn_set_subcell_info_loop_length(cell_n, subcell_k - cell_n - DESC6C_DATA_SIZE);
    }

    cell_n = desc6c_get_cell(desc, n);
    desc_set_length(desc, cell_n - desc - DESC_HEADER_SIZE);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movb $0x0, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7ae0
movq -0x8(%rbp), %rdi
movl $0xff, %esi
callq 0x5ca0
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x15d3(%rip), %rdx      # 0x7b00
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x4d2, %esi            # imm = 0x4D2
callq 0x7b60
movq -0x18(%rbp), %rdi
movl $0x11d7, %esi           # imm = 0x11D7
callq 0x7ba0
movq -0x18(%rbp), %rdi
movl $0x162e, %esi           # imm = 0x162E
callq 0x7be0
movq -0x18(%rbp), %rdi
movl $0x7b, %esi
callq 0x7c20
movq -0x18(%rbp), %rdi
movl $0x159, %esi            # imm = 0x159
callq 0x7c70
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x7cc0
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x1560(%rip), %rdx      # 0x7b00
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x1168, %esi           # imm = 0x1168
callq 0x7b60
movq -0x18(%rbp), %rdi
movl $0x15bf, %esi           # imm = 0x15BF
callq 0x7ba0
movq -0x18(%rbp), %rdi
movl $0x1a16, %esi           # imm = 0x1A16
callq 0x7be0
movq -0x18(%rbp), %rdi
movl $0x4d2, %esi            # imm = 0x4D2
callq 0x7c20
movq -0x18(%rbp), %rdi
movl $0x4d2, %esi            # imm = 0x4D2
callq 0x7c70
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x7cc0
movb $0x0, -0xa(%rbp)
movq -0x18(%rbp), %rdi
movl $0xff, %esi
callq 0x7cc0
movq -0x18(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0x16bb(%rip), %rdx      # 0x7ce0
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
xorl %esi, %esi
callq 0x7d70
movq -0x20(%rbp), %rdi
movl $0x1122, %esi           # imm = 0x1122
callq 0x7d90
movq -0x20(%rbp), %rdi
movl $0x3344, %esi           # imm = 0x3344
callq 0x7dd0
movq -0x20(%rbp), %rdi
movl $0xf567, %esi           # imm = 0xF567
callq 0x7e10
movq -0x20(%rbp), %rdi
movl $0xf89a, %esi           # imm = 0xF89A
callq 0x7e60
movq -0x18(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0x1656(%rip), %rdx      # 0x7ce0
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movl $0x1, %esi
callq 0x7d70
movq -0x20(%rbp), %rdi
movl $0x2233, %esi           # imm = 0x2233
callq 0x7d90
movq -0x20(%rbp), %rdi
movl $0x4455, %esi           # imm = 0x4455
callq 0x7dd0
movq -0x20(%rbp), %rdi
movl $0xf678, %esi           # imm = 0xF678
callq 0x7e10
movq -0x20(%rbp), %rdi
movl $0xf9ab, %esi           # imm = 0xF9AB
callq 0x7e60
movq -0x18(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0x15ee(%rip), %rdx      # 0x7ce0
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
movl $0x2, %esi
callq 0x7d70
movq -0x20(%rbp), %rdi
movl $0x2233, %esi           # imm = 0x2233
callq 0x7d90
movq -0x20(%rbp), %rdi
movl $0x4455, %esi           # imm = 0x4455
callq 0x7dd0
movq -0x20(%rbp), %rdi
movl $0xf678, %esi           # imm = 0xF678
callq 0x7e10
movq -0x20(%rbp), %rdi
movl $0xf9ab, %esi           # imm = 0xF9AB
callq 0x7e60
movq -0x18(%rbp), %rdi
leaq 0x1591(%rip), %rdx      # 0x7ce0
movzbl -0xa(%rbp), %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
subq $0xa, %rax
movzbl %al, %esi
callq 0x7cc0
movq -0x8(%rbp), %rdi
movb -0x9(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0x9(%rbp)
leaq 0x1373(%rip), %rdx      # 0x7b00
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0xffff, %esi           # imm = 0xFFFF
callq 0x7b60
movq -0x18(%rbp), %rdi
movl $0xeeee, %esi           # imm = 0xEEEE
callq 0x7ba0
movq -0x18(%rbp), %rdi
movl $0xdddd, %esi           # imm = 0xDDDD
callq 0x7be0
movq -0x18(%rbp), %rdi
movl $0xf789, %esi           # imm = 0xF789
callq 0x7c20
movq -0x18(%rbp), %rdi
movl $0xfabc, %esi           # imm = 0xFABC
callq 0x7c70
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x7cc0
movb $0x0, -0xa(%rbp)
movq -0x18(%rbp), %rdi
movl $0xff, %esi
callq 0x7cc0
movq -0x18(%rbp), %rdi
movb -0xa(%rbp), %al
movb %al, %cl
addb $0x1, %cl
movb %cl, -0xa(%rbp)
leaq 0x14ce(%rip), %rdx      # 0x7ce0
movzbl %al, %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
xorl %esi, %esi
callq 0x7d70
movq -0x20(%rbp), %rdi
movl $0x1122, %esi           # imm = 0x1122
callq 0x7d90
movq -0x20(%rbp), %rdi
movl $0x3344, %esi           # imm = 0x3344
callq 0x7dd0
movq -0x20(%rbp), %rdi
movl $0xf567, %esi           # imm = 0xF567
callq 0x7e10
movq -0x20(%rbp), %rdi
movl $0xf89a, %esi           # imm = 0xF89A
callq 0x7e60
movq -0x18(%rbp), %rdi
leaq 0x1474(%rip), %rdx      # 0x7ce0
movzbl -0xa(%rbp), %esi
callq 0x59c0
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rdi
movq -0x20(%rbp), %rax
movq -0x18(%rbp), %rcx
subq %rcx, %rax
subq $0xa, %rax
movzbl %al, %esi
callq 0x7cc0
movq -0x8(%rbp), %rdi
leaq 0x1261(%rip), %rdx      # 0x7b00
movzbl -0x9(%rbp), %esi
callq 0x59c0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0x8(%rbp), %rcx
subq %rcx, %rax
subq $0x2, %rax
movzbl %al, %esi
callq 0x5ca0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)