// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x70, %rsp
movl $0x10, %edi
callq 0x16e40
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq $-0x1, (%rax)
movq -0x58(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9d6a(%rip), %rax      # 0x20140
movq %rcx, (%rax)
movl $0x10, %edi
callq 0x16e40
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
movq $-0x1, (%rax)
movq -0x68(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x68(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9d3d(%rip), %rax      # 0x20150
movq %rcx, (%rax)
movl $0x10, %edi
callq 0x16e40
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rax
movq $-0x1, (%rax)
movq -0x60(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x60(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9cf8(%rip), %rax      # 0x20148
movq %rcx, (%rax)
movl $0x10, %edi
callq 0x16e40
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rax
movq $-0x1, (%rax)
movq -0x70(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x70(%rbp), %rdi
movl $0x1, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9cc8(%rip), %rax      # 0x20158
movq %rcx, (%rax)
movl $0x30, %edi
callq 0x16e40
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl $0x0, (%rax)
movq -0x8(%rbp), %rdi
addq $0x4, %rdi
leaq 0x2754(%rip), %rsi      # 0x18c0e
callq 0x9060
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9c8c(%rip), %rax      # 0x20160
movq %rcx, (%rax)
movl $0x80, %edi
callq 0x16e40
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x10(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x14(%rax)
movq -0x10(%rbp), %rax
movl $0x0, 0x18(%rax)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9c2c(%rip), %rax      # 0x20168
movq %rcx, (%rax)
movl $0x8, %edi
callq 0x16e40
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl $0x0, (%rax)
movq -0x18(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9bf9(%rip), %rax      # 0x20170
movq %rcx, (%rax)
movl $0x50, %edi
callq 0x16e40
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x20(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x20(%rbp), %rax
movl $0x0, 0x3c(%rax)
movq -0x20(%rbp), %rax
movl $0x0, 0x40(%rax)
movq -0x20(%rbp), %rdi
addq $0x10, %rdi
leaq 0x265a(%rip), %rsi      # 0x18c1d
callq 0x9060
movq -0x20(%rbp), %rdi
movl $0x1, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9b98(%rip), %rax      # 0x20178
movq %rcx, (%rax)
movl $0x50, %edi
callq 0x16e40
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movl $0x0, (%rax)
movq -0x28(%rbp), %rax
movl $0x0, 0x2c(%rax)
movq -0x28(%rbp), %rax
movl $0x0, 0x34(%rax)
movq -0x28(%rbp), %rax
movl $0x0, 0x38(%rax)
movq -0x28(%rbp), %rax
movq $0x0, 0x40(%rax)
movq -0x28(%rbp), %rax
movl $0x0, 0x48(%rax)
movq -0x28(%rbp), %rax
movl $0x0, 0x4c(%rax)
movq -0x28(%rbp), %rdi
addq $0x4, %rdi
leaq 0x25e1(%rip), %rsi      # 0x18c2e
callq 0x9060
movq -0x28(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9b19(%rip), %rax      # 0x20180
movq %rcx, (%rax)
movl $0x10, %edi
callq 0x16e40
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movl $0x0, (%rax)
movq -0x30(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9af1(%rip), %rax      # 0x20188
movq %rcx, (%rax)
movl $0x28, %edi
callq 0x16e40
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x38(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x38(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x38(%rbp), %rax
movl $0x0, 0x18(%rax)
movq -0x38(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9aa7(%rip), %rax      # 0x20190
movq %rcx, (%rax)
movl $0x10, %edi
callq 0x16e40
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
leaq 0x1abb(%rip), %rcx      # 0x181c0
movq %rcx, (%rax)
movq -0x40(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9a7b(%rip), %rax      # 0x20198
movq %rcx, (%rax)
movl $0x40, %edi
callq 0x16e40
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rax
movl $0xffffffff, (%rax)     # imm = 0xFFFFFFFF
movq -0x48(%rbp), %rax
movl $0x0, 0x10(%rax)
movq -0x48(%rbp), %rax
movl $0x0, 0x14(%rax)
movq -0x48(%rbp), %rax
movl $0x0, 0x18(%rax)
movq -0x48(%rbp), %rax
movl $0x0, 0x1c(%rax)
movq -0x48(%rbp), %rax
movl $0x0, 0x20(%rax)
movq -0x48(%rbp), %rax
movl $0x0, 0x24(%rax)
movq -0x48(%rbp), %rax
movl $0x0, 0x28(%rax)
movq -0x48(%rbp), %rax
movq $0x0, 0x30(%rax)
movq -0x48(%rbp), %rax
movl $0x0, 0x38(%rax)
movq -0x48(%rbp), %rax
movl $0x0, 0x3c(%rax)
movq -0x48(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x99e4(%rip), %rax      # 0x201a0
movq %rcx, (%rax)
movl $0x18, %edi
callq 0x16e40
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rax
movl $0x0, (%rax)
movq -0x50(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x50(%rbp), %rax
movl $0x0, 0x4(%rax)
movq -0x50(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x50(%rbp), %rdi
xorl %esi, %esi
callq 0x16320
movq %rax, %rcx
leaq 0x9999(%rip), %rax      # 0x201a8
movq %rcx, (%rax)
addq $0x70, %rsp
popq %rbp
retq
nopl (%rax,%rax)