// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_feature_s_setup_functions
er_t xoico_feature_s_setup_functions( xoico_feature_s* o, const xoico_host* host )
{
    // xoico_feature.x:170:1
    BLM_INIT_LEVEL(0);
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    sc_t sc_name = xoico_compiler_s_nameof(compiler,o->signature.name );
    sc_t sc_obj_type = xoico_compiler_s_nameof(compiler,xoico_host_a_obj_type(host) );
    sc_t sc_spect_name = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,xoico_host_a_create_spect_name(host)))->sc;
    
    st_s* st_ret_typespec = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create()));
    
    bl_t has_ret = xoico_signature_s_returns_a_value(&(o->signature));
    BLM_TRY(xoico_signature_s_expand_ret_x(&(o->signature),host,((x_sink*)( st_ret_typespec ))))
    
    sc_t sc_ret_typespec = st_ret_typespec->sc;
    bl_t flag_const = o->signature.arg_o->typespec.access_class == TYPEOF_const;
    bl_t flag_discardable = o->signature.arg_o->typespec.access_class == TYPEOF_discardable;
    
    bl_t always_defined = ( o->strict || o->default_body || o->st_default_func_name.size > 0 );
    
    if( o->flag_a )
    {BLM_INIT_LEVEL(1);
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        st_s_push_fa(st,"#<sc_t> a_#<sc_t>( ", sc_ret_typespec, sc_name );
        st_s_push_fa(st,flag_const ? "c" : flag_discardable ? "d" : "m" );
        st_s_push_fa(st," @* o" );
        BLM_TRY(xoico_args_s_expand_x(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," ) { verbatim_C{" );
        st_s_push_fa(st,"const #<sc_t>* p = #<sc_t>_get_aware( o ); ", sc_spect_name, sc_spect_name );
        st_s_push_fa(st,"assert( p->#<sc_t> ); ", sc_name );
        if( has_ret ) st_s_push_fa(st,"return " );
        st_s_push_fa(st,"p->#<sc_t>( o", sc_name );
        BLM_TRY(xoico_args_s_expand_name(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," ); } };" );
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
    
        xoico_func_s* func_to_group = xoico_func_s_clone(func);
        xoico_body_s_attach( &(func_to_group->body ),  NULL);
        BLM_TRY(xoico_func_s_freeze_global_name(func_to_group,host )) // set global name before local name is changed
        func_to_group->name = o->signature.name;
        func_to_group->expandable = false;
        x_array_push_d(((x_array*)(&(o->funcs_return_to_group))),((x_inst*)(func_to_group )));
    BLM_DOWN();}
    
    if( o->flag_a )
    {BLM_INIT_LEVEL(1);
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        st_s_push_fa(st,"bl_t defines_#<sc_t>( c @* o ) ", sc_name );
        if( always_defined )
        {
            st_s_push_fa(st,"{ return true; };", sc_name );
        }
        else
        {
            st_s_push_fa(st,"{ verbatim_C { return #<sc_t>_get_aware( o )->#<sc_t> != NULL; } };", sc_spect_name, sc_name );
        }
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
    
        xoico_func_s* func_to_group = xoico_func_s_clone(func);
        xoico_body_s_attach( &(func_to_group->body ),  NULL);
        func_to_group->expandable = false;
        x_array_push_d(((x_array*)(&(o->funcs_return_to_group))),((x_inst*)(func_to_group )));
    BLM_DOWN();}
    
    if( o->flag_t )
    {BLM_INIT_LEVEL(1);
        /// new
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        st_s_push_fa(st,"#<sc_t> t_#<sc_t>( ", sc_ret_typespec, sc_name );
        st_s_push_fa(st,flag_const ? "c" : flag_discardable ? "d" : "m" );
        st_s_push_fa(st," #<sc_t>* o, tp_t t", sc_obj_type );
        BLM_TRY(xoico_args_s_expand_x(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," ) { verbatim_C{" );
        st_s_push_fa(st,"const #<sc_t>* p = #<sc_t>_get_typed( t ); ", sc_spect_name, sc_spect_name );
        st_s_push_fa(st,"assert( p->#<sc_t> ); ", sc_name );
        if( has_ret ) st_s_push_fa(st,"return " );
        st_s_push_fa(st,"p->#<sc_t>( o", sc_name );
        BLM_TRY(xoico_args_s_expand_name(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," ); } };" );
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
    
        xoico_func_s* func_to_group = xoico_func_s_clone(func);
        xoico_body_s_attach( &(func_to_group->body ),  NULL);
        func_to_group->expandable = false;
        x_array_push_d(((x_array*)(&(o->funcs_return_to_group))),((x_inst*)(func_to_group )));
    BLM_DOWN();}
    
    if( o->flag_t )
    {BLM_INIT_LEVEL(1);
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        st_s_push_fa(st,"bl_t t_defines_#<sc_t>( tp_t t ) ", sc_name );
        if( always_defined )
        {
            st_s_push_fa(st,"{ return true; };", sc_name );
        }
        else
        {
            st_s_push_fa(st,"{ verbatim_C{ return #<sc_t>_get_typed( t )->#<sc_t> != NULL; } };", sc_spect_name, sc_name );
        }
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
    
        xoico_func_s* func_to_group = xoico_func_s_clone(func);
        xoico_body_s_attach( &(func_to_group->body ),  NULL);
        func_to_group->expandable = false;
        x_array_push_d(((x_array*)(&(o->funcs_return_to_group))),((x_inst*)(func_to_group )));
    BLM_DOWN();}
    
    if( o->flag_p )
    {BLM_INIT_LEVEL(1);
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        st_s_push_fa(st,"#<sc_t> p_#<sc_t>( c #<sc_t>* p, ", sc_ret_typespec, sc_name, sc_spect_name );
        st_s_push_fa(st,flag_const ? "c" : flag_discardable ? "d" : "m" );
        st_s_push_fa(st," #<sc_t>* o", sc_obj_type );
        BLM_TRY(xoico_args_s_expand_x(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," ) { verbatim_C {" );
        st_s_push_fa(st,"assert( p->#<sc_t> ); ", sc_name );
        if( has_ret ) st_s_push_fa(st,"return " );
        st_s_push_fa(st,"p->#<sc_t>( o", sc_name );
        BLM_TRY(xoico_args_s_expand_name(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," ); } };" );
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
    BLM_DOWN();}
    
    if( o->flag_p )
    {BLM_INIT_LEVEL(1);
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        st_s_push_fa(st,"bl_t p_defines_#<sc_t>( c #<sc_t>* p ) ", sc_name, sc_spect_name );
        if( always_defined )
        {
            st_s_push_fa(st,"{ return true; };", sc_name );
        }
        else
        {
            st_s_push_fa(st,"{ verbatim_C{ return p->#<sc_t> != NULL; } };", sc_name );
        }
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
    BLM_DOWN();}
    
    if( o->flag_r )
    {BLM_INIT_LEVEL(1);
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
        st_s_push_fa(st,"#<sc_t> r_#<sc_t>(", sc_ret_typespec, sc_name );
        st_s_push_fa(st," c sr_s* o" );
        BLM_TRY(xoico_args_s_expand_x(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," ) { verbatim_C {" );
        if( !flag_const ) st_s_push_fa(st,"ASSERT( !sr_s_is_const( o ) ); " );
        st_s_push_fa(st,"const #<sc_t>* p = (const #<sc_t>*)ch_spect_p( o->p, TYPEOF_#<sc_t> ); ",
            sc_spect_name,
            sc_spect_name,
            sc_spect_name
        );
    
        st_s_push_fa(st,"assert( p->#<sc_t> ); ", sc_name );
        if( has_ret ) st_s_push_fa(st,"return " );
        st_s_push_fa(st,"p->#<sc_t>( o->o", sc_name );
        BLM_TRY(xoico_args_s_expand_name(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," ); } };" );
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
    BLM_DOWN();}
    
    if( o->flag_r )
    {BLM_INIT_LEVEL(1);
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
    
        st_s_push_fa(st,"bl_t r_defines_#<sc_t>( c sr_s* o ) ", sc_name );
        if( always_defined )
        {
            st_s_push_fa(st,"{ return true; };", sc_name );
        }
        else
        {
            st_s_push_fa(st,"{ verbatim_C{ return ( (#<sc_t>*)ch_spect_p( o->p, TYPEOF_#<sc_t> ) )->#<sc_t> != NULL; } };", sc_spect_name, sc_spect_name, sc_name );
        }
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
    BLM_DOWN();}
    
    if( o->st_default_func_name.size > 0 )
    {BLM_INIT_LEVEL(1);
        st_s* st = ((st_s*)BLM_LEVEL_T_PUSH(1,st_s,st_s_create()));
    
        if( o->signature.direct_return_arg )
        {
            st_s_push_fa(st,"#<sc_t>", xoico_compiler_s_nameof(compiler,o->signature.direct_return_arg->name ) );
        }
        else
        {
            st_s_push_fa(st,"#<sc_t>", sc_ret_typespec );
        }
    
        st_s_push_fa(st," #<sc_t>(", o->st_default_func_name.sc );
        st_s_push_fa(st,flag_const ? " c" : " m" );
        st_s_push_fa(st," #<sc_t>* o", sc_obj_type );
        BLM_TRY(xoico_args_s_expand_x(&(o->signature.args),host, false,((x_sink*)( st ))))
        st_s_push_fa(st," );" );
    
        xoico_func_s* func = xoico_feature_s_push_func_from_sc(o,host, st->sc );
        func->declare_in_expand_forward = false;
        if( o->default_body ) xoico_body_s_attach( &(func->body ),  ((xoico_body_s*)bcore_fork(o->default_body)));
    
        xoico_func_s* func_to_group = xoico_func_s_clone(func);
        xoico_body_s_attach( &(func_to_group->body ),  NULL);
        func_to_group->expandable = false;
        x_array_push_d(((x_array*)(&(o->funcs_return_to_group))),((x_inst*)(func_to_group )));
    BLM_DOWN();}
    
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x4f0, %rsp            # imm = 0x4F0
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
leaq 0x1a4896(%rip), %rax    # 0x1b2330
movq (%rax), %rax
movq %rax, -0x20(%rbp)
leaq -0x50(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0xbfe80
movq -0x58(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x18(%rbp), %rdi
callq 0x5170
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x51d0
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rax
movq %rax, -0x460(%rbp)
movq -0x18(%rbp), %rdi
callq 0x6b70
movq -0x460(%rbp), %rdi
movq %rax, %rsi
callq 0x51d0
movq %rax, -0x70(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x458(%rbp)
movq -0x18(%rbp), %rdi
callq 0xf070
movq -0x458(%rbp), %rdi
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq 0x8(%rax), %rax
movq %rax, -0x78(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x450(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x450(%rbp), %rdi
movq %rax, %rcx
xorl %eax, %eax
movl %eax, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x80(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
callq 0xf0a0
andb $0x1, %al
movb %al, -0x81(%rbp)
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
movq -0x18(%rbp), %rsi
movq -0x80(%rbp), %rdx
callq 0x8f60
movq %rax, -0x90(%rbp)
cmpq $0x0, -0x90(%rbp)
je 0xdbe1
movq -0x90(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x58(%rbp), %rdi
callq 0xc0720
movq -0x98(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x80(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movabsq $0x65c9718e19e3df34, %rcx # imm = 0x65C9718E19E3DF34
cmpq %rcx, 0x30(%rax)
sete %al
andb $0x1, %al
movb %al, -0xa1(%rbp)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rax
movabsq $-0x12e90733f18038df, %rcx # imm = 0xED16F8CC0E7FC721
cmpq %rcx, 0x30(%rax)
sete %al
andb $0x1, %al
movb %al, -0xa2(%rbp)
movq -0x10(%rbp), %rcx
movb $0x1, %al
testb $0x1, 0x110(%rcx)
movb %al, -0x461(%rbp)
jne 0xdc72
movq -0x10(%rbp), %rcx
movb $0x1, %al
cmpq $0x0, 0x108(%rcx)
movb %al, -0x461(%rbp)
jne 0xdc72
movq -0x10(%rbp), %rax
cmpq $0x0, 0xf8(%rax)
seta %al
movb %al, -0x461(%rbp)
movb -0x461(%rbp), %al
andb $0x1, %al
movb %al, -0xa3(%rbp)
movq -0x10(%rbp), %rax
testb $0x1, 0x113(%rax)
je 0xdfcd
movq -0x58(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq -0xe0(%rbp), %rax
movq %rax, -0xe8(%rbp)
movq -0xe8(%rbp), %rdi
movq -0xb0(%rbp), %rsi
callq 0xbfe80
movq -0xe8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0xb0(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0xb0(%rbp), %rax
movq %rax, -0x478(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x478(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0xf0(%rbp)
movq -0xf0(%rbp), %rdi
movq -0xa0(%rbp), %rdx
movq -0x68(%rbp), %rcx
leaq 0x125fcc(%rip), %rsi    # 0x133cf9
movb $0x0, %al
callq 0x100210
movq -0xf0(%rbp), %rax
movq %rax, -0x470(%rbp)
testb $0x1, -0xa1(%rbp)
je 0xdd5b
leaq 0x12631d(%rip), %rax    # 0x13406f
movq %rax, -0x480(%rbp)
jmp 0xdd7d
movb -0xa2(%rbp), %dl
leaq 0x12630a(%rip), %rax    # 0x134072
leaq 0x12a707(%rip), %rcx    # 0x138476
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x480(%rbp)
movq -0x470(%rbp), %rdi
movq -0x480(%rbp), %rsi
movb $0x0, %al
callq 0x100210
movq -0xf0(%rbp), %rdi
leaq 0x125f6d(%rip), %rsi    # 0x133d0d
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0xf0(%rbp), %rcx
xorl %edx, %edx
callq 0x8890
movq %rax, -0xf8(%rbp)
cmpq $0x0, -0xf8(%rbp)
je 0xde00
movq -0xf8(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0xe8(%rbp), %rdi
callq 0xc0720
movq -0x100(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0xf0(%rbp), %rdi
leaq 0x125f05(%rip), %rsi    # 0x133d13
movb $0x0, %al
callq 0x100210
movq -0xf0(%rbp), %rdi
movq -0x78(%rbp), %rdx
movq -0x78(%rbp), %rcx
leaq 0x125ef9(%rip), %rsi    # 0x133d24
movb $0x0, %al
callq 0x100210
movq -0xf0(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125f0c(%rip), %rsi    # 0x133d50
movb $0x0, %al
callq 0x100210
testb $0x1, -0x81(%rbp)
je 0xde69
movq -0xf0(%rbp), %rdi
leaq 0x125f05(%rip), %rsi    # 0x133d67
movb $0x0, %al
callq 0x100210
movq -0xf0(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125ef4(%rip), %rsi    # 0x133d6f
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0xf0(%rbp), %rcx
xorl %edx, %edx
callq 0x8970
movq %rax, -0x108(%rbp)
cmpq $0x0, -0x108(%rbp)
je 0xdedb
movq -0x108(%rbp), %rax
movq %rax, -0x110(%rbp)
movq -0xe8(%rbp), %rdi
callq 0xc0720
movq -0x110(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0xf0(%rbp), %rdi
leaq 0x125e94(%rip), %rsi    # 0x133d7d
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0xf0(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rax
movb $0x0, 0x2a(%rax)
movq -0x118(%rbp), %rdi
callq 0xb5f0
movq %rax, -0x120(%rbp)
movq -0x120(%rbp), %rdi
addq $0x38, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xf0d0
movq -0x120(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xb820
movq %rax, -0x128(%rbp)
cmpq $0x0, -0x128(%rbp)
je 0xdf8c
movq -0x128(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0xe8(%rbp), %rdi
callq 0xc0720
movq -0x130(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x120(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x120(%rbp), %rax
movb $0x0, 0x28(%rax)
movq -0x10(%rbp), %rdi
addq $0xc0, %rdi
movq -0x120(%rbp), %rsi
callq 0x85f0
leaq -0xe8(%rbp), %rdi
callq 0xc06e0
movq -0x10(%rbp), %rax
testb $0x1, 0x113(%rax)
je 0xe13a
movq -0x58(%rbp), %rax
movq %rax, -0x138(%rbp)
leaq -0x168(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x170(%rbp), %rdi
movq -0x138(%rbp), %rsi
callq 0xbfe80
movq -0x170(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x138(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x138(%rbp), %rax
movq %rax, -0x488(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x488(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x178(%rbp)
movq -0x178(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125d13(%rip), %rsi    # 0x133d86
movb $0x0, %al
callq 0x100210
testb $0x1, -0xa3(%rbp)
je 0xe09e
movq -0x178(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125d11(%rip), %rsi    # 0x133da6
movb $0x0, %al
callq 0x100210
jmp 0xe0bb
movq -0x178(%rbp), %rdi
movq -0x78(%rbp), %rdx
movq -0x68(%rbp), %rcx
leaq 0x125d04(%rip), %rsi    # 0x133db8
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x178(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rax
movb $0x0, 0x2a(%rax)
movq -0x180(%rbp), %rdi
callq 0xb5f0
movq %rax, -0x188(%rbp)
movq -0x188(%rbp), %rdi
addq $0x38, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xf0d0
movq -0x188(%rbp), %rax
movb $0x0, 0x28(%rax)
movq -0x10(%rbp), %rdi
addq $0xc0, %rdi
movq -0x188(%rbp), %rsi
callq 0x85f0
leaq -0x170(%rbp), %rdi
callq 0xc06e0
movq -0x10(%rbp), %rax
testb $0x1, 0x112(%rax)
je 0xe42d
movq -0x58(%rbp), %rax
movq %rax, -0x190(%rbp)
leaq -0x1c0(%rbp), %rax
movq %rax, -0x1c8(%rbp)
movq -0x1c8(%rbp), %rdi
movq -0x190(%rbp), %rsi
callq 0xbfe80
movq -0x1c8(%rbp), %rax
movq %rax, -0x190(%rbp)
movq -0x190(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x190(%rbp), %rax
movq %rax, -0x498(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x498(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x1d0(%rbp)
movq -0x1d0(%rbp), %rdi
movq -0xa0(%rbp), %rdx
movq -0x68(%rbp), %rcx
leaq 0x125c15(%rip), %rsi    # 0x133dfc
movb $0x0, %al
callq 0x100210
movq -0x1d0(%rbp), %rax
movq %rax, -0x490(%rbp)
testb $0x1, -0xa1(%rbp)
je 0xe215
leaq 0x125e63(%rip), %rax    # 0x13406f
movq %rax, -0x4a0(%rbp)
jmp 0xe237
movb -0xa2(%rbp), %dl
leaq 0x125e50(%rip), %rax    # 0x134072
leaq 0x12a24d(%rip), %rcx    # 0x138476
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x4a0(%rbp)
movq -0x490(%rbp), %rdi
movq -0x4a0(%rbp), %rsi
movb $0x0, %al
callq 0x100210
movq -0x1d0(%rbp), %rdi
movq -0x70(%rbp), %rdx
leaq 0x125bb2(%rip), %rsi    # 0x133e10
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x1d0(%rbp), %rcx
xorl %edx, %edx
callq 0x8890
movq %rax, -0x1d8(%rbp)
cmpq $0x0, -0x1d8(%rbp)
je 0xe2be
movq -0x1d8(%rbp), %rax
movq %rax, -0x1e0(%rbp)
movq -0x1c8(%rbp), %rdi
callq 0xc0720
movq -0x1e0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x1d0(%rbp), %rdi
leaq 0x125a47(%rip), %rsi    # 0x133d13
movb $0x0, %al
callq 0x100210
movq -0x1d0(%rbp), %rdi
movq -0x78(%rbp), %rdx
movq -0x78(%rbp), %rcx
leaq 0x125b3b(%rip), %rsi    # 0x133e24
movb $0x0, %al
callq 0x100210
movq -0x1d0(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125a4e(%rip), %rsi    # 0x133d50
movb $0x0, %al
callq 0x100210
testb $0x1, -0x81(%rbp)
je 0xe327
movq -0x1d0(%rbp), %rdi
leaq 0x125a47(%rip), %rsi    # 0x133d67
movb $0x0, %al
callq 0x100210
movq -0x1d0(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125a36(%rip), %rsi    # 0x133d6f
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x1d0(%rbp), %rcx
xorl %edx, %edx
callq 0x8970
movq %rax, -0x1e8(%rbp)
cmpq $0x0, -0x1e8(%rbp)
je 0xe399
movq -0x1e8(%rbp), %rax
movq %rax, -0x1f0(%rbp)
movq -0x1c8(%rbp), %rdi
callq 0xc0720
movq -0x1f0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x1d0(%rbp), %rdi
leaq 0x1259d6(%rip), %rsi    # 0x133d7d
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x1d0(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x1f8(%rbp)
movq -0x1f8(%rbp), %rax
movb $0x0, 0x2a(%rax)
movq -0x1f8(%rbp), %rdi
callq 0xb5f0
movq %rax, -0x200(%rbp)
movq -0x200(%rbp), %rdi
addq $0x38, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xf0d0
movq -0x200(%rbp), %rax
movb $0x0, 0x28(%rax)
movq -0x10(%rbp), %rdi
addq $0xc0, %rdi
movq -0x200(%rbp), %rsi
callq 0x85f0
leaq -0x1c8(%rbp), %rdi
callq 0xc06e0
movq -0x10(%rbp), %rax
testb $0x1, 0x112(%rax)
je 0xe59a
movq -0x58(%rbp), %rax
movq %rax, -0x208(%rbp)
leaq -0x238(%rbp), %rax
movq %rax, -0x240(%rbp)
movq -0x240(%rbp), %rdi
movq -0x208(%rbp), %rsi
callq 0xbfe80
movq -0x240(%rbp), %rax
movq %rax, -0x208(%rbp)
movq -0x208(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x208(%rbp), %rax
movq %rax, -0x4a8(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x4a8(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x12597d(%rip), %rsi    # 0x133e50
movb $0x0, %al
callq 0x100210
testb $0x1, -0xa3(%rbp)
je 0xe4fe
movq -0x248(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x1258b1(%rip), %rsi    # 0x133da6
movb $0x0, %al
callq 0x100210
jmp 0xe51b
movq -0x248(%rbp), %rdi
movq -0x78(%rbp), %rdx
movq -0x68(%rbp), %rcx
leaq 0x12595e(%rip), %rsi    # 0x133e72
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x248(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x250(%rbp)
movq -0x250(%rbp), %rax
movb $0x0, 0x2a(%rax)
movq -0x250(%rbp), %rdi
callq 0xb5f0
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rdi
addq $0x38, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xf0d0
movq -0x258(%rbp), %rax
movb $0x0, 0x28(%rax)
movq -0x10(%rbp), %rdi
addq $0xc0, %rdi
movq -0x258(%rbp), %rsi
callq 0x85f0
leaq -0x240(%rbp), %rdi
callq 0xc06e0
movq -0x10(%rbp), %rax
testb $0x1, 0x111(%rax)
je 0xe82b
movq -0x58(%rbp), %rax
movq %rax, -0x260(%rbp)
leaq -0x290(%rbp), %rax
movq %rax, -0x298(%rbp)
movq -0x298(%rbp), %rdi
movq -0x260(%rbp), %rsi
callq 0xbfe80
movq -0x298(%rbp), %rax
movq %rax, -0x260(%rbp)
movq -0x260(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x260(%rbp), %rax
movq %rax, -0x4b8(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x4b8(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x2a0(%rbp)
movq -0x2a0(%rbp), %rdi
movq -0xa0(%rbp), %rdx
movq -0x68(%rbp), %rcx
movq -0x78(%rbp), %r8
leaq 0x12586a(%rip), %rsi    # 0x133eb5
movb $0x0, %al
callq 0x100210
movq -0x2a0(%rbp), %rax
movq %rax, -0x4b0(%rbp)
testb $0x1, -0xa1(%rbp)
je 0xe679
leaq 0x1259ff(%rip), %rax    # 0x13406f
movq %rax, -0x4c0(%rbp)
jmp 0xe69b
movb -0xa2(%rbp), %dl
leaq 0x1259ec(%rip), %rax    # 0x134072
leaq 0x129de9(%rip), %rcx    # 0x138476
testb $0x1, %dl
cmovneq %rcx, %rax
movq %rax, -0x4c0(%rbp)
movq -0x4b0(%rbp), %rdi
movq -0x4c0(%rbp), %rsi
movb $0x0, %al
callq 0x100210
movq -0x2a0(%rbp), %rdi
movq -0x70(%rbp), %rdx
leaq 0x125815(%rip), %rsi    # 0x133ed7
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x2a0(%rbp), %rcx
xorl %edx, %edx
callq 0x8890
movq %rax, -0x2a8(%rbp)
cmpq $0x0, -0x2a8(%rbp)
je 0xe722
movq -0x2a8(%rbp), %rax
movq %rax, -0x2b0(%rbp)
movq -0x298(%rbp), %rdi
callq 0xc0720
movq -0x2b0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x2a0(%rbp), %rdi
leaq 0x1257b3(%rip), %rsi    # 0x133ee3
movb $0x0, %al
callq 0x100210
movq -0x2a0(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125607(%rip), %rsi    # 0x133d50
movb $0x0, %al
callq 0x100210
testb $0x1, -0x81(%rbp)
je 0xe76e
movq -0x2a0(%rbp), %rdi
leaq 0x125600(%rip), %rsi    # 0x133d67
movb $0x0, %al
callq 0x100210
movq -0x2a0(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x1255ef(%rip), %rsi    # 0x133d6f
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x2a0(%rbp), %rcx
xorl %edx, %edx
callq 0x8970
movq %rax, -0x2b8(%rbp)
cmpq $0x0, -0x2b8(%rbp)
je 0xe7e0
movq -0x2b8(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq -0x298(%rbp), %rdi
callq 0xc0720
movq -0x2c0(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x2a0(%rbp), %rdi
leaq 0x12558f(%rip), %rsi    # 0x133d7d
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x2a0(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x2c8(%rbp)
movq -0x2c8(%rbp), %rax
movb $0x0, 0x2a(%rax)
leaq -0x298(%rbp), %rdi
callq 0xc06e0
movq -0x10(%rbp), %rax
testb $0x1, 0x111(%rax)
je 0xe94f
movq -0x58(%rbp), %rax
movq %rax, -0x2d0(%rbp)
leaq -0x300(%rbp), %rax
movq %rax, -0x308(%rbp)
movq -0x308(%rbp), %rdi
movq -0x2d0(%rbp), %rsi
callq 0xbfe80
movq -0x308(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq -0x2d0(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x2d0(%rbp), %rax
movq %rax, -0x4c8(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x4c8(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x310(%rbp)
movq -0x310(%rbp), %rdi
movq -0x68(%rbp), %rdx
movq -0x78(%rbp), %rcx
leaq 0x125620(%rip), %rsi    # 0x133ef5
movb $0x0, %al
callq 0x100210
testb $0x1, -0xa3(%rbp)
je 0xe900
movq -0x310(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x1254af(%rip), %rsi    # 0x133da6
movb $0x0, %al
callq 0x100210
jmp 0xe919
movq -0x310(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x12560b(%rip), %rsi    # 0x133f1d
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x310(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x318(%rbp)
movq -0x318(%rbp), %rax
movb $0x0, 0x2a(%rax)
leaq -0x308(%rbp), %rdi
callq 0xc06e0
movq -0x10(%rbp), %rax
testb $0x1, 0x114(%rax)
je 0xebb9
movq -0x58(%rbp), %rax
movq %rax, -0x320(%rbp)
leaq -0x350(%rbp), %rax
movq %rax, -0x358(%rbp)
movq -0x358(%rbp), %rdi
movq -0x320(%rbp), %rsi
callq 0xbfe80
movq -0x358(%rbp), %rax
movq %rax, -0x320(%rbp)
movq -0x320(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x320(%rbp), %rax
movq %rax, -0x4d0(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x4d0(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x360(%rbp)
movq -0x360(%rbp), %rdi
movq -0xa0(%rbp), %rdx
movq -0x68(%rbp), %rcx
leaq 0x12554f(%rip), %rsi    # 0x133f4b
movb $0x0, %al
callq 0x100210
movq -0x360(%rbp), %rdi
leaq 0x12554d(%rip), %rsi    # 0x133f5e
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x360(%rbp), %rcx
xorl %edx, %edx
callq 0x8890
movq %rax, -0x368(%rbp)
cmpq $0x0, -0x368(%rbp)
je 0xea71
movq -0x368(%rbp), %rax
movq %rax, -0x370(%rbp)
movq -0x358(%rbp), %rdi
callq 0xc0720
movq -0x370(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x360(%rbp), %rdi
leaq 0x125464(%rip), %rsi    # 0x133ee3
movb $0x0, %al
callq 0x100210
testb $0x1, -0xa1(%rbp)
jne 0xeaa4
movq -0x360(%rbp), %rdi
leaq 0x1254cc(%rip), %rsi    # 0x133f69
movb $0x0, %al
callq 0x100210
movq -0x360(%rbp), %rdi
movq -0x78(%rbp), %rdx
movq -0x78(%rbp), %rcx
movq -0x78(%rbp), %r8
leaq 0x1254cb(%rip), %rsi    # 0x133f89
movb $0x0, %al
callq 0x100210
movq -0x360(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125279(%rip), %rsi    # 0x133d50
movb $0x0, %al
callq 0x100210
testb $0x1, -0x81(%rbp)
je 0xeafc
movq -0x360(%rbp), %rdi
leaq 0x125272(%rip), %rsi    # 0x133d67
movb $0x0, %al
callq 0x100210
movq -0x360(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x1254c3(%rip), %rsi    # 0x133fd1
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x360(%rbp), %rcx
xorl %edx, %edx
callq 0x8970
movq %rax, -0x378(%rbp)
cmpq $0x0, -0x378(%rbp)
je 0xeb6e
movq -0x378(%rbp), %rax
movq %rax, -0x380(%rbp)
movq -0x358(%rbp), %rdi
callq 0xc0720
movq -0x380(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x360(%rbp), %rdi
leaq 0x125201(%rip), %rsi    # 0x133d7d
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x360(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x388(%rbp)
movq -0x388(%rbp), %rax
movb $0x0, 0x2a(%rax)
leaq -0x358(%rbp), %rdi
callq 0xc06e0
movq -0x10(%rbp), %rax
testb $0x1, 0x114(%rax)
je 0xece1
movq -0x58(%rbp), %rax
movq %rax, -0x390(%rbp)
leaq -0x3c0(%rbp), %rax
movq %rax, -0x3c8(%rbp)
movq -0x3c8(%rbp), %rdi
movq -0x390(%rbp), %rsi
callq 0xbfe80
movq -0x3c8(%rbp), %rax
movq %rax, -0x390(%rbp)
movq -0x390(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x390(%rbp), %rax
movq %rax, -0x4d8(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x4d8(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x3d0(%rbp)
movq -0x3d0(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125383(%rip), %rsi    # 0x133fe2
movb $0x0, %al
callq 0x100210
testb $0x1, -0xa3(%rbp)
je 0xec8a
movq -0x3d0(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x125125(%rip), %rsi    # 0x133da6
movb $0x0, %al
callq 0x100210
jmp 0xecab
movq -0x3d0(%rbp), %rdi
movq -0x78(%rbp), %rdx
movq -0x78(%rbp), %rcx
movq -0x68(%rbp), %r8
leaq 0x125363(%rip), %rsi    # 0x134007
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x3d0(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x3d8(%rbp)
movq -0x3d8(%rbp), %rax
movb $0x0, 0x2a(%rax)
leaq -0x3c8(%rbp), %rdi
callq 0xc06e0
movq -0x10(%rbp), %rax
cmpq $0x0, 0xf8(%rax)
jbe 0xef6e
movq -0x58(%rbp), %rax
movq %rax, -0x3e0(%rbp)
leaq -0x410(%rbp), %rax
movq %rax, -0x418(%rbp)
movq -0x418(%rbp), %rdi
movq -0x3e0(%rbp), %rsi
callq 0xbfe80
movq -0x418(%rbp), %rax
movq %rax, -0x3e0(%rbp)
movq -0x3e0(%rbp), %rax
movq $0x1, 0x10(%rax)
movq -0x3e0(%rbp), %rax
movq %rax, -0x4e0(%rbp)
movb $0x0, %al
callq 0xff2e0
movq -0x4e0(%rbp), %rdi
movq %rax, %rcx
movl $0x1, %esi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
callq 0xc01a0
movq %rax, -0x420(%rbp)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x80(%rax)
je 0xedc4
movq -0x420(%rbp), %rax
movq %rax, -0x4e8(%rbp)
movq -0x60(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x80(%rax), %rax
movq 0x50(%rax), %rsi
callq 0x51d0
movq -0x4e8(%rbp), %rdi
movq %rax, %rdx
leaq 0x14016a(%rip), %rsi    # 0x14ef25
movb $0x0, %al
callq 0x100210
jmp 0xede0
movq -0x420(%rbp), %rdi
movq -0xa0(%rbp), %rdx
leaq 0x14014c(%rip), %rsi    # 0x14ef25
movb $0x0, %al
callq 0x100210
movq -0x420(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0xf0(%rax), %rdx
leaq 0x12526b(%rip), %rsi    # 0x134064
movb $0x0, %al
callq 0x100210
movq -0x420(%rbp), %rdi
movb -0xa1(%rbp), %cl
leaq 0x12525d(%rip), %rsi    # 0x134071
leaq 0x125253(%rip), %rax    # 0x13406e
testb $0x1, %cl
cmovneq %rax, %rsi
movb $0x0, %al
callq 0x100210
movq -0x420(%rbp), %rdi
movq -0x70(%rbp), %rdx
leaq 0x12509c(%rip), %rsi    # 0x133ed7
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
addq $0x8, %rdi
addq $0x58, %rdi
movq -0x18(%rbp), %rsi
movq -0x420(%rbp), %rcx
xorl %edx, %edx
callq 0x8890
movq %rax, -0x428(%rbp)
cmpq $0x0, -0x428(%rbp)
je 0xee9b
movq -0x428(%rbp), %rax
movq %rax, -0x430(%rbp)
movq -0x418(%rbp), %rdi
callq 0xc0720
movq -0x430(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0xef8d
movq -0x420(%rbp), %rdi
leaq 0x13ea8a(%rip), %rsi    # 0x14d933
movb $0x0, %al
callq 0x100210
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x420(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0xf020
movq %rax, -0x438(%rbp)
movq -0x438(%rbp), %rax
movb $0x0, 0x2a(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x108(%rax)
je 0xef19
movq -0x438(%rbp), %rax
addq $0x38, %rax
movq %rax, -0x4f0(%rbp)
movq -0x10(%rbp), %rax
movq 0x108(%rax), %rdi
callq 0x9d3d0
movq -0x4f0(%rbp), %rdi
movq %rax, %rsi
callq 0xf0d0
movq -0x438(%rbp), %rdi
callq 0xb5f0
movq %rax, -0x440(%rbp)
movq -0x440(%rbp), %rdi
addq $0x38, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xf0d0
movq -0x440(%rbp), %rax
movb $0x0, 0x28(%rax)
movq -0x10(%rbp), %rdi
addq $0xc0, %rdi
movq -0x440(%rbp), %rsi
callq 0x85f0
leaq -0x418(%rbp), %rdi
callq 0xc06e0
movq $0x0, -0x448(%rbp)
movq -0x58(%rbp), %rdi
callq 0xc0720
movq -0x448(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x4f0, %rsp            # imm = 0x4F0
popq %rbp
retq
nopw (%rax,%rax)