// File: /workspace/github_c_makefile_star2_O2/Nico01[P]obj2asm/t_tree.c
// Function: init_trees
void init_trees(void)
{
    NAME_T *name_root;
    SEG_T *segment_root;
    GRP_T *group_root;
    PUB_T *public_root;
    EXT_T *extern_root;
    SEX_T *sex_root;
    DAT_T *data_root;
    STRUC_T *struc_root;
    FIX_T *fix_root;
    HINT_T *hint_root;
    LINE_T *line_root;
    SCOPE_T *arg_scope_root;
    SCOPE_T *loc_scope_root;
    SCOPE_T *end_scope_root;

    line_root = o_malloc(sizeof(LINE_T));
    line_root->hex_offset = -1;
    line_tree = new_tree((char *)line_root, FALSE);

    loc_scope_root = o_malloc(sizeof(SCOPE_T));
    loc_scope_root->hex_offset = -1;
    loc_scope_root->head = NULL;
    loc_scope_tree = new_tree(loc_scope_root, FALSE);

    arg_scope_root = o_malloc(sizeof(SCOPE_T));
    arg_scope_root->hex_offset = -1;
    arg_scope_root->head = NULL;
    arg_scope_tree = new_tree(arg_scope_root, FALSE);

    end_scope_root = o_malloc(sizeof(SCOPE_T));
    end_scope_root->hex_offset = -1;
    end_scope_root->head = NULL;                     /* field not used in TCENDSCP */
    end_scope_tree = new_tree(end_scope_root, TRUE); /* allow duplicates */

    /* Make an empty name tree node */
    name_root = (NAME_T *)o_malloc(sizeof(NAME_T));
    name_root->index = 0;
    strcpy(name_root->name, "Root NAME Node");

    name_tree = new_tree((char *)name_root, FALSE);

    /* Make an empty segment tree node */
    segment_root = (SEG_T *)o_malloc(sizeof(SEG_T));
    segment_root->index = -1; /* Zero reserved to some equates */
    segment_root->name = 0;
    segment_root->class = NULL;
    segment_root->length = 0;
    segment_root->code = FALSE;
    segment_root->bit32 = FALSE;

    segment_tree = new_tree((char *)segment_root, FALSE);

    /* Make an empty group tree node */
    group_root = (GRP_T *)o_malloc(sizeof(GRP_T));
    group_root->index = 0;
    group_root->name = 0;

    group_tree = new_tree((char *)group_root, FALSE);

    /* Make an empty public tree node */
    public_root = (PUB_T *)o_malloc(sizeof(PUB_T));
    public_root->seg_idx = -1; /* Zero reserved to some equates */
    public_root->offset = 0;
    public_root->domain = 0;
    public_root->scope = FALSE;
    strcpy(public_root->name, "Root PUBLIC Node");

    public_tree = new_tree((char *)public_root, TRUE);

    /* Make an empty external tree node */
    extern_root = (EXT_T *)o_malloc(sizeof(EXT_T));
    extern_root->index = 0;
    extern_root->type = 0;
    extern_root->com_ext = 0;
    extern_root->var_type = 0;
    extern_root->size = 0L;
    extern_root->used = 0;
    extern_root->scope = 0;
    strcpy(extern_root->name, "Root EXTERN Node");

    extern_tree = new_tree((char *)extern_root, FALSE);

    /* Make an empty external tree node */
    sex_root = (SEX_T *)o_malloc(sizeof(SEX_T));
    sex_root->seg_index = 0;

    sex_tree = new_tree((char *)sex_root, FALSE);

    /* Make an empty data record tree node */
    data_root = (DAT_T *)o_malloc(sizeof(DAT_T));
    data_root->seg_idx = -1; /* Zero reserved to some equates */
    data_root->offset = 0;
    data_root->file_pos = 0L;
    data_root->length = 0;

    data_tree = new_tree((char *)data_root, FALSE);

    /* Make an empty structure tree node */
    struc_root = (STRUC_T *)o_malloc(sizeof(STRUC_T));
    struc_root->form = "";

    struc_tree = new_tree((char *)struc_root, FALSE);

    /* Make an empty fixup record tree node */
    fix_root = (FIX_T *)o_malloc(sizeof(FIX_T));
    fix_root->seg_idx = -1; /* Zero reserved to some equates */
    fix_root->offset = 0;
    fix_root->relate = 0;
    fix_root->form = 0;
    fix_root->a_mode = 0;
    fix_root->a_index = 0;
    fix_root->b_mode = 0;
    fix_root->b_index = 0;
    fix_root->displacement = 0L;
    fix_root->extended = FALSE;
    fix_root->word_sized = FALSE;

    fix_tree = new_tree((char *)fix_root, FALSE);

    hint_root = (HINT_T *)o_malloc(sizeof(HINT_T));
    hint_root->seg_idx = 0;
    hint_root->offset = 0L;
    hint_root->hint_type = 0;
    hint_root->length = 0L;
    hint_tree = new_tree((char *)hint_root, FALSE);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
pushq $0x10
popq %rbx
movq %rbx, %rdi
callq 0x11f10
orq $-0x1, (%rax)
xorl %r15d, %r15d
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa578(%rip), %rcx      # 0x1bf70
movq %rax, (%rcx)
movq %rbx, %rdi
callq 0x11f10
orq $-0x1, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa563(%rip), %rcx      # 0x1bf80
movq %rax, (%rcx)
movq %rbx, %rdi
callq 0x11f10
orq $-0x1, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa536(%rip), %rcx      # 0x1bf78
movq %rax, (%rcx)
movq %rbx, %rdi
callq 0x11f10
orq $-0x1, (%rax)
andq $0x0, 0x8(%rax)
pushq $0x1
popq %rbp
movq %rax, %rdi
movl %ebp, %esi
callq 0x11990
leaq 0xa51e(%rip), %rcx      # 0x1bf88
movq %rax, (%rcx)
pushq $0x30
popq %rdi
callq 0x11f10
andl $0x0, (%rax)
movabsq $0x4d414e20746f6f52, %rcx # imm = 0x4D414E20746F6F52
movq %rcx, 0x4(%rax)
movabsq $0x65646f4e20454d, %rcx # imm = 0x65646F4E20454D
movq %rcx, 0xb(%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa4eb(%rip), %rcx      # 0x1bf90
movq %rax, (%rcx)
movl $0x80, %edi
callq 0x11f10
orl $-0x1, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x4(%rax)
andq $0x0, 0x14(%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa4c6(%rip), %rcx      # 0x1bf98
movq %rax, (%rcx)
pushq $0x8
popq %rdi
callq 0x11f10
andq $0x0, (%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa4ae(%rip), %rcx      # 0x1bfa0
movq %rax, (%rcx)
pushq $0x50
popq %r14
movq %r14, %rdi
callq 0x11f10
orl $-0x1, (%rax)
andq $0x0, 0x8(%rax)
andq $0x0, 0x3c(%rax)
movb %r15b, 0x20(%rax)
movups 0x2106(%rip), %xmm0     # 0x13c1f
movups %xmm0, 0x10(%rax)
movq %rax, %rdi
movl %ebp, %esi
callq 0x11990
leaq 0xa47a(%rip), %rcx      # 0x1bfa8
movq %rax, (%rcx)
movq %r14, %rdi
callq 0x11f10
andl $0x0, (%rax)
andl $0x0, 0x2c(%rax)
andq $0x0, 0x34(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rax)
movb %r15b, 0x14(%rax)
movups 0x20d9(%rip), %xmm0     # 0x13c30
movups %xmm0, 0x4(%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa444(%rip), %rcx      # 0x1bfb0
movq %rax, (%rcx)
movq %rbx, %rdi
callq 0x11f10
andl $0x0, (%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa42d(%rip), %rcx      # 0x1bfb8
movq %rax, (%rcx)
pushq $0x28
popq %rdi
callq 0x11f10
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
movq %rcx, (%rax)
andq $0x0, 0x10(%rax)
andl $0x0, 0x18(%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa408(%rip), %rcx      # 0x1bfc0
movq %rax, (%rcx)
movq %rbx, %rdi
callq 0x11f10
leaq 0x1542(%rip), %rcx      # 0x1310c
movq %rcx, (%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa3ea(%rip), %rcx      # 0x1bfc8
movq %rax, (%rcx)
pushq $0x40
popq %rdi
callq 0x11f10
orl $-0x1, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x1c(%rax)
movups %xmm0, 0x30(%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa3c4(%rip), %rcx      # 0x1bfd0
movq %rax, (%rcx)
pushq $0x18
popq %rdi
callq 0x11f10
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
andq $0x0, 0x10(%rax)
movq %rax, %rdi
xorl %esi, %esi
callq 0x11990
leaq 0xa3a5(%rip), %rcx      # 0x1bfd8
movq %rax, (%rcx)
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq