// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_builder_target_s_build
er_t xoico_builder_target_s_build( xoico_builder_target_s* o )
{
    // xoico_builder.x:276:1
    BLM_INIT_LEVEL(0);
    if( !o->root_    ) o->root_    = ( o->parent_ ) ? o->parent_->root_    : o;
    if( !o->compiler ) o->compiler = ( o->parent_ ) ? o->parent_->compiler : NULL;
    
    if( o == o->root_ )
    {
        if( !o->hmap_built_target_ ) o->hmap_built_target_ = bcore_hmap_tpvd_s_create();
    }
    
    ASSERT( o->compiler );
    ASSERT( o->root_ );
    
    tp_t tp_target_name = bentypeof( o->name->sc );
    
    {const xoico_builder_arr_target_s* __a=o->dependencies_target_ ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_builder_target_s* e=__a->data[__i]; BLM_TRY(xoico_builder_target_s_build(e))
    
    }}if( bcore_hmap_tpvd_s_exists(o->root_->hmap_built_target_,tp_target_name ) )
    {
        xoico_builder_target_s* target = (*(((xoico_builder_target_s**)(bcore_hmap_tpvd_s_get(o->root_->hmap_built_target_,tp_target_name )))));
        o->target_index_ = target->target_index_;
        BLM_RETURNV(er_t, 0)
    }
    
    bcore_hmap_tpvd_s_set(o->root_->hmap_built_target_,tp_target_name, ( vd_t )o );
    
    o->target_index_ = -1;
    
    bcore_msg_fa( "XOICO: compiling #<sc_t>\n", o->full_path_.sc );
    if( o->beta_level > 0 ) bcore_wrn_fa( "WARNING! XOICO: Builder runs at beta-level #<sz_t>. Turn level back to zero when beta testing is finished.\n", o->beta_level );
    o->compiler->beta_level = o->beta_level;
    
    {const bcore_arr_st_s* __a=&(o->sources );if(__a)for(sz_t __i=0;__i<__a->size;__i++){const st_s* e=__a->data[__i];
    {BLM_INIT_LEVEL(4);
        x_source* source = ((x_source*)BLM_LEVEL_A_PUSH(4,x_source_create_from_st(e )));
        st_s group_name;BLM_T_INIT_SPUSH(st_s, &group_name);;
        st_s trait_name;BLM_T_INIT_SPUSH(st_s, &trait_name);;
        st_s file_path;BLM_T_INIT_SPUSH(st_s, &file_path);;
    
        tp_t embed_method = 0;
    
        BLM_TRY(x_source_parse_fa(source," " )) // take whitespaces
    
        if( x_source_parse_bl(source,"#?w'group' " ) )
        {
            BLM_TRY(x_source_parse_fa(source,"#name ", (&(group_name)) ))
            if( group_name.size == 0 ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Group name expected in source declaration." ))
            BLM_TRY(x_source_parse_fa(source,"= #name ", (&(trait_name)) ))
            if( trait_name.size == 0 ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Trait name expected in source declaration." ))
        }
    
        while( !x_source_eos(source) )
        {
            char c = x_source_get_char(source);
            if( c == ':' ) break;
            st_s_push_char(&(file_path),c );
        }
    
        if( x_source_parse_bl(source," #?w'embed'" ) )
        {
            if( x_source_parse_bl(source," #?w'as_string'" ) )
            {
                embed_method = TYPEOF_as_string;
            }
            else if( x_source_parse_bl(source," #?w'as_string_without_comments'" ) )
            {
                embed_method = TYPEOF_as_string_without_comments;
            }
            else
            {
                BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Select a valid embedding method (e.g. 'as_string')" ))
            }
        }
    
        if( file_path.size == 0 ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"File name expected in source declaration." ))
    
        if( e->sc[ 0 ] != '/' && o->root_folder )
        {BLM_INIT_LEVEL(5);
            const st_s* tmp = ((st_s*)BLM_LEVEL_T_PUSH(5,st_s,st_s_clone(&(file_path))));
            st_s_copy_fa(&(file_path),"#<sc_t>/#<sc_t>", o->root_folder->sc, tmp->sc );
        BLM_DOWN();}
    
        if( embed_method == 0 )
        {
            if     ( st_s_ends_in_sc(&(file_path),".h" ) ) embed_method = TYPEOF_as_header;
            else if( st_s_ends_in_sc(&(file_path),".x" ) ) embed_method = TYPEOF_as_group;
            else                                    embed_method = TYPEOF_as_string;
        }
    
        if( group_name.size == 0 )
        {
            if( embed_method == TYPEOF_as_header )
            {
                /// nothing here
            }
            else if( embed_method == TYPEOF_as_group )
            {BLM_INIT_LEVEL(7);
                st_s_copy(&(group_name),((st_s*)BLM_LEVEL_T_PUSH(7,st_s,bcore_file_strip_extension(bcore_file_name(file_path.sc ) ))) );
            BLM_DOWN();}
            else
            {
                st_s_copy_sc(&(group_name),bcore_file_name(file_path.sc ) );
            }
            st_s_replace_char_char(&(group_name),'.', '_' );
            st_s_replace_char_char(&(group_name),' ', '_' );
            st_s_copy_sc(&(trait_name),"x_inst" );
        }
    
        ASSERT( o->name );
        ASSERT( o->extension );
        sz_t index = -1;
    
        BLM_TRY(xoico_compiler_s_parse(o->compiler,o->name->sc, o->extension->sc, xoico_builder_target_s_root_output_folder(o), file_path.sc, group_name.sc, trait_name.sc, embed_method, (&(index)) ))
    
        if( o->target_index_ == -1 ) o->target_index_ = index;
        if( index != o->target_index_ )
        {
            BLM_RETURNV(er_t, bcore_error_push_fa(((tp_t)(TYPEOF_general_error)),
                "Building source '#<sc_t>' in target '#<sc_t>':\n"
                "Target index mismatch.\n"
                "This problem occurs when a target defines sources from different directories.\n",
                e->sc,
                o->name->sc
            ))
        }
    BLM_DOWN();}
    
    }}if( o->target_index_ >= 0 )
    {BLM_INIT_LEVEL(1);
        ASSERT( o->target_index_ < o->compiler->size );
        bcore_arr_sz_s* dependencies = ((bcore_arr_sz_s*)BLM_LEVEL_T_PUSH(1,bcore_arr_sz_s,bcore_arr_sz_s_create()));
        {const xoico_builder_arr_target_s* __a=o->dependencies_target_ ;if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_builder_target_s* e=__a->data[__i]; xoico_builder_target_s_push_target_index_to_arr(e,dependencies );}}
    
        xoico_target_s* target = o->compiler->data[ o->target_index_ ];
    
        BLM_TRY(xoico_target_s_set_dependencies(target,dependencies ))
        st_s* signal_handler = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create_fa("#<sc_t>_general_signal_handler", o->name->sc )));
        if( o->signal_handler ) st_s_copy(signal_handler,o->signal_handler );
        st_s_copy_sc(&(target->signal_handler_name),signal_handler->sc );
        target->define_signal_handler = o->define_signal_handler;
        target->readonly = o->readonly;
        xoico_cengine_a_attach( &(target->cengine ), (xoico_cengine*)( ((xoico_cengine*)bcore_fork(o->cengine))));
        target->pre_hash = xoico_builder_target_s_get_hash(o);
        st_s_attach( &(target->copyright_and_license_terms ),  ((st_s*)bcore_fork(o->copyright_and_license_terms)));
    BLM_DOWN();}
    
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %rdi, %rbx
leaq 0x14eec3(%rip), %rax    # 0x19bdd0
movq (%rax), %rsi
leaq 0xb8(%rsp), %r14
movq %r14, %rdi
callq 0xd6675
movq $0x0, 0x10(%r14)
movq 0xa8(%rbx), %rax
testq %rax, %rax
jne 0x4cf51
movq 0xa0(%rbx), %rcx
movq %rbx, %rax
testq %rcx, %rcx
je 0x4cf4a
movq 0xa8(%rcx), %rax
movq %rax, 0xa8(%rbx)
movq 0x98(%rbx), %rcx
testq %rcx, %rcx
jne 0x4cf7b
movq 0xa0(%rbx), %rcx
testq %rcx, %rcx
je 0x4cf72
movq 0x98(%rcx), %rcx
jmp 0x4cf74
xorl %ecx, %ecx
movq %rcx, 0x98(%rbx)
cmpq %rbx, %rax
jne 0x4cf9f
cmpq $0x0, 0xe0(%rbx)
jne 0x4cf9f
xorl %eax, %eax
callq 0xca411
movq %rax, 0xe0(%rbx)
movq 0x98(%rbx), %rcx
testq %rcx, %rcx
jne 0x4cfcd
leaq 0xe069c(%rip), %rdi     # 0x12d647
leaq 0xe4d72(%rip), %rsi     # 0x131d24
leaq 0xe4d77(%rip), %rdx     # 0x131d30
leaq 0xe02d0(%rip), %rcx     # 0x12d290
movl $0x2a1f, %r8d           # imm = 0x2A1F
xorl %eax, %eax
callq 0xbe4ef
cmpq $0x0, 0xa8(%rbx)
jne 0x4d000
leaq 0xe0669(%rip), %rdi     # 0x12d647
leaq 0xe4d68(%rip), %rsi     # 0x131d4d
leaq 0xe4d44(%rip), %rdx     # 0x131d30
leaq 0xe029d(%rip), %rcx     # 0x12d290
movl $0x2a20, %r8d           # imm = 0x2A20
xorl %eax, %eax
callq 0xbe4ef
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rdi
callq 0xd7476
movq %rax, %r15
movq 0xb0(%rbx), %r12
testq %r12, %r12
je 0x4d048
cmpq $0x0, 0x10(%r12)
je 0x4d048
xorl %r13d, %r13d
movq 0x8(%r12), %rax
movq (%rax,%r13,8), %rdi
callq 0x4cef2
testq %rax, %rax
jne 0x4da03
incq %r13
cmpq 0x10(%r12), %r13
jb 0x4d027
movq 0xa8(%rbx), %rax
movq 0xe0(%rax), %rdi
movq %r15, %rsi
callq 0xca9a0
movq 0xa8(%rbx), %rcx
movq 0xe0(%rcx), %rdi
movq %r15, %rsi
testb %al, %al
je 0x4d09e
callq 0xca94f
movq (%rax), %rax
movq 0xd8(%rax), %rax
movq %rax, 0xd8(%rbx)
leaq 0xb8(%rsp), %rdi
callq 0xd6d2c
xorl %r14d, %r14d
jmp 0x4dbfb
movq %rbx, %rdx
callq 0xca6bb
movq $-0x1, 0xd8(%rbx)
movq 0xc0(%rbx), %rsi
leaq 0xe4c97(%rip), %rdi     # 0x131d56
xorl %eax, %eax
callq 0xbe364
movq 0x90(%rbx), %rsi
testq %rsi, %rsi
jle 0x4d0e7
leaq 0xe4c97(%rip), %rdi     # 0x131d70
xorl %eax, %eax
callq 0xbe425
movq 0x90(%rbx), %rsi
movq 0x98(%rbx), %rax
movq %rsi, 0x190(%rax)
cmpq $0x0, 0x68(%rbx)
je 0x4d905
movabsq $-0x7e8ee9b9b4bbaa8, %r13 # imm = 0xF817116464B44558
leaq 0x14fbb7(%rip), %rbp    # 0x19ccc8
xorl %ecx, %ecx
movq %rbx, 0x10(%rsp)
movq 0x60(%rbx), %rax
movq %rcx, 0x40(%rsp)
movq (%rax,%rcx,8), %rbx
leaq 0xe8(%rsp), %rdi
movq %rdi, (%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xd6675
movq (%rsp), %r14
movq $0x4, 0x10(%r14)
movq %rbx, 0x18(%rsp)
movq %rbx, %rdi
callq 0xe4653
movl $0x4, %esi
movq %r14, %rdi
movq %rax, %rdx
callq 0xd6b17
movq %rax, %r12
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
callq 0x109030
movq %r14, %rdi
movabsq $-0x503db0e6e1c2e704, %r15 # imm = 0xAFC24F191E3D18FC
movq %r15, %rsi
movq %rbx, %rdx
callq 0xd68d9
leaq 0x98(%rsp), %rbx
movq %rbx, %rdi
callq 0x109030
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xd68d9
leaq 0x20(%rsp), %rbx
movq %rbx, %rdi
callq 0x109030
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xd68d9
movq %r12, %rdi
leaq 0xf681b(%rip), %rsi     # 0x1439ed
xorl %eax, %eax
callq 0xda80
testq %rax, %rax
jne 0x4dbef
movq (%r12), %r14
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r14, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0x4d23c
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0x4d23c
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0x4d23c
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0x4d245
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x4d261
movq %r13, %rdi
movq %r14, %rsi
callq 0xe9bc5
movq %rax, %r15
movq %rbp, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r15, %rdi
movq %r12, %rsi
leaq 0xe0f5d(%rip), %rdx     # 0x12e1cb
callq 0xffe2b
testb %al, %al
movq 0x10(%rsp), %rbx
je 0x4d2d8
movq %r12, %rdi
leaq 0xe1625(%rip), %rsi     # 0x12e8ab
leaq 0x48(%rsp), %rdx
xorl %eax, %eax
callq 0xda80
testq %rax, %rax
jne 0x4dbef
cmpq $0x0, 0x58(%rsp)
je 0x4dbcc
movq %r12, %rdi
leaq 0xe4b56(%rip), %rsi     # 0x131e07
leaq 0x98(%rsp), %rdx
xorl %eax, %eax
callq 0xda80
testq %rax, %rax
jne 0x4dbef
cmpq $0x0, 0xa8(%rsp)
je 0x4dbd5
movq (%r12), %r14
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r14, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0x4d332
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0x4d332
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0x4d332
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0x4d33b
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x4d357
movq %r13, %rdi
movq %r14, %rsi
callq 0xe9bc5
movq %rax, %r15
movq %rbp, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x40(%r15), %rax
testq %rax, %rax
jne 0x4d373
movq %r15, %rdi
leaq 0xeca1f(%rip), %rsi     # 0x139d89
callq 0xeb49c
movq 0x40(%r15), %rax
movq %r12, %rdi
callq *%rax
testb %al, %al
jne 0x4d431
movq (%r12), %r14
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r14, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0x4d3da
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0x4d3da
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0x4d3da
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0x4d3e3
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x4d3ff
movq %r13, %rdi
movq %r14, %rsi
callq 0xe9bc5
movq %rax, %r15
movq %rbp, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x115fac
movq 0x10(%r15), %rax
movb $0x0, 0x68(%rsp)
movl $0x1, %edx
movq %r12, %rdi
leaq 0x68(%rsp), %rsi
callq *%rax
movb 0x68(%rsp), %al
cmpb $0x3a, %al
je 0x4d431
movsbl %al, %esi
leaq 0x20(%rsp), %rdi
callq 0x10a448
jmp 0x4d2d8
movq (%r12), %r14
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r14, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r14, %rdx
je 0x4d48b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r14, %rdx
je 0x4d48b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r14, %rdx
je 0x4d48b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r14, %rdx
jne 0x4d494
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x4d4b0
movq %r13, %rdi
movq %r14, %rsi
callq 0xe9bc5
movq %rax, %r15
movq %rbp, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r15, %rdi
movq %r12, %rsi
leaq 0xe497e(%rip), %rdx     # 0x131e3b
callq 0xffe2b
movl %eax, %r14d
testb %al, %al
je 0x4d622
movq (%r12), %r15
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r15, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x4d527
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x4d527
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x4d527
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x4d530
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x4d553
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r15, %rsi
callq 0xe9bc5
movq %rax, %r13
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r13, %rdi
movq %r12, %rsi
leaq 0xe48e7(%rip), %rdx     # 0x131e47
callq 0xffe2b
movabsq $-0x4513c06eae19ddf9, %r13 # imm = 0xBAEC3F9151E62207
testb %al, %al
jne 0x4d625
movq (%r12), %r15
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r15, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x4d5d1
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x4d5d1
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x4d5d1
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x4d5da
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x4d5fd
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r15, %rsi
callq 0xe9bc5
movq %rax, %r13
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x115fac
movq %r13, %rdi
movq %r12, %rsi
leaq 0xe484d(%rip), %rdx     # 0x131e57
callq 0xffe2b
movabsq $0x29f0bb6cbdaf87e3, %r13 # imm = 0x29F0BB6CBDAF87E3
testb %al, %al
jne 0x4d625
jmp 0x4dbde
xorl %r13d, %r13d
cmpq $0x0, 0x30(%rsp)
je 0x4db98
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rax
cmpb $0x2f, (%rax)
je 0x4d6b4
cmpq $0x0, 0x18(%rbx)
je 0x4d6b4
movq (%rsp), %rsi
leaq 0x68(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xd6675
movq 0x8(%rsp), %r15
movq $0x5, 0x10(%r15)
leaq 0x20(%rsp), %r12
movq %r12, %rdi
callq 0x10a2da
movl $0x5, %esi
movq %r15, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0xd68a8
movq 0x18(%rbx), %rcx
movq 0x8(%rcx), %rdx
movq 0x8(%rax), %rcx
movq %r12, %rdi
leaq 0xdf9d5(%rip), %rsi     # 0x12d078
xorl %eax, %eax
callq 0x1097fd
leaq 0x8(%rsp), %rdi
callq 0xd6d0d
testb %r14b, %r14b
jne 0x4d703
leaq 0x20(%rsp), %rdi
leaq 0xe26af(%rip), %rsi     # 0x12fd74
callq 0x10a962
movabsq $-0x9b90fe183067569, %r13 # imm = 0xF646F01E7CF98A97
testb %al, %al
jne 0x4d703
leaq 0x20(%rsp), %rdi
leaq 0xe47f1(%rip), %rsi     # 0x131ed5
callq 0x10a962
testb %al, %al
movabsq $-0x4513c06eae19ddf9, %r13 # imm = 0xBAEC3F9151E62207
movabsq $0x56176620137ff69, %rax # imm = 0x56176620137FF69
cmovneq %rax, %r13
cmpq $0x0, 0x58(%rsp)
jne 0x4d7ef
movabsq $-0x9b90fe183067569, %rax # imm = 0xF646F01E7CF98A97
cmpq %rax, %r13
je 0x4d7ad
movabsq $0x56176620137ff69, %rax # imm = 0x56176620137FF69
cmpq %rax, %r13
jne 0x4d796
movq (%rsp), %rsi
leaq 0x68(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0xd6675
movq 0x8(%rsp), %r14
movq $0x7, 0x10(%r14)
movq 0x28(%rsp), %rdi
callq 0xbf4cf
movq %rax, %rdi
callq 0xbf518
movl $0x7, %esi
movq %r14, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0xd68a8
leaq 0x48(%rsp), %rdi
movq %rax, %rsi
callq 0x1094fa
leaq 0x8(%rsp), %rdi
callq 0xd6d0d
jmp 0x4d7ad
movq 0x28(%rsp), %rdi
callq 0xbf4cf
leaq 0x48(%rsp), %rdi
movq %rax, %rsi
callq 0x109612
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
movl $0x2e, %esi
movl $0x5f, %edx
callq 0x10b233
movq %rbx, %rdi
movl $0x20, %esi
movl $0x5f, %edx
callq 0x10b233
leaq 0x98(%rsp), %rdi
leaq 0xf1a37(%rip), %rsi     # 0x13f21c
callq 0x109612
movq 0x10(%rsp), %rbx
cmpq $0x0, 0x8(%rbx)
jne 0x4d81f
leaq 0xdfe4a(%rip), %rdi     # 0x12d647
leaq 0xe46d4(%rip), %rsi     # 0x131ed8
leaq 0xe4525(%rip), %rdx     # 0x131d30
leaq 0xdfa7e(%rip), %rcx     # 0x12d290
movl $0x2a81, %r8d           # imm = 0x2A81
xorl %eax, %eax
callq 0xbe4ef
movq 0x10(%rbx), %rax
testq %rax, %rax
jne 0x4d855
leaq 0xdfe18(%rip), %rdi     # 0x12d647
leaq 0xe46aa(%rip), %rsi     # 0x131ee0
leaq 0xe44f3(%rip), %rdx     # 0x131d30
leaq 0xdfa4c(%rip), %rcx     # 0x12d290
movl $0x2a82, %r8d           # imm = 0x2A82
xorl %eax, %eax
callq 0xbe4ef
movq 0x10(%rbx), %rax
movq $-0x1, 0x68(%rsp)
movq 0x8(%rbx), %rcx
movq 0x98(%rbx), %r14
movq 0x8(%rcx), %r15
movq 0x8(%rax), %r12
movq %rbx, %rdi
callq 0x4c562
movq 0x28(%rsp), %r8
movq 0x50(%rsp), %r9
subq $0x8, %rsp
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
leaq 0x70(%rsp), %rax
pushq %rax
pushq %r13
pushq 0xb8(%rsp)
callq 0x30f30
addq $0x20, %rsp
testq %rax, %rax
jne 0x4dbef
movq 0xd8(%rbx), %rax
movq 0x68(%rsp), %rcx
cmpq $-0x1, %rax
je 0x4d8da
cmpq %rax, %rcx
movabsq $-0x7e8ee9b9b4bbaa8, %r13 # imm = 0xF817116464B44558
je 0x4d8eb
jmp 0x4dba1
movq %rcx, 0xd8(%rbx)
movabsq $-0x7e8ee9b9b4bbaa8, %r13 # imm = 0xF817116464B44558
movq %rsp, %rdi
callq 0xd6d0d
movq 0x40(%rsp), %rcx
incq %rcx
cmpq 0x68(%rbx), %rcx
jb 0x4d118
cmpq $0x0, 0xd8(%rbx)
js 0x4d089
leaq 0xe8(%rsp), %r14
movq %r14, 0x68(%rsp)
leaq 0xb8(%rsp), %rsi
movq %r14, %rdi
callq 0xd6675
movq $0x1, 0x10(%r14)
movq 0x98(%rbx), %rax
movq 0xd8(%rbx), %rcx
cmpq 0x10(%rax), %rcx
jb 0x4d975
leaq 0xdfcf4(%rip), %rdi     # 0x12d647
leaq 0xe4628(%rip), %rsi     # 0x131f82
leaq 0xe43cf(%rip), %rdx     # 0x131d30
leaq 0xdf928(%rip), %rcx     # 0x12d290
movl $0x2a96, %r8d           # imm = 0x2A96
xorl %eax, %eax
callq 0xbe4ef
xorl %eax, %eax
callq 0xb6338
leaq 0xe8(%rsp), %rdi
movabsq $0x3d19b4fc81c235e4, %rdx # imm = 0x3D19B4FC81C235E4
movl $0x1, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r14
movq 0xb0(%rbx), %r15
testq %r15, %r15
je 0x4d9cd
cmpq $0x0, 0x10(%r15)
je 0x4d9cd
xorl %r12d, %r12d
movq 0x8(%r15), %rax
movq (%rax,%r12,8), %rdi
movq %r14, %rsi
callq 0x4c6a0
incq %r12
cmpq 0x10(%r15), %r12
jb 0x4d9b4
movq 0x98(%rbx), %rax
movq 0xd8(%rbx), %rcx
movq 0x8(%rax), %rax
movq (%rax,%rcx,8), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x2decb
testq %rax, %rax
je 0x4da13
movq %rax, %r14
leaq 0xe8(%rsp), %rdi
jmp 0x4dbf6
movq %rax, %r14
leaq 0xb8(%rsp), %rdi
jmp 0x4dbf6
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rsi
leaq 0xe4585(%rip), %rdi     # 0x131fa7
xorl %eax, %eax
callq 0x109dca
leaq 0xe8(%rsp), %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
xorl %esi, %esi
movq %rax, %rcx
callq 0xd68a8
movq %rax, %r14
movq 0x78(%rbx), %rsi
testq %rsi, %rsi
je 0x4da59
movq %r14, %rdi
callq 0x1094fa
leaq 0xb0(%r12), %rdi
movq 0x8(%r14), %rsi
callq 0x109612
movb 0x80(%rbx), %al
movb %al, 0xd0(%r12)
movb 0x20(%rbx), %al
movb %al, 0xfa(%r12)
movq 0x88(%rbx), %rdi
callq 0xbe7e4
movq %rax, %r15
testq %rax, %rax
je 0x4daa9
movq (%r15), %rsi
movabsq $0x47e6f800e5d85e41, %rdi # imm = 0x47E6F800E5D85E41
callq 0x116fb0
movq 0x130(%r12), %r14
testq %r14, %r14
je 0x4db56
movq (%r14), %r13
leaq 0x14e9a4(%rip), %rax    # 0x19c468
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %r13, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x4db1a
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x4db1a
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x4db1a
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x4db23
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x4db4a
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r13, %rsi
callq 0xe9bc5
movq %rax, %rbp
leaq 0x14e929(%rip), %rdi    # 0x19c468
movq %r13, %rsi
movq %rax, %rdx
callq 0x115fac
movq %rbp, %rdi
movq %r14, %rsi
callq *0xb8(%rbp)
movq %r15, 0x130(%r12)
movq %rbx, %rdi
callq 0x4c6f7
movq %rax, 0x128(%r12)
movq 0x30(%rbx), %rdi
callq 0xbe7e4
movq %rax, %rbx
movq 0x48(%r12), %rdi
callq 0x10a028
movq %rbx, 0x48(%r12)
leaq 0x68(%rsp), %rdi
callq 0xd6d0d
jmp 0x4d089
leaq 0xe430c(%rip), %rsi     # 0x131eab
jmp 0x4dbe5
movq 0x18(%rsp), %rax
movq 0x8(%rax), %rdx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rcx
leaq 0xe4334(%rip), %rsi     # 0x131eed
movabsq $0x4d9e984c5b21faea, %rdi # imm = 0x4D9E984C5B21FAEA
xorl %eax, %eax
callq 0xbec3c
jmp 0x4dbef
leaq 0xe4209(%rip), %rsi     # 0x131ddc
jmp 0x4dbe5
leaq 0xe4234(%rip), %rsi     # 0x131e10
jmp 0x4dbe5
leaq 0xe4293(%rip), %rsi     # 0x131e78
movq %r12, %rdi
xorl %eax, %eax
callq 0xde10
movq %rax, %r14
movq (%rsp), %rdi
callq 0xd6d2c
movq %r14, %rax
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq