// File: /workspace/github_c_makefile_star2_O1/johsteffens[P]beth/xoico/src/xoico.xo.c
// Function: xoico_typespec_s_parse
er_t xoico_typespec_s_parse( xoico_typespec_s* o, const xoico_host* host, x_source* source )
{
    // xoico_typespec.x:117:1
    BLM_INIT_LEVEL(0);
    xoico_typespec_s_reset(o);
    xoico_compiler_s* compiler = xoico_host_a_compiler(host);
    
    if( x_source_parse_bl(source,"#?'...' " ) )
    {
        o->flag_variadic = true;
        BLM_RETURNV(er_t, 0)
    }
    
    tp_t access_class = 0;
    
    if(      x_source_parse_bl(source," #?w'c'" ) || x_source_parse_bl(source," #?w'const'"       ) ) access_class = TYPEOF_const;
    else if( x_source_parse_bl(source," #?w'm'" ) || x_source_parse_bl(source," #?w'mutable'"     ) ) access_class = TYPEOF_mutable;
    else if( x_source_parse_bl(source," #?w'd'" ) || x_source_parse_bl(source," #?w'discardable'" ) ) access_class = TYPEOF_discardable;
    
    while( !x_source_eos(source) )
    {
        if     ( x_source_parse_bl(source," #?w'static'"   ) && !o->flag_static ) o->flag_static = true;
        else if( x_source_parse_bl(source," #?w'volatile'" ) && !o->flag_volatile ) o->flag_volatile = true;
        else if( x_source_parse_bl(source," #?w'obliv'"    ) && !o->flag_obliv ) o->flag_obliv = true;
        else if( x_source_parse_bl(source," #?w'aware'"    ) && !o->flag_aware ) o->flag_aware = true;
        else break;
    }
    
    BLM_TRY(x_source_parse_fa(source," " ))
    
    if( x_source_parse_bl(source,"#?'(' " ) )
    {
        st_s* s = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create()));
        BLM_TRY(x_source_parse_fa(source,"#name ", s ))
        if( s->size == 0 ) BLM_TRY(x_source_parse_error_fa(source,"Transient class: Identifier expected." ))
        BCORE_PASS_CREATE(xoico_typespec_transient_s,o->transient)->class = xoico_compiler_s_entypeof(compiler,s->sc );
        BLM_TRY(x_source_parse_fa(source," ) " ))
    }
    
    if( x_source_parse_bl(source,"#=?':'" ) )
    {
        BLM_TRY(xoico_host_a_parse_name_tp(host,source, (&(o->type)) ))
        BLM_TRY(x_source_parse_fa(source," " ))
    }
    else if( x_source_parse_bl(source,"#?'@' " ) )
    {
        o->type = ((tp_t)(TYPEOF_type_object));
    }
    else if( x_source_parse_bl(source,"#?'$' " ) )
    {
        o->type = ((tp_t)(TYPEOF_type_deduce));
    }
    else
    {
        st_s* s = ((st_s*)BLM_LEVEL_T_PUSH(0,st_s,st_s_create()));
        BLM_TRY(x_source_parse_fa(source,"#name ", s ))
        if( s->size == 0 ) BLM_TRY(x_source_parse_error_fa(source,"Argument: Type expected." ))
        o->type = xoico_compiler_s_entypeof( compiler,s->sc );
    }
    
    if( x_source_parse_bl(source,"#?'.' " ) )
    {
        if( !x_source_parse_bl(source,"#?([0]>='0'&&[0]<='9') " ) ) BLM_TRY(x_source_parse_error_fa(source,"Argument: Indirection literal expected." ))
        sz_t indirection = 0;
        BLM_TRY(x_source_parse_fa(source,"#<sz_t*> ", (&(indirection)) ))
        o->indirection = indirection;
    }
    else
    {
        while( x_source_parse_bl(source,"#?'*' " ) ) o->indirection++;
    }
    
    if( x_source_parse_bl(source," #?'restrict' " ) ) o->flag_restrict = true;
    
    if( o->indirection > 0 && access_class == 0 )
    {
        access_class = TYPEOF_const;
    }
    
    o->access_class = access_class;
    BLM_RETURNV(er_t, 0)
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdx, %r14
movq %rsi, %r13
movq %rdi, %rbx
leaq 0x198a9e(%rip), %rax    # 0x1a8dd0
movq (%rax), %rsi
leaq 0x28(%rsp), %r15
movq %r15, %rdi
callq 0xe0431
xorl %r12d, %r12d
movq %r12, 0x10(%r15)
movq %r12, 0x10(%rbx)
movq 0x18(%rbx), %rdi
callq 0xfb83
movq %r12, 0x8(%rbx)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rbx)
movq %r12, 0x26(%rbx)
movb $0x1, 0x2e(%rbx)
movq (%r13), %r15
leaq 0x18f32c(%rip), %rdx    # 0x19f6a0
movl 0x18f326(%rip), %eax    # 0x19f6a0
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 0x103d1
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r15, %rdx
je 0x103d1
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r15, %rdx
je 0x103d1
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r15, %rdx
jne 0x10d64
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x10401
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r15, %rsi
callq 0xf3f85
movq %rax, %r12
leaq 0x18f2aa(%rip), %rdi    # 0x19f6a0
movq %r15, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r13, 0x20(%rsp)
movq %r13, %rdi
callq *0x20(%r12)
movq %rax, %rbp
movq (%r14), %r12
leaq 0x1998ad(%rip), %r15    # 0x1a9cc8
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x10475
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x10475
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x10475
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x10d6c
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x104a5
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x19982e(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x127c85(%rip), %rdx    # 0x138131
movq %r13, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
je 0x104d1
movb $0x1, 0x2f(%rbx)
leaq 0x28(%rsp), %rdi
callq 0xe0b30
xorl %r13d, %r13d
jmp 0x10c56
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x1052e
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x1052e
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x1052e
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x11434
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x1055e
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x199775(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movabsq $0x65c9718e19e3df34, %r12 # imm = 0x65C9718E19E3DF34
leaq 0x127bcb(%rip), %rdx    # 0x13813a
movq %r13, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
movq %rbp, 0x10(%rsp)
je 0x10595
movl $0x0, 0x4(%rsp)
movq %r12, 0x8(%rsp)
jmp 0x10882
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x105f2
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x105f2
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x105f2
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x11494
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x10622
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x1996b1(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x127b19(%rip), %rdx    # 0x138142
movq %r13, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
je 0x10654
movl $0x0, 0x4(%rsp)
movabsq $0x65c9718e19e3df34, %rax # imm = 0x65C9718E19E3DF34
movq %rax, 0x8(%rsp)
jmp 0x10882
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x106b1
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x106b1
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x106b1
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x114e3
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x106e1
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x1995f2(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movabsq $-0x2c53c3baa9910217, %rax # imm = 0xD3AC3C45566EFDE9
movq %rax, 0x8(%rsp)
leaq 0x127a57(%rip), %rdx    # 0x13814e
movq %r13, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
jne 0x1087a
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x10767
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x10767
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x10767
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x11549
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x10797
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x19953c(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x1279b8(%rip), %rdx    # 0x138156
movq %r13, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
jne 0x1087a
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x1080e
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x1080e
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x1080e
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x1159b
movq (%rax,%rcx), %r13
testq %r13, %r13
jne 0x1083e
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r13
leaq 0x199495(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x12791f(%rip), %rdx    # 0x138164
movq %r13, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
jne 0x1086b
leaq 0x127911(%rip), %rsi    # 0x13816c
movq %r14, %rdi
callq 0x115a3
testb %al, %al
je 0x114eb
movabsq $-0x12e90733f18038df, %rax # imm = 0xED16F8CC0E7FC721
movq %rax, 0x8(%rsp)
movl $0x0, 0x4(%rsp)
leaq 0x18(%rbx), %rax
movq %rax, 0x58(%rsp)
leaq 0x8(%rbx), %rax
movq %rax, 0x18(%rsp)
leaq 0x1278e3(%rip), %rbp    # 0x13817e
movq (%r14), %r13
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x108f8
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x108f8
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x108f8
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x10c0b
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x10924
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
cmpq $0x0, 0x40(%r12)
jne 0x1093b
movq %r12, %rdi
leaq 0x1345db(%rip), %rsi    # 0x144f11
callq 0xf592c
movq %r14, %rdi
callq *0x40(%r12)
testb %al, %al
jne 0x10c33
movq (%r14), %r13
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x109a8
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x109a8
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x109a8
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x10c13
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x109d4
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
movq %r14, %rsi
movq %rbp, %rdx
callq 0x10aa16
testb %al, %al
je 0x109f0
cmpb $0x0, 0x28(%rbx)
je 0x10bf0
movq (%r14), %r13
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x10a4d
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x10a4d
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x10a4d
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x10c1b
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x10a79
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
movq %r14, %rsi
leaq 0x127705(%rip), %rdx    # 0x13818b
callq 0x10aa16
testb %al, %al
je 0x10a99
cmpb $0x0, 0x29(%rbx)
je 0x10bf9
movq (%r14), %r13
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x10af6
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x10af6
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x10af6
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x10c23
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x10b22
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
movq %r14, %rsi
leaq 0x12766b(%rip), %rdx    # 0x13819a
callq 0x10aa16
testb %al, %al
je 0x10b42
cmpb $0x0, 0x2b(%rbx)
je 0x10c02
movq (%r14), %r13
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x10b9f
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x10b9f
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x10b9f
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x10c2b
movq (%rax,%rcx), %r12
testq %r12, %r12
jne 0x10bcb
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xf3f85
movq %rax, %r12
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %r12, %rdi
movq %r14, %rsi
leaq 0x1275ce(%rip), %rdx    # 0x1381a6
callq 0x10aa16
testb %al, %al
je 0x10c33
cmpb $0x0, 0x2c(%rbx)
jne 0x10c33
movb $0x1, 0x2c(%rbx)
jmp 0x1089b
movb $0x1, 0x28(%rbx)
jmp 0x1089b
movb $0x1, 0x29(%rbx)
jmp 0x1089b
movb $0x1, 0x2b(%rbx)
jmp 0x1089b
xorl %r12d, %r12d
jmp 0x108fc
xorl %r12d, %r12d
jmp 0x109ac
xorl %r12d, %r12d
jmp 0x10a51
xorl %r12d, %r12d
jmp 0x10afa
xorl %r12d, %r12d
jmp 0x10ba3
leaq 0x13dd73(%rip), %rsi    # 0x14e9ad
movq %r14, %rdi
xorl %eax, %eax
callq 0xda10
movq %rax, %r13
testq %rax, %rax
je 0x10c68
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %r13, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x10cc5
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x10cc5
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x10cc5
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x114d5
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x10cf5
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x198fde(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x1274b6(%rip), %rdx    # 0x1381b2
movq %rbp, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
je 0x10de7
xorl %eax, %eax
callq 0x114bbb
leaq 0x28(%rsp), %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
xorl %esi, %esi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r12
leaq 0x128b72(%rip), %rsi    # 0x1398ab
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %rbp
testq %rax, %rax
je 0x10d5b
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %rbp, %r13
testq %rbp, %rbp
je 0x10d74
xorl %eax, %eax
jmp 0x10ddf
xorl %r12d, %r12d
jmp 0x103d5
xorl %r13d, %r13d
jmp 0x10479
cmpq $0x0, 0x10(%r12)
movq 0x10(%rsp), %rax
je 0x1149c
movq 0x8(%r12), %rsi
leaq 0x140(%rax), %rdi
callq 0xddb52
movq %rax, %r12
movq 0x58(%rsp), %rbp
movq (%rbp), %rax
testq %rax, %rax
jne 0x10db0
callq 0xfad4
movq %rax, (%rbp)
movq %r12, 0x8(%rax)
leaq 0x127c8f(%rip), %rsi    # 0x138a4a
movq %r14, %rdi
xorl %eax, %eax
callq 0xda10
movq %rax, %r12
testq %rax, %rax
sete %al
je 0x10ddf
leaq 0x28(%rsp), %rdi
callq 0xe0b30
xorl %eax, %eax
movq %r12, %r13
testb %al, %al
je 0x10c56
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x10e44
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x10e44
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x10e44
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x114dc
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x10e74
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x198e5f(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x127364(%rip), %rdx    # 0x1381df
movq %rbp, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
je 0x10f8c
movq 0x20(%rsp), %rax
movq (%rax), %r12
movl 0x18e804(%rip), %eax    # 0x19f6a0
cltq
leaq (%rax,%rax,2), %rax
leaq 0x18e7f7(%rip), %rdx    # 0x19f6a0
movq 0x20(%rdx,%rax,8), %rcx
movq 0x18(%rdx,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x10efa
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x10efa
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x10efa
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x1153b
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x10f2a
movabsq $-0x1e682f89ce03d7c8, %rdi # imm = 0xE197D07631FC2838
movq %r12, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x18e781(%rip), %rdi    # 0x19f6a0
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
movq 0x20(%rsp), %rdi
movq %r14, %rsi
movq 0x18(%rsp), %rdx
callq *0x18(%rbp)
movq %rax, %r12
testq %rax, %rax
je 0x10f4f
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %r12, %r13
testq %r12, %r12
jne 0x10c56
leaq 0x13da4e(%rip), %rsi    # 0x14e9ad
movq %r14, %rdi
xorl %eax, %eax
callq 0xda10
movq %rax, %r12
testq %rax, %rax
je 0x10f7e
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %r12, %r13
testq %r12, %r12
jne 0x10c56
jmp 0x110f7
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x10fe9
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x10fe9
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x10fe9
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x11542
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x11019
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x198cba(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x1271c6(%rip), %rdx    # 0x1381e6
movq %rbp, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
je 0x1103e
movabsq $0x213393bef2495d15, %rax # imm = 0x213393BEF2495D15
jmp 0x110ef
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x1109b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x1109b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x1109b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x11594
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x110cb
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x198c08(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x12711b(%rip), %rdx    # 0x1381ed
movq %rbp, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
je 0x1143c
movabsq $-0x59040ffc58933ff2, %rax # imm = 0xA6FBF003A76CC00E
movq 0x18(%rsp), %rcx
movq %rax, (%rcx)
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x11154
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x11154
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x11154
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x11534
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x11184
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x198b4f(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x127082(%rip), %rdx    # 0x13820d
movq %rbp, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
je 0x11385
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
je 0x111fb
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x111fb
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x111fb
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x1158d
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x1122b
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %rbp
leaq 0x198aa8(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x126fe2(%rip), %rdx    # 0x138214
movq %rbp, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
jne 0x11270
leaq 0x126fe4(%rip), %rsi    # 0x13822c
movq %r14, %rdi
xorl %eax, %eax
callq 0xddb2
movq %rax, %r12
testq %rax, %rax
je 0x11267
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %r12, %r13
testq %r12, %r12
jne 0x10c56
leaq 0x60(%rsp), %rdx
movq $0x0, (%rdx)
leaq 0x126fd1(%rip), %rsi    # 0x138254
movq %r14, %rdi
xorl %eax, %eax
callq 0xda10
movq %rax, %r12
testq %rax, %rax
je 0x112a2
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %r12, %r13
testq %r12, %r12
jne 0x10c56
movq 0x60(%rsp), %rax
movq %rax, 0x20(%rbx)
movq (%r14), %r12
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r12, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r12, %rdx
movabsq $0x65c9718e19e3df34, %r13 # imm = 0x65C9718E19E3DF34
je 0x1131b
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r12, %rdx
je 0x1131b
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r12, %rdx
je 0x1131b
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r12, %rdx
jne 0x11551
movq (%rax,%rcx), %r15
testq %r15, %r15
jne 0x1134b
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r12, %rsi
callq 0xf3f85
movq %rax, %r15
leaq 0x198988(%rip), %rdi    # 0x1a9cc8
movq %r12, %rsi
movq %rax, %rdx
callq 0x12128c
leaq 0x126f13(%rip), %rdx    # 0x138265
movq %r15, %rdi
movq %r14, %rsi
callq 0x10aa16
testb %al, %al
je 0x11365
movb $0x1, 0x2a(%rbx)
cmpq $0x0, 0x20(%rbx)
movq 0x8(%rsp), %rax
cmovleq %rax, %r13
cmpb $0x0, 0x4(%rsp)
cmoveq %rax, %r13
movq %r13, 0x10(%rbx)
jmp 0x104bf
leaq 0x126ed2(%rip), %r12    # 0x13825e
movq (%r14), %r13
movl (%r15), %eax
cltq
leaq (%rax,%rax,2), %rax
movq 0x20(%r15,%rax,8), %rcx
movq 0x18(%r15,%rax,8), %rdx
andq %r13, %rdx
shlq $0x4, %rdx
leaq (%rcx,%rdx), %rax
movq (%rcx,%rdx), %rdx
movl $0x8, %ecx
cmpq %r13, %rdx
je 0x113e5
movq 0x10(%rax), %rdx
movl $0x18, %ecx
cmpq %r13, %rdx
je 0x113e5
movq 0x20(%rax), %rdx
movl $0x28, %ecx
cmpq %r13, %rdx
je 0x113e5
movq 0x30(%rax), %rdx
movl $0x38, %ecx
cmpq %r13, %rdx
jne 0x11430
movq (%rax,%rcx), %rbp
testq %rbp, %rbp
jne 0x11411
movabsq $-0x7e8ee9b9b4bbaa8, %rdi # imm = 0xF817116464B44558
movq %r13, %rsi
callq 0xf3f85
movq %rax, %rbp
movq %r15, %rdi
movq %r13, %rsi
movq %rax, %rdx
callq 0x12128c
movq %rbp, %rdi
movq %r14, %rsi
movq %r12, %rdx
callq 0x10aa16
testb %al, %al
je 0x112b4
incq 0x20(%rbx)
jmp 0x1138c
xorl %ebp, %ebp
jmp 0x113e9
xorl %r13d, %r13d
jmp 0x10532
xorl %eax, %eax
callq 0x114bbb
leaq 0x28(%rsp), %rdi
movabsq $-0x503db0e6e1c2e704, %rdx # imm = 0xAFC24F191E3D18FC
xorl %esi, %esi
movq %rax, %rcx
callq 0xe0676
movq %rax, %r12
leaq 0x128445(%rip), %rsi    # 0x1398ab
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xda10
movq %rax, %rbp
testq %rax, %rax
je 0x11488
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %rbp, %r13
testq %rbp, %rbp
je 0x114ff
xorl %eax, %eax
jmp 0x11527
xorl %r13d, %r13d
jmp 0x105f6
leaq 0x126d16(%rip), %rsi    # 0x1381b9
movq %r14, %rdi
xorl %eax, %eax
callq 0xddb2
movq %rax, %rbp
testq %rax, %rax
je 0x114c2
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %rbp, %r13
testq %rbp, %rbp
jne 0x10d60
movq 0x10(%rsp), %rax
jmp 0x10d85
xorl %ebp, %ebp
jmp 0x10cc9
xorl %ebp, %ebp
jmp 0x10e48
xorl %r13d, %r13d
jmp 0x106b5
movb $0x1, %al
movl %eax, 0x4(%rsp)
movq $0x0, 0x8(%rsp)
jmp 0x10882
cmpq $0x0, 0x10(%r12)
je 0x11559
movq 0x8(%r12), %rsi
movq 0x10(%rsp), %rdi
addq $0x140, %rdi            # imm = 0x140
callq 0xddb52
movq 0x18(%rsp), %rcx
movq %rax, (%rcx)
movb $0x1, %al
testb %al, %al
je 0x10c56
jmp 0x110f7
xorl %ebp, %ebp
jmp 0x11158
xorl %ebp, %ebp
jmp 0x10efe
xorl %ebp, %ebp
jmp 0x10fed
xorl %r13d, %r13d
jmp 0x1076b
xorl %r15d, %r15d
jmp 0x1131f
leaq 0x126c94(%rip), %rsi    # 0x1381f4
movq %r14, %rdi
xorl %eax, %eax
callq 0xddb2
movq %rax, %rbp
testq %rax, %rax
je 0x1157f
leaq 0x28(%rsp), %rdi
callq 0xe0b30
movq %rbp, %r13
testq %rbp, %rbp
jne 0x1148d
jmp 0x11507
xorl %ebp, %ebp
jmp 0x111ff
xorl %ebp, %ebp
jmp 0x1109f
xorl %r13d, %r13d
jmp 0x10812