// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_group_s_parse
er_t xoico_group_s_parse( xoico_group_s* o, const xoico_host* host, bl_t parse_block, x_source* source )
{
    // xoico_group.x:454:1
    BLM_INIT_LEVEL(0);
    xoico_compiler_s* compiler = o->compiler;
    xoico_group_source_stack_s* stack = ((xoico_group_source_stack_s*)BLM_LEVEL_T_PUSH(0,xoico_group_source_stack_s,xoico_group_source_stack_s_create()));
    x_array_push_d(((x_array*)(stack)),((x_inst*)(((x_source*)bcore_fork(source)) )));
    
    sc_t group_termination = NULL;
    
    if( !o->source_point )
    {
        x_source_point_s_setup_from_source(BCORE_PASS_CREATE(x_source_point_s,o->source_point),source );
        o->pre_hash = bcore_tp_init();
        if( !o->tp_name ) o->tp_name = xoico_compiler_s_entypeof(compiler,o->st_name.sc );
    }
    
    if( parse_block ) // this group is nested in another group, the group body is enclosed in { ... }
    {
        BLM_TRY(x_source_parse_fa(source," {" ))
        group_termination = " #?'}'";
    }
    else if( x_source_parse_bl(source," #?'#ifdef XOILA_SECTION'" ) ) // this group is root
    {
        group_termination = " #?'#endif'";
    }
    
    bl_t extend_stump = false;
    
    while
    (
        stack->size >= 2 ||
        ( group_termination ? !x_source_parse_bl(source,group_termination ) : !x_source_eos(source) )
    )
    {
        if( x_source_eos(source) )
        {
            if( stack->size >= 2 )
            {
                x_source_a_attach( &(stack->data[ stack->size - 1 ] ), (x_source*)( NULL));
                source = stack->data[ stack->size - 2 ];
                x_array_set_size(((x_array*)(stack)),stack->size - 1 );
            }
            else if( group_termination )
            {
                BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Unexpected end of file." ))
            }
            else
            {
                break;
            }
        }
        else if( x_source_parse_bl(source," #?w'stamp' " ) )
        {BLM_INIT_LEVEL(3);
            xoico_stamp_s* stamp = ((xoico_stamp_s*)BLM_LEVEL_T_PUSH(3,xoico_stamp_s,xoico_stamp_s_create()));
            stamp->group = o;
            BLM_TRY(xoico_stamp_s_parse(stamp,((const xoico_host*)(o)), source ))
            BLM_TRY(xoico_stamp_s_push_inexpandable_funcs(stamp))
            BLM_TRY(xoico_compiler_s_register_item(compiler,xoico_group_s_push_item_d(o,((xoico*)(((xoico_stamp_s*)bcore_fork(stamp)) ))) ))
        BLM_DOWN();}
    
        /// stumps are inexpandable stamps. They can be used as template.
        else if( x_source_parse_bl(source," #?w'stump' " ) )
        {BLM_INIT_LEVEL(3);
            xoico_stamp_s* stump = ((xoico_stamp_s*)BLM_LEVEL_T_PUSH(3,xoico_stamp_s,xoico_stamp_s_create()));
            stump->group = o;
            BLM_TRY(xoico_stamp_s_parse(stump,((const xoico_host*)(o)), source ))
            //stump.make_funcs_overloadable();
            BLM_TRY(xoico_compiler_s_register_item(compiler,((const xoico*)(stump ))))
            BLM_TRY(xoico_compiler_s_life_a_push(compiler,((bcore_inst*)(((xoico_stamp_s*)bcore_fork(stump)) ))))
            if( extend_stump )
            {
                o->extending_stamp = stump;
                extend_stump = false;
            }
        BLM_DOWN();}
        else if( x_source_parse_bl(source," #?w'signature' " ) )
        {BLM_INIT_LEVEL(3);
            xoico_signature_s* signature = ((xoico_signature_s*)BLM_LEVEL_T_PUSH(3,xoico_signature_s,xoico_signature_s_create()));
            BLM_TRY(xoico_signature_s_parse(signature,((const xoico_host*)(o)), source ))
            BLM_TRY(x_source_parse_fa(source," ; " ))
            BLM_TRY(xoico_compiler_s_register_item(compiler,xoico_group_s_push_item_d(o,((xoico*)(((xoico_signature_s*)bcore_fork(signature)) ))) ))
        BLM_DOWN();}
        else if( x_source_parse_bl(source," #?w'body' " ) )
        {BLM_INIT_LEVEL(3);
            xoico_body_s* body = ((xoico_body_s*)BLM_LEVEL_T_PUSH(3,xoico_body_s,xoico_body_s_create()));
            st_s body_name;BLM_T_INIT_SPUSH(st_s, &body_name);;
            BLM_TRY(xoico_group_s_parse_name_st(o,source,&( body_name )))
            if( body_name.size == 0 ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Body name expected." ))
            body->name = xoico_host_a_entypeof(host,body_name.sc );
    
            BLM_TRY(xoico_body_s_parse(body,((const xoico_host*)(o)), source ))
    
            BLM_TRY(x_source_parse_fa(source," #-?';' " )) // closing semicolon is optional
            BLM_TRY(xoico_compiler_s_register_item(compiler,xoico_group_s_push_item_d(o,((xoico*)(((xoico_body_s*)bcore_fork(body)) ))) ))
        BLM_DOWN();}
        else if( x_source_parse_bl(source," #?w'feature' " ) )
        {BLM_INIT_LEVEL(3);
            xoico_feature_s* feature = ((xoico_feature_s*)BLM_LEVEL_T_PUSH(3,xoico_feature_s,xoico_feature_s_create()));
            feature->group = o;
            BLM_TRY(xoico_feature_s_parse(feature,((const xoico_host*)(o)), source ))
            BLM_TRY(xoico_compiler_s_register_item(compiler,xoico_group_s_push_item_d(o,((xoico*)(((xoico_feature_s*)bcore_fork(feature)) ))) ))
            bcore_hmap_tpvd_s_set(&(o->hmap_feature),feature->signature.name, ( vd_t )feature );
            {const xoico_funcs_s* __a=&(feature->funcs_return_to_group );if(__a)for(sz_t __i=0;__i<__a->size;__i++){xoico_func_s* func=__a->data[__i]; x_array_push_d(((x_array*)(&(o->funcs))),((x_inst*)(((xoico_func_s*)bcore_fork(func)) )));}}
            x_array_clear(((x_array*)(&(feature->funcs_return_to_group))));
        BLM_DOWN();}
        else if( x_source_parse_bl(source," #?w'func' " ) )
        {
            bl_t is_group_function = true;
            if( x_source_parse_bl(source," #=?'('" ) )
            {BLM_INIT_LEVEL(4);
                sz_t index = x_source_get_index(source);
                BLM_TRY(x_source_parse_fa(source,"(" ))
                st_s* stamp_name = ((st_s*)BLM_LEVEL_T_PUSH(4,st_s,st_s_create()));
                BLM_TRY(xoico_group_s_parse_name_st(o,source, stamp_name ))
                if( x_source_parse_bl(source," #?')'" ) )
                {
                    if( !st_s_ends_in_sc(stamp_name,"_s" ) ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Stamp name '#<sc_t>' must end in '_s'.", stamp_name->sc ))
                    tp_t tp_stamp_name = btypeof( stamp_name->sc );
                    if( !xoico_compiler_s_is_stamp(compiler,tp_stamp_name ) )
                    {
                        BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Cannot associate type name '#<sc_t>' with a stamp.", stamp_name->sc ))
                    }
    
                    xoico_stamp_s* stamp = xoico_compiler_s_get_stamp(compiler,tp_stamp_name );
    
                    if( stamp->finalized )
                    {
                        BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Stamp '#<sc_t>' has already been finalized. Attempting to extend stamp outside its declarative scope.",
                            stamp_name->sc
                        ))
                    }
    
                    BLM_TRY(xoico_stamp_s_parse_func(stamp,source ))
                    o->pre_hash = bcore_tp_fold_tp( o->pre_hash, xoico_stamp_s_get_hash(stamp) );
                    is_group_function = false;
                }
                else
                {
                    x_source_set_index(source,index );
                    is_group_function = true;
                }
            BLM_DOWN();}
    
            if( is_group_function )
            {
                BLM_TRY(xoico_group_s_parse_func(o,source, true )) // group functions are registered
            }
        }
        else if( x_source_parse_bl(source," #?w'name' " ) )
        {
            while( !x_source_eos(source) )
            {BLM_INIT_LEVEL(4);
                xoico_name_s* name = ((xoico_name_s*)BLM_LEVEL_T_PUSH(4,xoico_name_s,xoico_name_s_create()));
                BLM_TRY(xoico_name_s_parse(name,((const xoico_host*)(o)), source ))
                xoico_group_s_push_item_d(o,((xoico*)(((xoico_name_s*)bcore_fork(name)) )));
                bcore_hmap_tp_s_set(&(o->compiler->hmap_declared_name),name->name );
                if( x_source_parse_bl(source," #?';'" ) ) BLM_BREAK_LEVEL(4);
                BLM_TRY(x_source_parse_fa(source," ," ))
            BLM_DOWN();}
        }
        else if( x_source_parse_bl(source," #?w'type' " ) )
        {
            while( !x_source_eos(source) )
            {BLM_INIT_LEVEL(4);
                xoico_name_s name;BLM_T_INIT_SPUSH(xoico_name_s, &name);xoico_name_s_parse(&(name),((const xoico_host*)(o)), source );
                BLM_TRY(xoico_compiler_s_register_external_type(compiler,name.name ))
                o->pre_hash = bcore_tp_fold_tp( o->pre_hash, xoico_name_s_get_hash(&(name)) );
                if( x_source_parse_bl(source," #?';'" ) ) BLM_BREAK_LEVEL(4);
                BLM_TRY(x_source_parse_fa(source," ," ))
            BLM_DOWN();}
        }
        else if( x_source_parse_bl(source," #?w'identifier' " ) )
        {
            while( !x_source_eos(source) )
            {BLM_INIT_LEVEL(4);
                xoico_name_s name;BLM_T_INIT_SPUSH(xoico_name_s, &name);xoico_name_s_parse(&(name),((const xoico_host*)(o)), source );
                BLM_TRY(xoico_compiler_s_register_external_identifier(compiler,name.name ))
                o->pre_hash = bcore_tp_fold_tp( o->pre_hash, xoico_name_s_get_hash(&(name)) );
                if( x_source_parse_bl(source," #?';'" ) ) BLM_BREAK_LEVEL(4);
                BLM_TRY(x_source_parse_fa(source," ," ))
            BLM_DOWN();}
        }
        else if( x_source_parse_bl(source," #?w'forward' " ) )
        {
            while( !x_source_eos(source) )
            {BLM_INIT_LEVEL(4);
                xoico_forward_s* forward = ((xoico_forward_s*)BLM_LEVEL_T_PUSH(4,xoico_forward_s,xoico_forward_s_create()));
                forward->group = o;
                BLM_TRY(xoico_forward_s_parse(forward,((const xoico_host*)(o)), source ))
                xoico_group_s_push_item_d(o,((xoico*)(((xoico_forward_s*)bcore_fork(forward)) )));
                if( x_source_parse_bl(source," #?';'" ) ) BLM_BREAK_LEVEL(4);
                BLM_TRY(x_source_parse_fa(source," ," ))
            BLM_DOWN();}
        }
        else if( x_source_parse_bl(source," #?w'extending'" ) )
        {
            o->extending_stamp = NULL;
            if( x_source_parse_bl(source," #=?';'" ) )
            {
                // just reset o->extending - nothing else
            }
            else if( x_source_parse_bl(source," #=?w'stump'" ) )
            {
                extend_stump = true;
            }
            else
            {BLM_INIT_LEVEL(4);
                st_s* templ_name = ((st_s*)BLM_LEVEL_T_PUSH(4,st_s,st_s_create()));
                BLM_TRY(xoico_group_s_parse_name_st(o,source, templ_name ))
                if( !st_s_ends_in_sc(templ_name,"_s" ) ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Stamp name '#<sc_t>' must end in '_s'.", templ_name->sc ))
                const xoico* item = xoico_compiler_s_get_const_item(compiler,btypeof( templ_name->sc ) );
                if( !item ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Template #<sc_t> not found.", templ_name->sc ))
                if( item->_ != ((tp_t)(TYPEOF_xoico_stamp_s)) ) BLM_RETURNV(er_t, x_source_parse_error_fa(source,"Template #<sc_t> is no stamp.", templ_name->sc ))
                o->extending_stamp = ((xoico_stamp_s*)(item));
                BLM_TRY(x_source_parse_fa(source," ;" ))
            BLM_DOWN();}
        }
        else if( x_source_parse_bl(source," #?w'group' " ) )
        {BLM_INIT_LEVEL(3);
            st_s st_group_name;BLM_T_INIT_SPUSH(st_s, &st_group_name);;
            BLM_TRY(xoico_group_s_parse_name_st(o,source,&( st_group_name )))
            bl_t retrievable = false;
    
            // using assignment symbol is optional
            if( x_source_parse_bl(source," #?'=' " ) )
            {
                // nothing (error in case use of assignment becomes illegal)
            }
    
            // flags
            if( x_source_parse_bl(source," #?w'retrievable' " ) ) retrievable = true;
    
            xoico_transient_map_s* transient_map = ((xoico_transient_map_s*)BLM_LEVEL_T_PUSH(3,xoico_transient_map_s,xoico_transient_map_s_clone(&(o->transient_map))));
            tp_t tp_trait_name = o->tp_name;
            st_s* st_trait_name = ((st_s*)BLM_LEVEL_T_PUSH(3,st_s,st_s_create()));
    
            // first test for 'trans' used instead of trait_name
            if( x_source_parse_bl(source," #?w'trans' " ) )
            {
                BLM_TRY(xoico_transient_map_s_parse_update(transient_map,((const xoico_host*)(o)), source ))
            }
            else
            {
                BLM_TRY(xoico_group_s_parse_name_st(o,source, st_trait_name ))
                if( st_trait_name->size > 0 )
                {
                    tp_trait_name = xoico_compiler_s_entypeof(compiler,st_trait_name->sc );
                }
                else
                {
                    st_s_copy_sc(st_trait_name,xoico_compiler_s_nameof(compiler,tp_trait_name ) );
                }
    
                // second test for trans in case it occurs after trait_name
                if( x_source_parse_bl(source," #?w'trans' " ) ) BLM_TRY(xoico_transient_map_s_parse_update(transient_map,((const xoico_host*)(o)), source ))
            }
    
            xoico_group_s* group = NULL;
            BLM_TRY(xoico_source_s_get_group_if_preexsting(o->xoico_source,host, source, st_group_name.sc, st_trait_name->sc, (&(group)) ))
    
            if( !group )
            {BLM_INIT_LEVEL(4);
                group = xoico_source_s_push_d(o->xoico_source,xoico_group_s_create() );
                group->lexical_parent = o;
                group->xoico_source = o->xoico_source;
                group->compiler = o->compiler;
                group->extending_stamp = o->extending_stamp;
                group->expandable = o->expandable;
                xoico_group_s_set_name_sc(group,host, st_group_name.sc );
                group->is_retrievable = retrievable;
                group->trait_name = tp_trait_name;
                xoico_transient_map_s_copy(&(group->transient_map),transient_map );
                BLM_TRY(xoico_group_s_parse(group,((const xoico_host*)(o)), true, source ))
                BLM_TRY(xoico_compiler_s_register_group(compiler,group ))
                xoico_nested_group_s* nested_group = ((xoico_nested_group_s*)BLM_LEVEL_T_PUSH(4,xoico_nested_group_s,xoico_nested_group_s_create()));
                nested_group->group = group;
                xoico_group_s_push_item_d(o,((xoico*)(((xoico_nested_group_s*)bcore_fork(nested_group)) )));
            BLM_DOWN();}
            else
            {
                xoico_transient_map_s_update(&(group->transient_map),transient_map );
                BLM_TRY(xoico_group_s_parse(group,((const xoico_host*)(o)), true, source ))
            }
    
            BLM_TRY(x_source_parse_fa(source," #-?';' " )) // closing semicolon is optional
        BLM_DOWN();}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x168, %rsp            # imm = 0x168
movq %rcx, %r13
movl %edx, %ebx
movq %rsi, %rbp
movq %rdi, %r15
leaq 0x186515(%rip), %rax    # 0x1a8dd0
movq (%rax), %rsi
leaq 0xb8(%rsp), %r14
movq %r14, %rdi
callq 0xe0431
movq $0x0, 0x10(%r14)
movq 0x140(%r15), %rax
movq %rax, 0x60(%rsp)
callq 0x20d04
movabsq $0x753cecc8ce8a05b2, %rdx # imm = 0x753CECC8CE8A05B2
movq %r14, %rdi
xorl %esi, %esi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r12
movq %r13, %rdi
callq 0xc8348
movq (%r12), %rsi
movq %r12, %rdi
movq %rax, %rdx
callq 0x5b3a7
cmpq $0x0, 0x148(%r15)
jne 0x22973
callq 0x59ec4
movq %rax, 0x148(%r15)
movq %rax, %rdi
movq %r13, %rsi
callq 0xe9fb
movabsq $-0x340d631b7bdddcdb, %rax # imm = 0xCBF29CE484222325
movq %rax, 0xb8(%r15)
cmpq $0x0, 0xa8(%r15)
jne 0x22973
movq 0x90(%r15), %rsi
movq 0x60(%rsp), %rax
leaq 0x140(%rax), %rdi
callq 0xddb52
movq %rax, 0xa8(%r15)
movq %r15, 0x10(%rsp)
testb %bl, %bl
je 0x229bf
leaq 0x116217(%rip), %rsi    # 0x138b9a
movq %r13, %rdi
xorl %eax, %eax
callq 0xda10
testq %rax, %rax
movq %rax, 0x8(%rsp)
jne 0x254db
movl $0x0, 0x6c(%rsp)
movq %rbp, 0x90(%rsp)
leaq 0x116627(%rip), %rax    # 0x138fd9
movq %rax, 0xf0(%rsp)
jmp 0x22a8e
movq (%r13), %rbx
leaq 0x1872fe(%rip), %rax    # 0x1a9cc8
movl (%rax), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rax,%rcx,8), %rdx
movq 0x18(%rax,%rcx,8), %rcx
andq %rbx, %rcx
shlq $0x4, %rcx
leaq (%rdx,%rcx), %rax
movq (%rdx,%rcx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x22a24
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x22a24
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x22a24
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x254ff
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x22a54
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r15
leaq 0x18727f(%rip), %rdi    # 0x1a9cc8
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbp, 0x90(%rsp)
leaq 0x11657d(%rip), %rdx    # 0x138fe0
movq %r15, %rdi
movq %r13, %rsi
callq 0x10aa16
movl %eax, %ecx
xorb $0x1, %cl
movl %ecx, 0x6c(%rsp)
leaq 0x11657c(%rip), %rcx    # 0x138ffa
xorl %edx, %edx
testb %al, %al
cmovneq %rcx, %rdx
movq %rdx, 0xf0(%rsp)
movq 0x10(%rsp), %rax
leaq 0xe0(%rax), %rcx
movq %rcx, 0xe8(%rsp)
leaq 0x68(%rax), %rcx
movq %rcx, 0x130(%rsp)
leaq 0xc0(%rax), %rcx
movq %rcx, 0x128(%rsp)
movq 0x60(%rsp), %rcx
leaq 0x140(%rcx), %rdx
movq %rdx, 0x138(%rsp)
leaq 0x78(%rcx), %rdx
movq %rdx, 0xa8(%rsp)
leaq 0xf0(%rcx), %rdx
movq %rdx, 0x150(%rsp)
leaq 0xc8(%rcx), %rdx
movq %rdx, 0x160(%rsp)
leaq 0x150(%rax), %rdx
movq %rdx, 0x148(%rsp)
addq $0x118, %rax            # imm = 0x118
movq %rax, 0x140(%rsp)
leaq 0x20(%rcx), %rax
movq %rax, 0x158(%rsp)
leaq 0x18719d(%rip), %rbp    # 0x1a9cc8
movl $0x0, 0x68(%rsp)
cmpq $0x1, 0x10(%r12)
ja 0x22c72
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
cmpb $0x0, 0x6c(%rsp)
je 0x22bf3
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x22ba8
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x22ba8
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x22ba8
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x23686
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x22bd4
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r15
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x40(%r15)
jne 0x22bea
movq %r15, %rdi
leaq 0x12232c(%rip), %rsi    # 0x144f11
callq 0xf592c
movq %r13, %rdi
callq *0x40(%r15)
jmp 0x22c6a
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x22c2b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x22c2b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x22c2b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x2368e
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x22c57
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
movq 0xf0(%rsp), %rdx
callq 0x10aa16
testb %al, %al
jne 0x254a9
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x22cd0
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x22cd0
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x22cd0
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x2333a
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x22cfc
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r15
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x40(%r15)
jne 0x22d12
movq %r15, %rdi
leaq 0x122204(%rip), %rsi    # 0x144f11
callq 0xf592c
movq %r13, %rdi
callq *0x40(%r15)
testb %al, %al
je 0x22eaf
movq 0x10(%r12), %r14
cmpq $0x2, %r14
jb 0x254a2
shlq $0x3, %r14
addq 0x8(%r12), %r14
addq $-0x8, %r14
je 0x22df6
movq (%r14), %rbx
testq %rbx, %rbx
je 0x22def
movq (%rbx), %r15
leaq 0x18670f(%rip), %rdx    # 0x1a9468
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r15, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x22db2
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x22db2
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x22db2
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x23944
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x22de2
movabsq $0x782b96602f424981, %rdi # imm = 0x782B96602F424981
movq %r15, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x186691(%rip), %rdi    # 0x1a9468
movq %r15, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, %rdi
movq %rbx, %rsi
callq *0xb8(%r13)
movq $0x0, (%r14)
movq (%r12), %r15
movq 0x8(%r12), %rax
movq 0x10(%r12), %rbx
movq -0x10(%rax,%rbx,8), %r13
leaq 0x186010(%rip), %rdx    # 0x1a8e20
movl (%rdx), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r15, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x22e69
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x22e69
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x22e69
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x23668
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x22e99
movabsq $-0x5073d588c3beb52e, %rdi # imm = 0xAF8C2A773C414AD2
movq %r15, %rsi
callq 0xf3f85
movq %rax, %r14
leaq 0x185f92(%rip), %rdi    # 0x1a8e20
movq %r15, %rsi
movq %rax, %rdx
callq 0x12128c
decq %rbx
movq %r14, %rdi
movq %r12, %rsi
movq %rbx, %rdx
callq 0xf69d8
jmp 0x23301
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x22f0d
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x22f0d
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x22f0d
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x23490
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x22f39
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x1160d8(%rip), %rdx    # 0x13901e
callq 0x10aa16
testb %al, %al
je 0x23045
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x3, 0x10(%rbx)
callq 0x2a1b8
movl $0x3, %esi
movq %rbx, %rdi
movabsq $0x12d01d78049fae7, %rdx # imm = 0x12D01D78049FAE7
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq 0x10(%rsp), %rsi
movq %rsi, 0xc8(%rax)
movq %rax, %rdi
movq %r13, %rdx
callq 0x25523
movq %rax, %r14
testq %rax, %rax
je 0x22fca
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq %rbx, %rdi
callq 0x26312
movq %rax, %r14
testq %rax, %rax
je 0x22ff2
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq %rbx, %rdi
callq 0xc8348
movq 0x10(%rsp), %rdi
movq (%rdi), %rsi
movq %rax, %rdx
callq 0x5b3a7
movq 0x60(%rsp), %rdi
movq %rax, %rsi
callq 0x1b29a
movq %rax, %rbx
testq %rax, %rax
je 0x23037
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x232f7
jmp 0x231c9
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x230a3
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x230a3
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x230a3
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x23696
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x230cf
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x115f4f(%rip), %rdx    # 0x13902b
callq 0x10aa16
testb %al, %al
je 0x231da
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x3, 0x10(%rbx)
callq 0x2a1b8
movl $0x3, %esi
movq %rbx, %rdi
movabsq $0x12d01d78049fae7, %rdx # imm = 0x12D01D78049FAE7
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq 0x10(%rsp), %rsi
movq %rsi, 0xc8(%rax)
movq %rax, %rdi
movq %r13, %rdx
callq 0x25523
movq %rax, %r14
testq %rax, %rax
je 0x23160
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq 0x60(%rsp), %rdi
movq %rbx, %rsi
callq 0x1b29a
movq %rax, %r14
testq %rax, %rax
je 0x2318d
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq %rbx, %rdi
callq 0xc8348
movq 0x158(%rsp), %rdi
movq %rax, %rsi
callq 0xe081c
testb $0x1, 0x68(%rsp)
je 0x231c9
movq 0x10(%rsp), %rax
movq %rbx, 0x110(%rax)
movl $0x0, 0x68(%rsp)
leaq 0x20(%rsp), %rdi
callq 0xe0b11
movb $0x1, %al
jmp 0x232f9
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x23238
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x23238
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x23238
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x23ad2
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x23264
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x115dc7(%rip), %rdx    # 0x139038
callq 0x10aa16
testb %al, %al
je 0x23342
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x3, 0x10(%rbx)
callq 0x14868
movl $0x3, %esi
movq %rbx, %rdi
movabsq $-0x231a5c50432e84f2, %rdx # imm = 0xDCE5A3AFBCD17B0E
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq %rax, %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
callq 0x15397
movq %rax, %r14
testq %rax, %rax
je 0x232ee
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
je 0x23670
xorl %eax, %eax
testb %al, %al
je 0x254e8
movq %r13, %rdi
leaq 0x12b6a2(%rip), %rsi    # 0x14e9ad
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x2332c
leaq 0xb8(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
je 0x22b33
jmp 0x254e8
xorl %r15d, %r15d
jmp 0x22cd4
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x233a0
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x233a0
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x233a0
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x23e35
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x233cc
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x115c74(%rip), %rdx    # 0x13904d
callq 0x10aa16
testb %al, %al
je 0x23498
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x70(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x70(%rsp), %rbx
movq $0x3, 0x10(%rbx)
callq 0x184a5
movl $0x3, %esi
movq %rbx, %rdi
movabsq $0x12dc29d312ad56e4, %rdx # imm = 0x12DC29D312AD56E4
movq %rax, %rcx
callq 0xe0676
movq %rax, %r15
leaq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0x113f7c
movq %rbx, %rdi
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
movq %r14, %rdx
callq 0xe06ab
movq 0x10(%rsp), %rdi
movq %r13, %rsi
movq %r14, %rdx
callq 0x21ec1
movq %rax, %rbx
testq %rax, %rax
je 0x23478
movq 0x70(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
je 0x2394c
xorl %ebx, %ebx
testb %bl, %bl
jne 0x23301
jmp 0x254e8
xorl %r14d, %r14d
jmp 0x22f11
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x234f6
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x234f6
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x234f6
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x241be
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x23522
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x115b3e(%rip), %rdx    # 0x13906d
callq 0x10aa16
testb %al, %al
je 0x2369e
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x3, 0x10(%rbx)
callq 0x1cca8
movl $0x3, %esi
movq %rbx, %rdi
movabsq $0x320f5368e957d0a2, %rdx # imm = 0x320F5368E957D0A2
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq 0x10(%rsp), %rsi
movq %rsi, 0x118(%rax)
movq %rax, %rdi
movq %r13, %rdx
callq 0x1d122
movq %rax, %r14
testq %rax, %rax
je 0x235b3
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq %rbx, %rdi
callq 0xc8348
movq 0x10(%rsp), %rdi
movq (%rdi), %rsi
movq %rax, %rdx
callq 0x5b3a7
movq 0x60(%rsp), %rdi
movq %rax, %rsi
callq 0x1b29a
movq %rax, %r14
testq %rax, %rax
je 0x235f8
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq 0x10(%rbx), %rsi
movq 0x148(%rsp), %rdi
movq %rbx, %rdx
callq 0xd45e4
cmpq $0x0, 0xd0(%rbx)
movq 0x140(%rsp), %r15
je 0x23654
xorl %r14d, %r14d
movq 0xc8(%rbx), %rax
movq (%rax,%r14,8), %rdi
callq 0xc8348
movq (%r15), %rsi
movq %r15, %rdi
movq %rax, %rdx
callq 0x5b3a7
incq %r14
cmpq 0xd0(%rbx), %r14
jb 0x2362a
addq $0xc0, %rbx
movq %rbx, %rdi
callq 0x223a3
jmp 0x231c9
xorl %r14d, %r14d
jmp 0x22e6d
movq %r13, %rdi
leaq 0x1159cf(%rip), %rsi    # 0x139049
xorl %eax, %eax
callq 0xda10
jmp 0x22fdb
xorl %r15d, %r15d
jmp 0x22bac
xorl %r14d, %r14d
jmp 0x22c2f
xorl %r14d, %r14d
jmp 0x230a7
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x236fc
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x236fc
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x236fc
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x244b9
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x23728
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x115947(%rip), %rdx    # 0x13907c
callq 0x10aa16
movq (%r13), %rbx
movl (%rbp), %ecx
movslq %ecx, %rcx
leaq (%rcx,%rcx,2), %rcx
movq 0x20(%rbp,%rcx,8), %rdx
movq 0x18(%rbp,%rcx,8), %rsi
andq %rbx, %rsi
shlq $0x4, %rsi
leaq (%rdx,%rsi), %rcx
movq (%rdx,%rsi), %rdx
testb %al, %al
je 0x23ada
movl $0x8, %eax
cmpq %rbx, %rdx
je 0x237a1
movq 0x10(%rcx), %rdx
movl $0x18, %eax
cmpq %rbx, %rdx
je 0x237a1
movq 0x20(%rcx), %rdx
movl $0x28, %eax
cmpq %rbx, %rdx
je 0x237a1
movq 0x30(%rcx), %rdx
movl $0x38, %eax
cmpq %rbx, %rdx
jne 0x24749
movq (%rcx,%rax), %r14
testq %r14, %r14
jne 0x237cd
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x1158ae(%rip), %rdx    # 0x139088
callq 0x10aa16
movb $0x1, %r14b
testb %al, %al
je 0x23def
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x4, 0x10(%rbx)
movq (%r13), %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 0x2386f
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x2386f
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x2386f
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x247f0
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x2389b
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r15, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
callq 0x10aa5d
movq %rax, 0x50(%rsp)
movq %r13, %rdi
leaq 0x114c39(%rip), %rsi    # 0x1384ee
xorl %eax, %eax
callq 0xda10
movq %rax, %r14
testq %rax, %rax
je 0x238d3
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
movb $0x1, %r15b
testq %r14, %r14
jne 0x2392f
xorl %eax, %eax
callq 0x114bbb
movl $0x4, %esi
movq %rbx, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq 0x10(%rsp), %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x21ec1
movq %rax, %r14
testq %rax, %rax
je 0x23926
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
je 0x246a6
xorl %ebx, %ebx
movb $0x1, %r14b
testb %bl, %bl
jne 0x23df2
xorl %r14d, %r14d
jmp 0x23e27
xorl %r13d, %r13d
jmp 0x22db6
cmpq $0x0, 0x30(%rsp)
je 0x23dc8
movq %r15, 0x50(%rsp)
movq 0x28(%rsp), %rsi
movq 0x90(%rsp), %rax
movq (%rax), %r15
movl 0x17bd2d(%rip), %eax    # 0x19f6a0
cltq
leaq (%rax,%rax,2), %rax
leaq 0x17bd20(%rip), %rdx    # 0x19f6a0
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r15, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r15, %rdx
je 0x239d1
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x239d1
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x239d1
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x247b9
movq (%rax,%rcx), %rbx
testq %rbx, %rbx
jne 0x23a07
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %rsi, %r14
movq %r15, %rsi
callq 0xf3f85
movq %rax, %rbx
leaq 0x17bca7(%rip), %rdi    # 0x19f6a0
movq %r15, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rsi
movq 0x90(%rsp), %rdi
callq *0x50(%rbx)
movq 0x50(%rsp), %r14
movq %rax, 0x8(%r14)
movq %r14, %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
callq 0x18fa3
movq %rax, %rbx
testq %rax, %rax
je 0x23a42
movq 0x70(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x23481
movq %r13, %rdi
leaq 0x114cc3(%rip), %rsi    # 0x138718
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x23a73
movq 0x70(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x23481
movq %r14, %rdi
callq 0xc8348
movq 0x10(%rsp), %rdi
movq (%rdi), %rsi
movq %rax, %rdx
callq 0x5b3a7
movq 0x60(%rsp), %rdi
movq %rax, %rsi
callq 0x1b29a
movq %rax, %rbx
testq %rax, %rax
je 0x23ab8
movq 0x70(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x23481
leaq 0x70(%rsp), %rdi
callq 0xe0b11
movb $0x1, %bl
jmp 0x23483
xorl %r14d, %r14d
jmp 0x2323c
movl $0x8, %eax
cmpq %rbx, %rdx
je 0x23b12
movq 0x10(%rcx), %rdx
movl $0x18, %eax
cmpq %rbx, %rdx
je 0x23b12
movq 0x20(%rcx), %rdx
movl $0x28, %eax
cmpq %rbx, %rdx
je 0x23b12
movq 0x30(%rcx), %rdx
movl $0x38, %eax
cmpq %rbx, %rdx
jne 0x24751
movq (%rcx,%rax), %r14
testq %r14, %r14
jne 0x23b3e
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x1155e5(%rip), %rdx    # 0x139130
callq 0x10aa16
testb %al, %al
je 0x23e3d
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x23bb6
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x23bb6
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x23bb6
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x23db8
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x23be2
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r15
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x40(%r15)
jne 0x23bf8
movq %r15, %rdi
leaq 0x12131e(%rip), %rsi    # 0x144f11
callq 0xf592c
movq %r13, %rdi
callq *0x40(%r15)
testb %al, %al
jne 0x23301
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x4, 0x10(%rbx)
callq 0xe6da
movl $0x4, %esi
movq %rbx, %rdi
movabsq $0x72c1e17e15481547, %rdx # imm = 0x72C1E17E15481547
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq %rax, %rdi
movq 0x10(%rsp), %rsi
movq %r13, %rdx
callq 0xe90f
movq %rax, %r14
testq %rax, %rax
je 0x23c77
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
movl $0x1, %r15d
testq %r14, %r14
jne 0x23daa
movq %rbx, %rdi
callq 0xc8348
movq 0x10(%rsp), %r14
movq (%r14), %rsi
movq %r14, %rdi
movq %rax, %rdx
callq 0x5b3a7
movq 0x140(%r14), %rdi
movl $0x118, %eax            # imm = 0x118
addq %rax, %rdi
movq 0x8(%rbx), %rsi
callq 0xd6cb1
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x23d17
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x23d17
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x23d17
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x23dc0
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x23d43
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x1153ec(%rip), %rdx    # 0x13913c
callq 0x10aa16
testb %al, %al
je 0x23d70
movq 0x20(%rsp), %rdi
movl $0x4, %esi
callq 0xe0b46
movl $0x8, %r15d
jmp 0x23daa
movq %r13, %rdi
leaq 0x1153c9(%rip), %rsi    # 0x139143
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x23d98
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x23daa
leaq 0x20(%rsp), %rdi
callq 0xe0b11
xorl %r15d, %r15d
testl %r15d, %r15d
je 0x23b58
jmp 0x241af
xorl %r15d, %r15d
jmp 0x23bba
xorl %r14d, %r14d
jmp 0x23d1b
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x115285(%rip), %rsi    # 0x139059
xorl %eax, %eax
callq 0xddb2
movq %rax, 0x8(%rsp)
movq 0x70(%rsp), %rdi
callq 0xe0b30
jmp 0x23483
movb $0x1, %r15b
movq 0x10(%rsp), %rdi
testb %r15b, %r15b
je 0x23e27
movq %r13, %rsi
movl $0x1, %edx
callq 0x226f1
testq %rax, %rax
sete %r14b
je 0x23e27
movq %rax, %rbx
leaq 0xb8(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testb %r14b, %r14b
jne 0x23301
jmp 0x254e8
xorl %r14d, %r14d
jmp 0x233a4
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x23e9b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x23e9b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x23e9b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x247f8
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x23ec7
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x115272(%rip), %rdx    # 0x139146
callq 0x10aa16
testb %al, %al
je 0x241c6
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x23f3f
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x23f3f
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x23f3f
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x2419f
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x23f6b
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r15
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x40(%r15)
jne 0x23f81
movq %r15, %rdi
leaq 0x120f95(%rip), %rsi    # 0x144f11
callq 0xf592c
movq %r13, %rdi
callq *0x40(%r15)
testb %al, %al
jne 0x23301
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x70(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x70(%rsp), %rbx
movq $0x4, 0x10(%rbx)
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0xe498
movq %rbx, %rdi
movabsq $0x72c1e17e15481547, %rsi # imm = 0x72C1E17E15481547
movq %r15, %rdx
callq 0xe06ab
movq %r15, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
movq %r13, %rdx
callq 0xe90f
movq 0x28(%rsp), %rsi
movq 0x160(%rsp), %rdi
callq 0xd6cb1
movq 0xb8(%r14), %rbx
movq %r15, %rdi
callq 0xeb9d
movq %rax, %rcx
movl $0xff, %edi
andq %rdi, %rcx
xorq %rbx, %rcx
movabsq $0x100000001b3, %rsi    # imm = 0x100000001B3
imulq %rsi, %rcx
movl %eax, %edx
shrl $0x8, %edx
movl $0xff, %r8d
andl %r8d, %edx
xorq %rcx, %rdx
imulq %rsi, %rdx
movl %eax, %ecx
shrl $0x10, %ecx
andl %r8d, %ecx
xorq %rdx, %rcx
imulq %rsi, %rcx
movl %eax, %edx
shrl $0x18, %edx
xorq %rcx, %rdx
imulq %rsi, %rdx
movq %rax, %rcx
shrq $0x20, %rcx
andq %rdi, %rcx
xorq %rdx, %rcx
imulq %rsi, %rcx
movq %rax, %rdx
shrq $0x28, %rdx
andq %rdi, %rdx
xorq %rcx, %rdx
imulq %rsi, %rdx
movq %rax, %rcx
shrq $0x30, %rcx
andq %rdi, %rcx
xorq %rdx, %rcx
imulq %rsi, %rcx
shrq $0x38, %rax
xorq %rcx, %rax
imulq %rsi, %rax
movq %rax, 0xb8(%r14)
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x240fc
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x240fc
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x240fc
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x241a7
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x24128
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x115007(%rip), %rdx    # 0x13913c
callq 0x10aa16
testb %al, %al
je 0x24154
movq 0x70(%rsp), %rdi
movl $0x4, %esi
callq 0xe0b46
movl $0xa, %eax
jmp 0x24192
movq %r13, %rdi
leaq 0x114fe5(%rip), %rsi    # 0x139143
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x2417c
movq 0x70(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
movl $0x1, %eax
testq %rbx, %rbx
jne 0x24192
leaq 0x70(%rsp), %rdi
callq 0xe0b11
xorl %eax, %eax
testl %eax, %eax
je 0x23ee1
jmp 0x244ab
xorl %r15d, %r15d
jmp 0x23f43
xorl %r14d, %r14d
jmp 0x24100
cmpl $0x8, %r15d
jne 0x254e8
jmp 0x23301
xorl %r14d, %r14d
jmp 0x234fa
movq %r13, %rdi
leaq 0x114f82(%rip), %rsi    # 0x139152
callq 0x115a3
testb %al, %al
je 0x244c1
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x2423b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x2423b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x2423b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x2449b
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x24267
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r15
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x40(%r15)
jne 0x2427d
movq %r15, %rdi
leaq 0x120c99(%rip), %rsi    # 0x144f11
callq 0xf592c
movq %r13, %rdi
callq *0x40(%r15)
testb %al, %al
jne 0x23301
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x70(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x70(%rsp), %rbx
movq $0x4, 0x10(%rbx)
leaq 0x20(%rsp), %r15
movq %r15, %rdi
callq 0xe498
movq %rbx, %rdi
movabsq $0x72c1e17e15481547, %rsi # imm = 0x72C1E17E15481547
movq %r15, %rdx
callq 0xe06ab
movq %r15, %rdi
movq 0x10(%rsp), %r14
movq %r14, %rsi
movq %r13, %rdx
callq 0xe90f
movq 0x28(%rsp), %rsi
movq 0x150(%rsp), %rdi
callq 0xd6cb1
movq 0xb8(%r14), %rbx
movq %r15, %rdi
callq 0xeb9d
movq %rax, %rcx
movl $0xff, %edi
andq %rdi, %rcx
xorq %rbx, %rcx
movabsq $0x100000001b3, %rsi    # imm = 0x100000001B3
imulq %rsi, %rcx
movl %eax, %edx
shrl $0x8, %edx
movl $0xff, %r8d
andl %r8d, %edx
xorq %rcx, %rdx
imulq %rsi, %rdx
movl %eax, %ecx
shrl $0x10, %ecx
andl %r8d, %ecx
xorq %rdx, %rcx
imulq %rsi, %rcx
movl %eax, %edx
shrl $0x18, %edx
xorq %rcx, %rdx
imulq %rsi, %rdx
movq %rax, %rcx
shrq $0x20, %rcx
andq %rdi, %rcx
xorq %rdx, %rcx
imulq %rsi, %rcx
movq %rax, %rdx
shrq $0x28, %rdx
andq %rdi, %rdx
xorq %rcx, %rdx
imulq %rsi, %rdx
movq %rax, %rcx
shrq $0x30, %rcx
andq %rdi, %rcx
xorq %rdx, %rcx
imulq %rsi, %rcx
shrq $0x38, %rax
xorq %rcx, %rax
imulq %rsi, %rax
movq %rax, 0xb8(%r14)
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x243f8
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x243f8
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x243f8
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x244a3
movq (%rax,%rcx), %r14
testq %r14, %r14
jne 0x24424
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r14
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r14, %rdi
movq %r13, %rsi
leaq 0x114d0b(%rip), %rdx    # 0x13913c
callq 0x10aa16
testb %al, %al
je 0x24450
movq 0x70(%rsp), %rdi
movl $0x4, %esi
callq 0xe0b46
movl $0xc, %eax
jmp 0x2448e
movq %r13, %rdi
leaq 0x114ce9(%rip), %rsi    # 0x139143
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x24478
movq 0x70(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
movl $0x1, %eax
testq %rbx, %rbx
jne 0x2448e
leaq 0x70(%rsp), %rdi
callq 0xe0b11
xorl %eax, %eax
testl %eax, %eax
je 0x241dd
jmp 0x24698
xorl %r15d, %r15d
jmp 0x2423f
xorl %r14d, %r14d
jmp 0x243fc
cmpl $0xa, %eax
jne 0x254e8
jmp 0x23301
xorl %r14d, %r14d
jmp 0x23700
movq %r13, %rdi
leaq 0x114c99(%rip), %rsi    # 0x139164
callq 0x115a3
testb %al, %al
je 0x24759
movq (%r13), %rbx
movl (%rbp), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%rbp,%rax,8), %rcx
movq 0x18(%rbp,%rax,8), %rdx
andq %rbx, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %rbx, %rdx
je 0x24536
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %rbx, %rdx
je 0x24536
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %rbx, %rdx
je 0x24536
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %rbx, %rdx
jne 0x24690
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x24562
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %rbx, %rsi
callq 0xf3f85
movq %rax, %r15
movq %rbp, %rdi
movq %rbx, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x40(%r15)
jne 0x24578
movq %r15, %rdi
leaq 0x12099e(%rip), %rsi    # 0x144f11
callq 0xf592c
movq %r13, %rdi
callq *0x40(%r15)
testb %al, %al
jne 0x23301
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x4, 0x10(%rbx)
callq 0xf291
movl $0x4, %esi
movq %rbx, %rdi
movabsq $0x67ce6dd302fec85d, %rdx # imm = 0x67CE6DD302FEC85D
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq 0x10(%rsp), %rsi
movq %rsi, 0x10(%rax)
movq %rax, %rdi
movq %r13, %rdx
callq 0xf4c6
movq %rax, %r14
testq %rax, %rax
je 0x245fb
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
movl $0x1, %r15d
testq %r14, %r14
jne 0x24682
movq %rbx, %rdi
callq 0xc8348
movq 0x10(%rsp), %rdi
movq (%rdi), %rsi
movq %rax, %rdx
callq 0x5b3a7
movq %r13, %rdi
leaq 0x114b14(%rip), %rsi    # 0x13913c
callq 0x115a3
testb %al, %al
je 0x24648
movq 0x20(%rsp), %rdi
movl $0x4, %esi
callq 0xe0b46
movl $0xe, %r15d
jmp 0x24682
movq %r13, %rdi
leaq 0x114af1(%rip), %rsi    # 0x139143
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x24670
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x24682
leaq 0x20(%rsp), %rdi
callq 0xe0b11
xorl %r15d, %r15d
testl %r15d, %r15d
je 0x244d8
jmp 0x247c0
xorl %r15d, %r15d
jmp 0x2453a
cmpl $0xc, %eax
jne 0x254e8
jmp 0x23301
movq %r13, %rdi
leaq 0x1149e0(%rip), %rsi    # 0x139090
callq 0x115a3
testb %al, %al
movb $0x1, %r14b
je 0x247cf
movq %rbx, %rdi
leaq 0x12db6f(%rip), %rsi    # 0x152239
callq 0x115888
movq 0x8(%rbx), %rdx
testb %al, %al
je 0x24964
movabsq $-0x509c42b379fe4821, %r15 # imm = 0xAF63BD4C8601B7DF
testq %rdx, %rdx
movabsq $0x100000001b3, %rsi    # imm = 0x100000001B3
je 0x24728
movb (%rdx), %al
movabsq $-0x340d631b7bdddcdb, %r15 # imm = 0xCBF29CE484222325
testb %al, %al
je 0x24728
incq %rdx
movabsq $-0x340d631b7bdddcdb, %rcx # imm = 0xCBF29CE484222325
movzbl %al, %r15d
xorq %rcx, %r15
imulq %rsi, %r15
movb (%rdx), %al
incq %rdx
movq %r15, %rcx
testb %al, %al
jne 0x24711
movq 0xa8(%rsp), %rdi
movq %r15, %rsi
callq 0xd4806
testq %rax, %rax
je 0x24ca3
movq (%rax), %rax
jmp 0x24ca5
xorl %r14d, %r14d
jmp 0x237a5
xorl %r14d, %r14d
jmp 0x23b16
movq %r13, %rdi
leaq 0x114a10(%rip), %rsi    # 0x139173
callq 0x115a3
testb %al, %al
movq 0x10(%rsp), %rbx
je 0x24800
movq $0x0, 0x110(%rbx)
movq %r13, %rdi
leaq 0x113f86(%rip), %rsi    # 0x138710
callq 0x115a3
testb %al, %al
jne 0x23301
movq %r13, %rdi
leaq 0x1149e2(%rip), %rsi    # 0x139183
callq 0x115a3
testb %al, %al
je 0x249c5
movb $0x1, %al
movl %eax, 0x68(%rsp)
jmp 0x23301
xorl %ebx, %ebx
jmp 0x239d5
cmpl $0xe, %r15d
jne 0x254e8
jmp 0x23301
movq %r13, %rdi
movq 0x50(%rsp), %rsi
callq 0x18ee7
movb $0x1, %r15b
leaq 0x20(%rsp), %rdi
callq 0xe0b11
movb $0x1, %bl
jmp 0x23934
xorl %r14d, %r14d
jmp 0x23873
xorl %r14d, %r14d
jmp 0x23e9f
movq %r13, %rdi
leaq 0x1149c0(%rip), %rsi    # 0x1391ca
callq 0x115a3
testb %al, %al
je 0x2498b
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x58(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq %rbx, %r14
movq 0x58(%rsp), %rbx
movq $0x3, 0x10(%rbx)
leaq 0x70(%rsp), %r15
movq %r15, %rdi
callq 0x113f7c
movq %rbx, %rdi
movabsq $-0x503db0e6e1c2e704, %rsi # imm = 0xAFC24F191E3D18FC
movq %r15, %rdx
callq 0xe06ab
movq %r14, %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x21ec1
movq %rax, %r14
testq %rax, %rax
je 0x24888
movq 0x58(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq %r13, %rdi
leaq 0x11493c(%rip), %rsi    # 0x1391d7
callq 0x115a3
movq %r13, %rdi
leaq 0x114935(%rip), %rsi    # 0x1391df
callq 0x115a3
movb %al, 0x1f(%rsp)
movq 0xe8(%rsp), %rdi
callq 0x128be
movl $0x3, %esi
movq %rbx, %rdi
movabsq $0x2d2648b9bef99573, %rdx # imm = 0x2D2648B9BEF99573
movq %rax, %rcx
callq 0xe0676
movq %rax, %r15
movq 0x10(%rsp), %r14
movq 0xa8(%r14), %rax
movq %rax, 0x50(%rsp)
xorl %eax, %eax
callq 0x114bbb
movl $0x3, %esi
movq %rbx, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq %r13, %rdi
leaq 0x1148d6(%rip), %rsi    # 0x1391f2
callq 0x115a3
testb %al, %al
movq %r15, 0xa0(%rsp)
je 0x24dd7
movq %r15, %rdi
movq %r14, %rsi
movq %r13, %rdx
callq 0x12a5b
movq %rax, %r14
testq %rax, %rax
je 0x24956
movq 0x58(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
jmp 0x251e8
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x1153c8(%rip), %rsi    # 0x139d38
xorl %eax, %eax
callq 0xddb2
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
callq 0xe0b30
jmp 0x23934
movq %r13, %rdi
leaq 0x11486a(%rip), %rsi    # 0x1391ff
callq 0x115a3
movq %r13, %rdi
testb %al, %al
je 0x24ac5
leaq 0x114833(%rip), %rsi    # 0x1391df
callq 0x115a3
testb %al, %al
je 0x24d12
movb $0x1, 0xca(%rbx)
jmp 0x24fa8
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x4, 0x10(%rbx)
xorl %eax, %eax
callq 0x114bbb
movl $0x4, %esi
movq %rbx, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq 0x10(%rsp), %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x21ec1
movq %rax, %r14
testq %rax, %rax
je 0x24a37
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x23481
movq %rbx, %rdi
leaq 0x12d7ef(%rip), %rsi    # 0x152239
callq 0x115888
movq 0x8(%rbx), %rdx
testb %al, %al
je 0x24eed
movabsq $-0x509c42b379fe4821, %rsi # imm = 0xAF63BD4C8601B7DF
testq %rdx, %rdx
movabsq $0x100000001b3, %rdi    # imm = 0x100000001B3
je 0x24aa7
movb (%rdx), %al
movabsq $-0x340d631b7bdddcdb, %rsi # imm = 0xCBF29CE484222325
testb %al, %al
je 0x24aa7
incq %rdx
movabsq $-0x340d631b7bdddcdb, %rcx # imm = 0xCBF29CE484222325
movzbl %al, %esi
xorq %rcx, %rsi
imulq %rdi, %rsi
movb (%rdx), %al
incq %rdx
movq %rsi, %rcx
testb %al, %al
jne 0x24a91
movq 0xa8(%rsp), %rdi
callq 0xd4806
testq %rax, %rax
je 0x24fe1
movq (%rax), %rax
jmp 0x24fe3
leaq 0x114782(%rip), %rsi    # 0x13924e
callq 0x115a3
testb %al, %al
je 0x24d35
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x3, 0x10(%rbx)
movq %r13, %rdi
callq 0xdd05
movq %rax, %rdi
callq 0xc8e31
movl $0x3, %esi
movq %rbx, %rdi
movabsq $-0x503db0e6e1c2e704, %r14 # imm = 0xAFC24F191E3D18FC
movq %r14, %rdx
movq %rax, %rcx
callq 0xe0676
cmpq $0x0, 0x10(%rax)
jne 0x24b41
movq %rax, %rdi
movl $0x2e, %esi
callq 0x115381
xorl %eax, %eax
callq 0x114bbb
movl $0x3, %esi
movq %rbx, %rdi
movq %r14, %rdx
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq %r13, %rdi
leaq 0x1146f3(%rip), %rsi    # 0x13925b
movq %rax, %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %r14
testq %rax, %rax
je 0x24b89
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq %r13, %rdi
leaq 0x117d2b(%rip), %rsi    # 0x13c8c7
xorl %eax, %eax
callq 0xda10
movq %rax, %r14
testq %rax, %rax
je 0x24bba
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq 0x130(%rsp), %rdi
movq %rbx, %rsi
callq 0xc38cb
movq $0x0, 0x70(%rsp)
movq 0x8(%rbx), %rsi
movq %r13, %rdi
leaq 0x70(%rsp), %rdx
callq 0xdb5d
movq %rax, %rbx
testq %rax, %rax
je 0x24c04
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x232f7
cmpq $0x0, 0x10(%r12)
setne 0x50(%rsp)
je 0x24c7f
xorl %r15d, %r15d
movq 0x8(%r12), %rax
movq (%rax,%r15,8), %rbx
movq 0x70(%rsp), %rdi
callq 0xdd05
movq %rax, %r14
movq %rbx, %rdi
callq 0xdd05
movq %r14, %rdi
movq %rax, %rsi
callq 0xe99c9
movl %eax, %ebx
testl %eax, %eax
jne 0x24c6c
movq %r13, %rdi
leaq 0x11460e(%rip), %rsi    # 0x139264
xorl %eax, %eax
callq 0xddb2
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
callq 0xe0b30
testl %ebx, %ebx
je 0x24c7f
incq %r15
cmpq 0x10(%r12), %r15
setb 0x50(%rsp)
jb 0x24c1d
testb $0x1, 0x50(%rsp)
jne 0x232f7
movq 0x70(%rsp), %r13
movq (%r12), %rsi
movq %r12, %rdi
movq %r13, %rdx
callq 0x5b3a7
jmp 0x231c9
xorl %eax, %eax
testq %rax, %rax
je 0x24cda
movabsq $0x12d01d78049fae7, %rcx # imm = 0x12D01D78049FAE7
cmpq %rcx, (%rax)
jne 0x24cda
movq 0xa8(%rsp), %rdi
movq %r15, %rsi
callq 0xd4806
testq %rax, %rax
je 0x24e2b
movq (%rax), %r15
jmp 0x24e2e
movq 0x8(%rbx), %rdx
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x1143ad(%rip), %rsi    # 0x139097
xorl %eax, %eax
callq 0xddb2
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
callq 0xe0b30
movb $0x1, %r15b
testb %bl, %bl
jne 0x247df
xorl %ebx, %ebx
jmp 0x23934
movq %r13, %rdi
leaq 0x1144ee(%rip), %rsi    # 0x13920a
callq 0x115a3
testb %al, %al
je 0x24e9b
movb $0x0, 0xc8(%rbx)
jmp 0x24fa8
movq %r13, %rdi
leaq 0x11453e(%rip), %rsi    # 0x13927d
callq 0x115a3
testb %al, %al
je 0x24ebe
leaq 0xf8(%rsp), %rdi
movq %rdi, 0x20(%rsp)
leaq 0xb8(%rsp), %rsi
callq 0xe0431
movq 0x20(%rsp), %rbx
movq $0x3, 0x10(%rbx)
movq %r13, %rdi
leaq 0x11450f(%rip), %rsi    # 0x13928c
callq 0x115a3
testb %al, %al
je 0x24f31
movb $0x0, 0x70(%rsp)
movq %r13, %rdi
leaq 0x114501(%rip), %rsi    # 0x13929a
leaq 0x70(%rsp), %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %r14
testq %rax, %rax
je 0x24dbc
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
je 0x252a0
xorl %r15d, %r15d
xorl %eax, %eax
testb %al, %al
je 0x23481
jmp 0x25055
movq %r14, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x21ec1
movq %rax, %r14
testq %rax, %rax
je 0x24dfc
movq 0x58(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
cmpq $0x0, 0x10(%rbx)
je 0x251a9
movq 0x8(%rbx), %rsi
movq 0x138(%rsp), %rdi
callq 0xddb52
movq %rax, 0x50(%rsp)
jmp 0x251c3
xorl %r15d, %r15d
testq %r15, %r15
je 0x24e4b
movabsq $0x12d01d78049fae7, %rax # imm = 0x12D01D78049FAE7
cmpq %rax, (%r15)
movl $0x0, %eax
cmovneq %rax, %r15
jmp 0x24e4e
xorl %r15d, %r15d
cmpb $0x1, 0x3a(%r15)
jne 0x24e6a
movq 0x8(%rbx), %rdx
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x114265(%rip), %rsi    # 0x1390ca
jmp 0x24cea
movq %r15, %rdi
movq %r13, %rsi
callq 0x26487
movq %rax, %rbx
testq %rax, %rax
je 0x24e8c
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
je 0x24efe
movb $0x1, %r15b
xorl %ebx, %ebx
jmp 0x24d03
movq %r13, %rdi
leaq 0x114379(%rip), %rsi    # 0x13921e
callq 0x115a3
testb %al, %al
je 0x24f59
movb $0x1, 0xd8(%rbx)
jmp 0x24fa8
movq %r13, %rdi
leaq 0x11432a(%rip), %rsi    # 0x1391f2
callq 0x115a3
testb %al, %al
je 0x25507
movq 0xe8(%rsp), %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x12a5b
jmp 0x24f85
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x114e3f(%rip), %rsi    # 0x139d38
jmp 0x2519d
movq 0x10(%rsp), %r14
movq 0xb8(%r14), %rbx
movq %r15, %rdi
callq 0x266bd
movq %rbx, %rdi
movq %rax, %rsi
callq 0xecb2
movq %rax, 0xb8(%r14)
movb $0x1, %r14b
movb $0x1, %bl
xorl %r15d, %r15d
jmp 0x24d03
movq %r13, %rdi
leaq 0x114388(%rip), %rsi    # 0x1392c3
callq 0x115a3
testb %al, %al
je 0x25052
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x11437f(%rip), %rsi    # 0x1392d3
jmp 0x2548c
movq %r13, %rdi
leaq 0x1142d3(%rip), %rsi    # 0x139236
callq 0x115a3
testb %al, %al
je 0x24fa8
movq %r13, %rdi
leaq 0x1142cc(%rip), %rsi    # 0x139242
movq 0x128(%rsp), %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x24f9f
leaq 0xb8(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x254e8
movq %r13, %rdi
leaq 0x117915(%rip), %rsi    # 0x13c8c7
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x24fd3
leaq 0xb8(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
je 0x23301
jmp 0x254e8
xorl %eax, %eax
testq %rax, %rax
je 0x2503d
movabsq $0x12d01d78049fae7, %rcx # imm = 0x12D01D78049FAE7
cmpq %rcx, (%rax)
jne 0x2518d
movq 0x10(%rsp), %rcx
movq %rax, 0x110(%rcx)
movq %r13, %rdi
leaq 0x1178b6(%rip), %rsi    # 0x13c8c7
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x2502f
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x23481
jmp 0x25183
movq 0x8(%rbx), %rdx
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x114143(%rip), %rsi    # 0x139190
jmp 0x2519d
xorl %r15d, %r15d
xorl %eax, %eax
callq 0x114bbb
movl $0x3, %esi
movq %rbx, %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
movq %rax, %rcx
callq 0xe0676
movq %rax, %rbx
movq %r13, %rdi
leaq 0x114294(%rip), %rsi    # 0x139317
callq 0x115a3
testb %al, %al
je 0x250d1
movq %rbx, %rdi
movl $0x22, %esi
callq 0x115381
movq %r13, %rdi
leaq 0x11427b(%rip), %rsi    # 0x13931e
movq %rbx, %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %r14
testq %rax, %rax
je 0x250c4
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x23481
movb $0x22, %al
jmp 0x2512b
movq %r13, %rdi
leaq 0x11424f(%rip), %rsi    # 0x13932a
callq 0x115a3
testb %al, %al
je 0x25480
movq %rbx, %rdi
movl $0x3c, %esi
callq 0x115381
movq %r13, %rdi
leaq 0x114232(%rip), %rsi    # 0x139331
movq %rbx, %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %r14
testq %rax, %rax
je 0x25120
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x23481
movb $0x3e, %al
movzbl %al, %esi
movq %rbx, %rdi
callq 0x115381
movq %r13, %rdi
leaq 0x117787(%rip), %rsi    # 0x13c8c7
xorl %eax, %eax
callq 0xda10
movq %rax, %r14
testq %rax, %rax
je 0x2515e
movq 0x20(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x23481
movzbl %r15b, %eax
shll $0x5, %eax
movq 0x10(%rsp), %rcx
leaq (%rax,%rcx), %rdi
addq $0x28, %rdi
movq %rbx, %rsi
callq 0xc38cb
leaq 0x20(%rsp), %rdi
jmp 0x23ac6
movq 0x8(%rbx), %rdx
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x11400f(%rip), %rsi    # 0x1391ac
xorl %eax, %eax
callq 0xddb2
jmp 0x25493
movq 0x60(%rsp), %rdi
movq 0x50(%rsp), %rsi
callq 0xe39f
movq %rbx, %rdi
movq %rax, %rsi
callq 0x11454b
movq %r13, %rdi
leaq 0x114025(%rip), %rsi    # 0x1391f2
callq 0x115a3
testb %al, %al
je 0x251e8
movq 0xa0(%rsp), %rdi
movq 0x10(%rsp), %rsi
jmp 0x24937
movq $0x0, 0x98(%rsp)
movq 0x10(%rsp), %rax
movq 0x138(%rax), %rdi
movq 0x78(%rsp), %rcx
movq 0x8(%rbx), %r8
movq 0x90(%rsp), %rsi
movq %r13, %rdx
leaq 0x98(%rsp), %r9
callq 0x26884
movq %rax, %rbx
testq %rax, %rax
je 0x25238
movq 0x58(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x232f7
movq 0x98(%rsp), %rbx
testq %rbx, %rbx
je 0x252e5
leaq 0xe0(%rbx), %rdi
movq 0xa0(%rsp), %rsi
callq 0x129eb
movq %rbx, %rdi
movq 0x10(%rsp), %rsi
movl $0x1, %edx
movq %r13, %rcx
callq 0x22898
movq %rax, %rbx
testq %rax, %rax
je 0x25292
movq 0x58(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x232f7
jmp 0x25445
movzbl 0x70(%rsp), %ecx
movb $0x1, %al
cmpl $0x63, %ecx
sete %r15b
je 0x24dca
cmpl $0x68, %ecx
je 0x24dca
xorl %r15d, %r15d
movq %r13, %rdi
leaq 0x113fdb(%rip), %rsi    # 0x1392a5
xorl %eax, %eax
callq 0xddb2
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
callq 0xe0b30
jmp 0x24dc8
movq 0x58(%rsp), %rsi
leaq 0x20(%rsp), %rdi
movq %rdi, 0xb0(%rsp)
callq 0xe0431
movq 0xb0(%rsp), %rbx
movq $0x4, 0x10(%rbx)
movq 0x10(%rsp), %r15
movq 0x138(%r15), %r14
callq 0x2117b
movq (%r14), %rsi
movq %r14, %rdi
movq %rax, %rdx
callq 0x5b3a7
movq %rax, %r14
movq %rax, 0x98(%rsp)
movq %r15, 0x20(%rax)
movq 0x138(%r15), %rax
movq %rax, 0x138(%r14)
movq 0x140(%r15), %rax
movq %rax, 0x140(%r14)
movq 0x110(%r15), %rax
movq %rax, 0x110(%r14)
movb 0xc8(%r15), %al
movb %al, 0xc8(%r14)
movq 0x78(%rsp), %rdx
movq %r14, %rdi
movq 0x90(%rsp), %rsi
callq 0x213b0
movb 0x1f(%rsp), %al
movb %al, 0xca(%r14)
movq 0x50(%rsp), %rax
movq %rax, 0xb0(%r14)
leaq 0xe0(%r14), %rdi
movq 0xa0(%rsp), %rsi
callq 0x1267b
movq %r14, %rdi
movq %r15, %rsi
movl $0x1, %edx
movq %r13, %rcx
callq 0x22898
movq %rax, %r14
testq %rax, %rax
je 0x253df
movq 0xb0(%rsp), %rdi
callq 0xe0b30
movq %r14, 0x8(%rsp)
testq %r14, %r14
jne 0x232f7
movq 0x98(%rsp), %r14
movq 0x60(%rsp), %rdi
movq %r14, %rsi
callq 0x26c3a
callq 0x28b71
movl $0x4, %esi
movq %rbx, %rdi
movabsq $-0x4b14f1d5a904cf79, %rdx # imm = 0xB4EB0E2A56FB3087
movq %rax, %rcx
callq 0xe0676
movq %r14, 0x8(%rax)
movq %rax, %rdi
callq 0xc8348
movq 0x10(%rsp), %rdi
movq (%rdi), %rsi
movq %rax, %rdx
callq 0x5b3a7
leaq 0xb0(%rsp), %rdi
callq 0xe0b11
movq %r13, %rdi
leaq 0x1132c9(%rip), %rsi    # 0x138718
xorl %eax, %eax
callq 0xda10
movq %rax, %rbx
testq %rax, %rax
je 0x2546d
movq 0x58(%rsp), %rdi
callq 0xe0b30
movq %rbx, 0x8(%rsp)
testq %rbx, %rbx
jne 0x232f7
leaq 0x58(%rsp), %rdi
jmp 0x231ce
xorl %ebx, %ebx
movq %r13, %rdi
leaq 0x113eb1(%rip), %rsi    # 0x13933d
xorl %eax, %eax
callq 0xddb2
movq %rax, 0x8(%rsp)
movq 0x20(%rsp), %rdi
jmp 0x23de5
cmpb $0x0, 0x6c(%rsp)
je 0x254c5
cmpq $0x2, 0x10(%r12)
jb 0x254ba
leaq 0x113ee4(%rip), %rsi    # 0x13939c
jmp 0x254cc
movq $0x0, 0x8(%rsp)
jmp 0x254db
leaq 0x113b3a(%rip), %rsi    # 0x139006
movq %r13, %rdi
xorl %eax, %eax
callq 0xddb2
movq %rax, 0x8(%rsp)
leaq 0xb8(%rsp), %rdi
callq 0xe0b30
movq 0x8(%rsp), %rax
addq $0x168, %rsp            # imm = 0x168
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r15d, %r15d
jmp 0x22a28
movq %r13, %rdi
callq 0x18dda
movq %r13, %rdi
movq %rax, %rsi
callq 0x18ee7
leaq 0x113e53(%rip), %rsi    # 0x139374
jmp 0x254cc