// File: /workspace/github_c_makefile_star2_O3/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 %r12
pushq %rbx
movl $0x10, %edi
callq 0x128e2
movq %rax, %rbx
movq $-0x1, %r12
movq %r12, (%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw $0x1, %bp
movw %bp, (%rax)
xorl %r14d, %r14d
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movabsq $0x100000001, %r15      # imm = 0x100000001
movq %r15, 0x18(%rax)
leaq 0xacf9(%rip), %rcx      # 0x1cf70
movq %rax, (%rcx)
movl $0x10, %edi
callq 0x128e2
movq %rax, %rbx
movq %r12, (%rax)
movq %r14, 0x8(%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xacce(%rip), %rcx      # 0x1cf80
movq %rax, (%rcx)
movl $0x10, %edi
callq 0x128e2
movq %rax, %rbx
movq %r12, (%rax)
movq %r14, 0x8(%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xac8b(%rip), %rcx      # 0x1cf78
movq %rax, (%rcx)
movl $0x10, %edi
callq 0x128e2
movq %rax, %rbx
movq %r12, (%rax)
movq %r14, 0x8(%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %r14w, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xac5f(%rip), %rcx      # 0x1cf88
movq %rax, (%rcx)
movl $0x30, %edi
callq 0x128e2
movq %rax, %rbx
movl %r14d, (%rax)
movabsq $0x4d414e20746f6f52, %rax # imm = 0x4D414E20746F6F52
movq %rax, 0x4(%rbx)
movabsq $0x65646f4e20454d, %rax # imm = 0x65646F4E20454D
movq %rax, 0xb(%rbx)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xac14(%rip), %rcx      # 0x1cf90
movq %rax, (%rcx)
movl $0x80, %edi
callq 0x128e2
movq %rax, %rbx
movl $0xffffffff, %r12d      # imm = 0xFFFFFFFF
movl %r12d, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x4(%rax)
movq %r14, 0x14(%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xabd4(%rip), %rcx      # 0x1cf98
movq %rax, (%rcx)
movl $0x8, %edi
callq 0x128e2
movq %rax, %rbx
movq %r14, (%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xaba5(%rip), %rcx      # 0x1cfa0
movq %rax, (%rcx)
movl $0x50, %edi
callq 0x128e2
movq %rax, %rbx
movl %r12d, (%rax)
movq %r14, 0x8(%rax)
movq %r14, 0x3c(%rax)
movb %r14b, 0x20(%rax)
movups 0x27fe(%rip), %xmm0     # 0x14c1f
movups %xmm0, 0x10(%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %r14w, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xab5e(%rip), %rcx      # 0x1cfa8
movq %rax, (%rcx)
movl $0x50, %edi
callq 0x128e2
movq %rax, %rbx
movl %r14d, (%rax)
movl %r14d, 0x2c(%rax)
movq %r14, 0x34(%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rax)
movb %r14b, 0x14(%rax)
movups 0x27b9(%rip), %xmm0     # 0x14c30
movups %xmm0, 0x4(%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xab11(%rip), %rcx      # 0x1cfb0
movq %rax, (%rcx)
movl $0x10, %edi
callq 0x128e2
movq %rax, %rbx
movl %r14d, (%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xaae2(%rip), %rcx      # 0x1cfb8
movq %rax, (%rcx)
movl $0x28, %edi
callq 0x128e2
movq %rax, %rbx
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
movq %rax, (%rbx)
movq %r14, 0x10(%rbx)
movl %r14d, 0x18(%rbx)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xaaa6(%rip), %rcx      # 0x1cfc0
movq %rax, (%rcx)
movl $0x10, %edi
callq 0x128e2
movq %rax, %rbx
leaq 0x1bdb(%rip), %rax      # 0x1410c
movq %rax, (%rbx)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xaa70(%rip), %rcx      # 0x1cfc8
movq %rax, (%rcx)
movl $0x40, %edi
callq 0x128e2
movq %rax, %rbx
movl %r12d, (%rax)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%rax)
movups %xmm0, 0x1c(%rax)
movups %xmm0, 0x30(%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xaa32(%rip), %rcx      # 0x1cfd0
movq %rax, (%rcx)
movl $0x18, %edi
callq 0x128e2
movq %rax, %rbx
xorps %xmm0, %xmm0
movups %xmm0, (%rax)
movq %r14, 0x10(%rax)
movl $0x28, %edi
callq 0x128e2
movq %rbx, 0x20(%rax)
movw %bp, (%rax)
movq %r14, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %r15, 0x18(%rax)
leaq 0xa9fc(%rip), %rcx      # 0x1cfd8
movq %rax, (%rcx)
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq