// File: /workspace/github_c_makefile_star2_O1/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 $0x128, %rsp            # imm = 0x128
movq %rdi, %rbx
leaq 0x156965(%rip), %rax    # 0x1a8dd0
movq (%rax), %rsi
leaq 0xc8(%rsp), %r14
movq %r14, %rdi
callq 0xe0431
movq $0x0, 0x10(%r14)
cmpq $0x0, 0xa8(%rbx)
jne 0x524ad
movq 0xa0(%rbx), %rcx
movq %rbx, %rax
testq %rcx, %rcx
je 0x524a6
movq 0xa8(%rcx), %rax
movq %rax, 0xa8(%rbx)
cmpq $0x0, 0x98(%rbx)
jne 0x524d5
movq 0xa0(%rbx), %rax
testq %rax, %rax
je 0x524cc
movq 0x98(%rax), %rax
jmp 0x524ce
xorl %eax, %eax
movq %rax, 0x98(%rbx)
cmpq %rbx, 0xa8(%rbx)
jne 0x524f6
cmpq $0x0, 0xe0(%rbx)
jne 0x524f6
xorl %eax, %eax
callq 0xd4335
movq %rax, 0xe0(%rbx)
cmpq $0x0, 0x98(%rbx)
jne 0x52529
leaq 0xe6140(%rip), %rdi     # 0x138647
leaq 0xea816(%rip), %rsi     # 0x13cd24
leaq 0xea81b(%rip), %rdx     # 0x13cd30
leaq 0xe5d74(%rip), %rcx     # 0x138290
movl $0x2a1f, %r8d           # imm = 0x2A1F
xorl %eax, %eax
callq 0xc8053
cmpq $0x0, 0xa8(%rbx)
jne 0x5255c
leaq 0xe610d(%rip), %rdi     # 0x138647
leaq 0xea80c(%rip), %rsi     # 0x13cd4d
leaq 0xea7e8(%rip), %rdx     # 0x13cd30
leaq 0xe5d41(%rip), %rcx     # 0x138290
movl $0x2a20, %r8d           # imm = 0x2A20
xorl %eax, %eax
callq 0xc8053
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rdi
callq 0xe1270
movq %rax, %r15
movq 0xb0(%rbx), %r14
testq %r14, %r14
movq %rbx, 0x28(%rsp)
je 0x525c8
cmpq $0x0, 0x10(%r14)
sete %bpl
je 0x525cb
xorl %ebx, %ebx
leaq 0xc8(%rsp), %r12
movq 0x8(%r14), %rax
movq (%rax,%rbx,8), %rdi
callq 0x52450
movq %rax, %r13
testq %rax, %rax
je 0x525b4
movq %r12, %rdi
callq 0xe0b30
movq %r13, 0x10(%rsp)
testq %r13, %r13
jne 0x525cb
incq %rbx
cmpq 0x10(%r14), %rbx
setae %bpl
jb 0x52592
jmp 0x525cb
movb $0x1, %bpl
testb $0x1, %bpl
je 0x53015
movq 0x28(%rsp), %rbx
movq 0xa8(%rbx), %rax
movq 0xe0(%rax), %rdi
movq %r15, %rsi
callq 0xd4857
movq 0xa8(%rbx), %rcx
movq 0xe0(%rcx), %rdi
movq %r15, %rsi
testb %al, %al
je 0x5262f
callq 0xd4806
movq (%rax), %rax
movq 0xd8(%rax), %rax
movq %rax, 0xd8(%rbx)
leaq 0xc8(%rsp), %rdi
callq 0xe0b30
xorl %eax, %eax
jmp 0x5301a
movq %rbx, %rdx
callq 0xd45e4
movq $-0x1, 0xd8(%rbx)
movq 0xc0(%rbx), %rsi
leaq 0xea706(%rip), %rdi     # 0x13cd56
xorl %eax, %eax
callq 0xc7ec8
movq 0x90(%rbx), %rsi
testq %rsi, %rsi
jle 0x52671
leaq 0xea706(%rip), %rdi     # 0x13cd70
xorl %eax, %eax
callq 0xc7f89
movq 0x90(%rbx), %rax
movq 0x98(%rbx), %rcx
movq %rax, 0x190(%rcx)
cmpq $0x0, 0x68(%rbx)
setne %al
je 0x53011
leaq 0x15762d(%rip), %rbp    # 0x1a9cc8
xorl %r14d, %r14d
movb %al, 0x7(%rsp)
movq 0x60(%rbx), %rax
movq (%rax,%r14,8), %rbx
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x8(%rsp)
leaq 0xc8(%rsp), %rsi
callq 0xe0431
movq 0x8(%rsp), %r12
movq $0x4, 0x10(%r12)
movq %rbx, 0x30(%rsp)
movq %rbx, %rdi
callq 0xee7cd
movl $0x4, %esi
movq %r12, %rdi
movq %rax, %rdx
callq 0xe0900
movq %rax, %r15
leaq 0x88(%rsp), %rbx
movq %rbx, %rdi
callq 0x113f7c
movq %r12, %rdi
movabsq $-0x503db0e6e1c2e704, %r13 # imm = 0xAFC24F191E3D18FC
movq %r13, %rsi
movq %rbx, %rdx
callq 0xe06ab
leaq 0xa8(%rsp), %rbx
movq %rbx, %rdi
callq 0x113f7c
movq %r12, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0xe06ab
leaq 0x38(%rsp), %rbx
movq %rbx, %rdi
callq 0x113f7c
movq %r12, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0xe06ab
movq %r15, %rdi
leaq 0xfc250(%rip), %rsi     # 0x14e9ad
xorl %eax, %eax
callq 0xda10
movq %rax, %r12
testq %rax, %rax
je 0x5277b
movq 0x8(%rsp), %rdi
callq 0xe0b30
movq %r12, 0x10(%rsp)
testq %r12, %r12
je 0x5278d
xorl %r12d, %r12d
movq 0x28(%rsp), %rbx
jmp 0x52f61
movq (%r15), %r12
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
movq 0x28(%rsp), %rbx
je 0x527ef
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x527ef
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x527ef
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x52e17
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x5281b
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
movq %rbp, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r15, %rsi
leaq 0xe69a3(%rip), %rdx     # 0x1391cb
callq 0x10aa16
testb %al, %al
je 0x528c5
movq %r15, %rdi
leaq 0xe706c(%rip), %rsi     # 0x1398ab
leaq 0x88(%rsp), %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %r12
testq %rax, %rax
je 0x52865
movq 0x8(%rsp), %rdi
callq 0xe0b30
movq %r12, 0x10(%rsp)
testq %r12, %r12
jne 0x52f5e
cmpq $0x0, 0x98(%rsp)
je 0x52def
movq %r15, %rdi
leaq 0xea580(%rip), %rsi     # 0x13ce07
leaq 0xa8(%rsp), %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %r12
testq %rax, %rax
je 0x528ad
movq 0x8(%rsp), %rdi
callq 0xe0b30
movq %r12, 0x10(%rsp)
testq %r12, %r12
jne 0x52f5e
cmpq $0x0, 0xb8(%rsp)
je 0x52ff3
movq (%r15), %r12
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x52922
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x52922
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x52922
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x52a28
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x5294e
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
movq %rbp, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x40(%r13)
jne 0x52964
movq %r13, %rdi
leaq 0xf25b2(%rip), %rsi     # 0x144f11
callq 0xf592c
movq %r15, %rdi
callq *0x40(%r13)
testb %al, %al
jne 0x52a35
movq (%r15), %r12
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x529cc
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x529cc
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x529cc
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x52a30
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x529f8
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
movq %rbp, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movb $0x0, 0x58(%rsp)
movl $0x1, %edx
movq %r15, %rdi
leaq 0x58(%rsp), %rsi
callq *0x10(%r13)
movb 0x58(%rsp), %al
cmpb $0x3a, %al
je 0x52a35
movsbl %al, %esi
leaq 0x38(%rsp), %rdi
callq 0x115381
jmp 0x528c5
xorl %r13d, %r13d
jmp 0x52926
xorl %r13d, %r13d
jmp 0x529d0
movq (%r15), %r12
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x52a92
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x52a92
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x52a92
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x52fe3
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x52abe
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
movq %rbp, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r15, %rsi
leaq 0xea370(%rip), %rdx     # 0x13ce3b
callq 0x10aa16
movl %eax, %r13d
testb %al, %al
je 0x52c52
movb %r13b, 0x18(%rsp)
movq (%r15), %r12
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x52b3d
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x52b3d
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x52b3d
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x52feb
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x52b69
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
movq %rbp, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r15, %rsi
leaq 0xea2d1(%rip), %rdx     # 0x13ce47
callq 0x10aa16
movabsq $-0x4513c06eae19ddf9, %r12 # imm = 0xBAEC3F9151E62207
testb %al, %al
movb 0x18(%rsp), %r13b
jne 0x52c55
movq (%r15), %r12
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x52bef
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x52bef
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x52bef
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x53005
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x52c1b
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
movq %rbp, %rdi
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %r15, %rsi
leaq 0xea22f(%rip), %rdx     # 0x13ce57
callq 0x10aa16
movabsq $0x29f0bb6cbdaf87e3, %r12 # imm = 0x29F0BB6CBDAF87E3
testb %al, %al
movb 0x18(%rsp), %r13b
jne 0x52c55
xorl %r12d, %r12d
movq %r15, %rdi
leaq 0xea22b(%rip), %rsi     # 0x13ce78
jmp 0x52dfc
xorl %r12d, %r12d
cmpq $0x0, 0x48(%rsp)
je 0x52de0
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rax
cmpb $0x2f, (%rax)
je 0x52cf3
cmpq $0x0, 0x18(%rbx)
je 0x52cf3
movq 0x8(%rsp), %rsi
leaq 0x58(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xe0431
movq 0x20(%rsp), %r15
movq $0x5, 0x10(%r15)
movq %r12, 0x18(%rsp)
leaq 0x38(%rsp), %r12
movq %r12, %rdi
callq 0x115213
movl $0x5, %esi
movq %r15, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0xe0676
movq 0x18(%rbx), %rcx
movq 0x8(%rcx), %rdx
movq 0x8(%rax), %rcx
movq %r12, %rdi
movq 0x18(%rsp), %r12
leaq 0xe5396(%rip), %rsi     # 0x138078
xorl %eax, %eax
callq 0x114736
leaq 0x20(%rsp), %rdi
callq 0xe0b11
testb %r13b, %r13b
jne 0x52d42
leaq 0x38(%rsp), %rdi
leaq 0xe8070(%rip), %rsi     # 0x13ad74
callq 0x115888
movabsq $-0x9b90fe183067569, %r12 # imm = 0xF646F01E7CF98A97
testb %al, %al
jne 0x52d42
leaq 0x38(%rsp), %rdi
leaq 0xea1b2(%rip), %rsi     # 0x13ced5
callq 0x115888
testb %al, %al
movabsq $-0x4513c06eae19ddf9, %r12 # imm = 0xBAEC3F9151E62207
movabsq $0x56176620137ff69, %rax # imm = 0x56176620137FF69
cmovneq %rax, %r12
cmpq $0x0, 0x98(%rsp)
jne 0x52e7e
movabsq $-0x9b90fe183067569, %rax # imm = 0xF646F01E7CF98A97
cmpq %rax, %r12
je 0x52e39
movabsq $0x56176620137ff69, %rax # imm = 0x56176620137FF69
cmpq %rax, %r12
jne 0x52e1f
movq 0x8(%rsp), %rsi
leaq 0x58(%rsp), %rdi
movq %rdi, 0x20(%rsp)
callq 0xe0431
movq 0x20(%rsp), %r15
movq $0x7, 0x10(%r15)
movq 0x40(%rsp), %rdi
callq 0xc9049
movq %rax, %rdi
callq 0xc9092
movl $0x7, %esi
movq %r15, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0xe0676
leaq 0x88(%rsp), %rdi
movq %rax, %rsi
callq 0x114440
leaq 0x20(%rsp), %rdi
callq 0xe0b11
jmp 0x52e39
xorl %r12d, %r12d
movq %r15, %rdi
leaq 0xea0be(%rip), %rsi     # 0x13ceab
jmp 0x52dfc
xorl %r12d, %r12d
movq %r15, %rdi
leaq 0xe9fe0(%rip), %rsi     # 0x13cddc
xorl %eax, %eax
callq 0xddb2
movq %rax, 0x10(%rsp)
movq 0x8(%rsp), %rdi
callq 0xe0b30
jmp 0x52f61
xorl %r13d, %r13d
jmp 0x527f3
movq 0x40(%rsp), %rdi
callq 0xc9049
leaq 0x88(%rsp), %rdi
movq %rax, %rsi
callq 0x11454b
leaq 0x88(%rsp), %rbx
movq %rbx, %rdi
movl $0x2e, %esi
movl $0x5f, %edx
callq 0x116140
movq %rbx, %rdi
movl $0x20, %esi
movl $0x5f, %edx
callq 0x116140
leaq 0xa8(%rsp), %rdi
leaq 0xf7530(%rip), %rsi     # 0x14a3a4
callq 0x11454b
movq 0x28(%rsp), %rbx
cmpq $0x0, 0x8(%rbx)
jne 0x52eae
leaq 0xe57bb(%rip), %rdi     # 0x138647
leaq 0xea045(%rip), %rsi     # 0x13ced8
leaq 0xe9e96(%rip), %rdx     # 0x13cd30
leaq 0xe53ef(%rip), %rcx     # 0x138290
movl $0x2a81, %r8d           # imm = 0x2A81
xorl %eax, %eax
callq 0xc8053
movq %r12, 0x18(%rsp)
cmpq $0x0, 0x10(%rbx)
jne 0x52ee3
leaq 0xe5786(%rip), %rdi     # 0x138647
leaq 0xea018(%rip), %rsi     # 0x13cee0
leaq 0xe9e61(%rip), %rdx     # 0x13cd30
leaq 0xe53ba(%rip), %rcx     # 0x138290
movl $0x2a82, %r8d           # imm = 0x2A82
xorl %eax, %eax
callq 0xc8053
movq $-0x1, 0x58(%rsp)
movq 0x98(%rbx), %r15
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
movq 0x8(%rax), %r12
movq 0x8(%rcx), %r13
movq %rbx, %rdi
callq 0x51a0d
movq 0x40(%rsp), %r8
movq 0x90(%rsp), %r9
subq $0x8, %rsp
movq %r15, %rdi
movq %r12, %rsi
movq %r13, %rdx
movq %rax, %rcx
leaq 0x60(%rsp), %rax
pushq %rax
pushq 0x28(%rsp)
pushq 0xc8(%rsp)
callq 0x33031
addq $0x20, %rsp
movq %rax, %r15
testq %rax, %rax
je 0x52f59
movq 0x8(%rsp), %rdi
callq 0xe0b30
movq %r15, 0x10(%rsp)
testq %r15, %r15
je 0x52f7f
xorl %r12d, %r12d
testb %r12b, %r12b
je 0x5300d
incq %r14
cmpq 0x68(%rbx), %r14
setb %al
jb 0x5269e
jmp 0x53011
cmpq $-0x1, 0xd8(%rbx)
jne 0x52f95
movq 0x58(%rsp), %rax
movq %rax, 0xd8(%rbx)
movq 0x58(%rsp), %rax
cmpq 0xd8(%rbx), %rax
jne 0x52fb2
leaq 0x8(%rsp), %rdi
callq 0xe0b11
movb $0x1, %r12b
jmp 0x52f61
movq 0x30(%rsp), %rax
movq 0x8(%rax), %rdx
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rcx
xorl %r12d, %r12d
movabsq $0x4d9e984c5b21faea, %rdi # imm = 0x4D9E984C5B21FAEA
leaq 0xe9f16(%rip), %rsi     # 0x13ceed
xorl %eax, %eax
callq 0xc87b0
jmp 0x52e03
xorl %r13d, %r13d
jmp 0x52a96
xorl %r13d, %r13d
jmp 0x52b41
xorl %r12d, %r12d
movq %r15, %rdi
leaq 0xe9e10(%rip), %rsi     # 0x13ce10
jmp 0x52dfc
xorl %r13d, %r13d
jmp 0x52bf3
movb 0x7(%rsp), %al
testb $0x1, %al
je 0x5302c
movq 0x10(%rsp), %rax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpq $0x0, 0xd8(%rbx)
js 0x5261b
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x58(%rsp)
leaq 0xc8(%rsp), %rsi
callq 0xe0431
movq 0x58(%rsp), %r12
movq $0x1, 0x10(%r12)
movq 0x98(%rbx), %rax
movq 0xd8(%rbx), %rcx
cmpq 0x10(%rax), %rcx
jb 0x5309f
leaq 0xe55ca(%rip), %rdi     # 0x138647
leaq 0xe9efe(%rip), %rsi     # 0x13cf82
leaq 0xe9ca5(%rip), %rdx     # 0x13cd30
leaq 0xe51fe(%rip), %rcx     # 0x138290
movl $0x2a96, %r8d           # imm = 0x2A96
xorl %eax, %eax
callq 0xc8053
xorl %eax, %eax
callq 0xbfd91
movabsq $0x3d19b4fc81c235e4, %rdx # imm = 0x3D19B4FC81C235E4
movl $0x1, %esi
movq %r12, %rdi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r13
movq %rbx, %r15
movq 0xb0(%rbx), %rbx
testq %rbx, %rbx
je 0x530f5
cmpq $0x0, 0x10(%rbx)
je 0x530f5
xorl %r14d, %r14d
movq 0x8(%rbx), %rax
movq (%rax,%r14,8), %rdi
movq %r13, %rsi
callq 0x51b54
incq %r14
cmpq 0x10(%rbx), %r14
jb 0x530dc
movq %r15, %rbx
movq 0x98(%r15), %rax
movq 0xd8(%r15), %rcx
movq 0x8(%rax), %rax
movq (%rax,%rcx,8), %r15
movq %r15, %rdi
movq %r13, %rsi
callq 0x2fdd4
movq %rax, %r13
testq %rax, %rax
movq 0x10(%rsp), %rax
je 0x53133
movq 0x58(%rsp), %rdi
callq 0xe0b30
movq %r13, %rax
testq %r13, %r13
jne 0x5301a
movq 0x8(%rbx), %rax
movq 0x8(%rax), %rsi
leaq 0xe9e5c(%rip), %rdi     # 0x13cfa7
xorl %eax, %eax
callq 0x114d03
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %r12, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r14
movq 0x78(%rbx), %rsi
testq %rsi, %rsi
je 0x5317d
movq %r14, %rdi
callq 0x114440
leaq 0xb0(%r15), %rdi
movq 0x8(%r14), %rsi
callq 0x11454b
movb 0x80(%rbx), %al
movb %al, 0xd0(%r15)
movb 0x20(%rbx), %al
movb %al, 0xfa(%r15)
movq 0x88(%rbx), %rdi
callq 0xc8348
movq %rax, %r14
testq %rax, %rax
je 0x531ca
movq (%r14), %rsi
movabsq $0x47e6f800e5d85e41, %rdi # imm = 0x47E6F800E5D85E41
callq 0x1222bd
movq 0x130(%r15), %r12
testq %r12, %r12
je 0x53277
movq (%r12), %r13
leaq 0x156283(%rip), %rax    # 0x1a9468
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 0x5323b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x5323b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x5323b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x532b5
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x5326b
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r13, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x156208(%rip), %rdi    # 0x1a9468
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbp, %rdi
movq %r12, %rsi
callq *0xb8(%rbp)
movq %r14, 0x130(%r15)
movq %rbx, %rdi
callq 0x51bab
movq %rax, 0x128(%r15)
movq 0x30(%rbx), %rdi
callq 0xc8348
movq %rax, %rbx
movq 0x48(%r15), %rdi
callq 0x114f61
movq %rbx, 0x48(%r15)
leaq 0x58(%rsp), %rdi
callq 0xe0b11
jmp 0x5261b
xorl %ebp, %ebp
jmp 0x5323f