// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_st.c
// Function: st_s_quicktest
static void st_s_quicktest( void )
{
    uz_t granted_space = bcore_tbman_total_granted_space();

    bcore_life_s* life = bcore_life_s_create();
    st_s* s = bcore_life_s_push( life, ( bcore_fp_discard )st_s_discard, st_s_create() );

    ASSERT( s->size == 0 );
    ASSERT( s->space == 0 );
    st_s_copy_sc( s, "My little white elephant!" );
    ASSERT( st_s_equal_sc( s, "My little white elephant!" ) );
    st_s_replace_sc_sc( s, "white", "green" );
    ASSERT( st_s_equal_sc( s, "My little green elephant!" ) );

    bool is_green = false;
    bool is_blue  = false;
    st_s* name = bcore_life_s_push( life, ( bcore_fp_discard )st_s_discard, st_s_create() );
    uz_t idx = st_s_parse_fa( s, 0, s->size, "My #name #?w'blue' #?w'green' eleph", name, &is_blue, &is_green );
    ASSERT( st_s_equal_sc( name, "little" ) );
    ASSERT( is_green );
    ASSERT( !is_blue );
    ASSERT( bcore_strcmp( s->sc + idx, "ant!" ) == 0 );

    s2_t num0 = -12345;
    st_s_copy_sc( s, "This number is " );
    st_s_push_typed( s, typeof( "s2_t" ), &num0 );
    st_s_push_sc( s, " and an integer" );
    s3_t num1 = 0;
    idx = st_s_parse_fa( s, 0, s->size, "This number is #<s3_t*>", &num1 );
    ASSERT( num1 == -12345 );
    ASSERT( bcore_strcmp( s->sc + idx, " and an integer" ) == 0 );

    idx = st_s_parse_fa( s, 0, s->size, "This number is #s3_t", &num1 );
    ASSERT( num1 == -12345 );
    ASSERT( bcore_strcmp( s->sc + idx, " and an integer" ) == 0 );

    st_s* ws = bcore_life_s_push( life, ( bcore_fp_discard )st_s_discard, st_s_create() );
    st_s_assign_sc( ws, "This is a weak string" );

    ASSERT( st_s_cmp_sc( ws, "This is a weak string" ) == 0 );
    ASSERT( ws->space == 0 );

    // replacing data forces weak strings to become strong
    st_s_replace_sc_sc( ws, "weak", "strong" );
    ASSERT( st_s_cmp_sc( ws, "This is a strong string" ) == 0 );
    ASSERT( ws->space > 0 );

    // advanced formatting
    {
        s2_t v = -100;
        st_s_clear( s );
        st_s_push_fa( s, "abc#<s2_t>def", v );
        ASSERT( st_s_cmp_sc( s, "abc-100def" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "abc#s2_tdef", v );
        ASSERT( st_s_cmp_sc( s, "abc-100def" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "abc#<s2_t*>def", &v );
        ASSERT( st_s_cmp_sc( s, "abc-100def" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "#p10.{#<s2_t*>}\n", &v );
        ASSERT( st_s_cmp_sc( s, "-100......\n" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "#pl10.{#<s2_t*>}\n", &v );
        ASSERT( st_s_cmp_sc( s, "......-100\n" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "#p3.{#<s2_t*>}\n", &v );
        ASSERT( st_s_cmp_sc( s, "-100\n" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "#pl10.{#pn*{#<s2_t*>}}\n", ( uz_t )6, &v );
        ASSERT( st_s_cmp_sc( s, "....-100**\n" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "#r3{#<s2_t*>}\n", &v );
        ASSERT( st_s_cmp_sc( s, "-100-100-100\n" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "#t3{#<s2_t*>}\n", &v );
        ASSERT( st_s_cmp_sc( s, "-10\n" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "#tl3{#<s2_t*>}\n", &v );
        ASSERT( st_s_cmp_sc( s, "100\n" ) == 0 );
        st_s_clear( s );
        st_s_push_fa( s, "#tl5{#<s2_t*>}\n", &v );
        ASSERT( st_s_cmp_sc( s, "-100\n" ) == 0 );
    }

    // advanced parsing
    {
        st_s_clear( s );
        st_s_push_fa( s, "This is my string." );
        bl_t flag = false;
        uz_t idx;
        idx = st_s_parse_fa( s, 0, s->size, "This is #?([0]=='m'&&[3]=='s')my string.", &flag );
        ASSERT( idx == s->size );
        ASSERT( flag );
        idx = st_s_parse_fa( s, 0, s->size, "This is #?!([0]=='m'&&![3]=='k')my string.", &flag );
        ASSERT( idx == s->size );
        ASSERT( !flag );
        idx = st_s_parse_fa( s, 0, s->size, "This is #?([0]<=[3])my string.", &flag );
        ASSERT( idx == s->size );
        ASSERT( flag );
        idx = st_s_parse_fa( s, 0, s->size, "This is #?!([0]>='0'&&[0]<='9')my string.", &flag );
        ASSERT( idx == s->size );
        ASSERT( flag );
    }

    bcore_life_s_discard( life );

    ASSERT( granted_space == bcore_tbman_total_granted_space() );
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
callq 0x109a60
movq %rax, -0x8(%rbp)
movb $0x0, %al
callq 0xbfdd0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x60(%rbp)
callq 0xff2e0
movq -0x60(%rbp), %rdi
movq %rax, %rdx
leaq -0x661a(%rip), %rsi     # 0xff600
callq 0xc0020
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x105c57
leaq 0x2dd6a(%rip), %rdi     # 0x13399f
leaq 0x5109f(%rip), %rsi     # 0x156cdb
leaq 0x510a5(%rip), %rdx     # 0x156ce8
leaq 0x509ee(%rip), %rcx     # 0x156638
movl $0x947, %r8d            # imm = 0x947
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x105c8b
leaq 0x2dd36(%rip), %rdi     # 0x13399f
leaq 0x5127e(%rip), %rsi     # 0x156eee
leaq 0x51071(%rip), %rdx     # 0x156ce8
leaq 0x509ba(%rip), %rcx     # 0x156638
movl $0x948, %r8d            # imm = 0x948
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
leaq 0x51061(%rip), %rsi     # 0x156cf7
callq 0xfea50
movq -0x18(%rbp), %rdi
leaq 0x51051(%rip), %rsi     # 0x156cf7
callq 0x1076e0
testb $0x1, %al
jne 0x105cd8
leaq 0x2dce9(%rip), %rdi     # 0x13399f
leaq 0x51054(%rip), %rsi     # 0x156d11
leaq 0x51024(%rip), %rdx     # 0x156ce8
leaq 0x5096d(%rip), %rcx     # 0x156638
movl $0x94a, %r8d            # imm = 0x94A
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
leaq 0x5105e(%rip), %rsi     # 0x156d41
leaq 0x510f5(%rip), %rdx     # 0x156ddf
callq 0x101660
movq -0x18(%rbp), %rdi
leaq 0x5104d(%rip), %rsi     # 0x156d47
callq 0x1076e0
testb $0x1, %al
jne 0x105d2c
leaq 0x2dc95(%rip), %rdi     # 0x13399f
leaq 0x51050(%rip), %rsi     # 0x156d61
leaq 0x50fd0(%rip), %rdx     # 0x156ce8
leaq 0x50919(%rip), %rcx     # 0x156638
movl $0x94c, %r8d            # imm = 0x94C
movb $0x0, %al
callq 0x9cea0
movb $0x0, -0x19(%rbp)
movb $0x0, -0x1a(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x68(%rbp)
callq 0xff2e0
movq -0x68(%rbp), %rdi
movq %rax, %rdx
leaq -0x674f(%rip), %rsi     # 0xff600
callq 0xc0020
movq %rax, -0x28(%rbp)
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
movq -0x28(%rbp), %r8
xorl %eax, %eax
movl %eax, %esi
leaq 0x5101e(%rip), %rcx     # 0x156d91
leaq -0x1a(%rbp), %r9
leaq -0x19(%rbp), %rax
movq %rax, (%rsp)
movb $0x0, %al
callq 0x105550
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rdi
leaq 0x51020(%rip), %rsi     # 0x156db5
callq 0x1076e0
testb $0x1, %al
jne 0x105dc7
leaq 0x2dbfa(%rip), %rdi     # 0x13399f
leaq 0x51010(%rip), %rsi     # 0x156dbc
leaq 0x50f35(%rip), %rdx     # 0x156ce8
leaq 0x5087e(%rip), %rcx     # 0x156638
movl $0x952, %r8d            # imm = 0x952
movb $0x0, %al
callq 0x9cea0
testb $0x1, -0x19(%rbp)
jne 0x105df6
leaq 0x2dbcb(%rip), %rdi     # 0x13399f
leaq 0x51001(%rip), %rsi     # 0x156ddc
leaq 0x50f06(%rip), %rdx     # 0x156ce8
leaq 0x5084f(%rip), %rcx     # 0x156638
movl $0x953, %r8d            # imm = 0x953
movb $0x0, %al
callq 0x9cea0
testb $0x1, -0x1a(%rbp)
je 0x105e25
leaq 0x2db9c(%rip), %rdi     # 0x13399f
leaq 0x50fdb(%rip), %rsi     # 0x156de5
leaq 0x50ed7(%rip), %rdx     # 0x156ce8
leaq 0x50820(%rip), %rcx     # 0x156638
movl $0x954, %r8d            # imm = 0x954
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
addq -0x30(%rbp), %rdi
leaq 0x50ed4(%rip), %rsi     # 0x156d0c
callq 0x9d700
cmpl $0x0, %eax
je 0x105e6b
leaq 0x2db56(%rip), %rdi     # 0x13399f
leaq 0x50f9e(%rip), %rsi     # 0x156dee
leaq 0x50e91(%rip), %rdx     # 0x156ce8
leaq 0x507da(%rip), %rcx     # 0x156638
movl $0x955, %r8d            # imm = 0x955
movb $0x0, %al
callq 0x9cea0
movl $0xffffcfc7, -0x34(%rbp) # imm = 0xFFFFCFC7
movq -0x18(%rbp), %rdi
leaq 0x50f9a(%rip), %rsi     # 0x156e17
callq 0xfea50
movq -0x18(%rbp), %rax
movq %rax, -0x70(%rbp)
leaq 0x49209(%rip), %rdi     # 0x14f09a
callq 0x105830
movq -0x70(%rbp), %rdi
movq %rax, %rsi
leaq -0x34(%rbp), %rdx
callq 0x100080
movq -0x18(%rbp), %rdi
leaq 0x50f76(%rip), %rsi     # 0x156e27
callq 0x100040
movq $0x0, -0x40(%rbp)
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq 0x50f62(%rip), %rcx     # 0x156e37
leaq -0x40(%rbp), %r8
movb $0x0, %al
callq 0x105550
movq %rax, -0x30(%rbp)
cmpq $-0x3039, -0x40(%rbp)   # imm = 0xCFC7
je 0x105f17
leaq 0x2daaa(%rip), %rdi     # 0x13399f
leaq 0x50f53(%rip), %rsi     # 0x156e4f
leaq 0x50de5(%rip), %rdx     # 0x156ce8
leaq 0x5072e(%rip), %rcx     # 0x156638
movl $0x95d, %r8d            # imm = 0x95D
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
addq -0x30(%rbp), %rdi
leaq 0x50efd(%rip), %rsi     # 0x156e27
callq 0x9d700
cmpl $0x0, %eax
je 0x105f5d
leaq 0x2da64(%rip), %rdi     # 0x13399f
leaq 0x50f1c(%rip), %rsi     # 0x156e5e
leaq 0x50d9f(%rip), %rdx     # 0x156ce8
leaq 0x506e8(%rip), %rcx     # 0x156638
movl $0x95e, %r8d            # imm = 0x95E
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq 0x50f1e(%rip), %rcx     # 0x156e92
leaq -0x40(%rbp), %r8
movb $0x0, %al
callq 0x105550
movq %rax, -0x30(%rbp)
cmpq $-0x3039, -0x40(%rbp)   # imm = 0xCFC7
je 0x105fb6
leaq 0x2da0b(%rip), %rdi     # 0x13399f
leaq 0x50eb4(%rip), %rsi     # 0x156e4f
leaq 0x50d46(%rip), %rdx     # 0x156ce8
leaq 0x5068f(%rip), %rcx     # 0x156638
movl $0x961, %r8d            # imm = 0x961
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rdi
addq -0x30(%rbp), %rdi
leaq 0x50e5e(%rip), %rsi     # 0x156e27
callq 0x9d700
cmpl $0x0, %eax
je 0x105ffc
leaq 0x2d9c5(%rip), %rdi     # 0x13399f
leaq 0x50e7d(%rip), %rsi     # 0x156e5e
leaq 0x50d00(%rip), %rdx     # 0x156ce8
leaq 0x50649(%rip), %rcx     # 0x156638
movl $0x962, %r8d            # imm = 0x962
movb $0x0, %al
callq 0x9cea0
movq -0x10(%rbp), %rax
movq %rax, -0x78(%rbp)
callq 0xff2e0
movq -0x78(%rbp), %rdi
movq %rax, %rdx
leaq -0x6a17(%rip), %rsi     # 0xff600
callq 0xc0020
movq %rax, -0x48(%rbp)
movq -0x48(%rbp), %rdi
leaq 0x50e7c(%rip), %rsi     # 0x156ea7
callq 0xfea90
movq -0x48(%rbp), %rdi
leaq 0x50e6c(%rip), %rsi     # 0x156ea7
callq 0x107730
cmpl $0x0, %eax
je 0x10606e
leaq 0x2d953(%rip), %rdi     # 0x13399f
leaq 0x50e6a(%rip), %rsi     # 0x156ebd
leaq 0x50c8e(%rip), %rdx     # 0x156ce8
leaq 0x505d7(%rip), %rcx     # 0x156638
movl $0x967, %r8d            # imm = 0x967
movb $0x0, %al
callq 0x9cea0
movq -0x48(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1060a2
leaq 0x2d91f(%rip), %rdi     # 0x13399f
leaq 0x50e66(%rip), %rsi     # 0x156eed
leaq 0x50c5a(%rip), %rdx     # 0x156ce8
leaq 0x505a3(%rip), %rcx     # 0x156638
movl $0x968, %r8d            # imm = 0x968
movb $0x0, %al
callq 0x9cea0
movq -0x48(%rbp), %rdi
leaq 0x404c2(%rip), %rsi     # 0x14656f
leaq 0x4ce3d(%rip), %rdx     # 0x152ef1
callq 0x101660
movq -0x48(%rbp), %rdi
leaq 0x50e38(%rip), %rsi     # 0x156efc
callq 0x107730
cmpl $0x0, %eax
je 0x1060f7
leaq 0x2d8ca(%rip), %rdi     # 0x13399f
leaq 0x50e38(%rip), %rsi     # 0x156f14
leaq 0x50c05(%rip), %rdx     # 0x156ce8
leaq 0x5054e(%rip), %rcx     # 0x156638
movl $0x96c, %r8d            # imm = 0x96C
movb $0x0, %al
callq 0x9cea0
movq -0x48(%rbp), %rax
cmpq $0x0, 0x18(%rax)
ja 0x10612b
leaq 0x2d896(%rip), %rdi     # 0x13399f
leaq 0x50e36(%rip), %rsi     # 0x156f46
leaq 0x50bd1(%rip), %rdx     # 0x156ce8
leaq 0x5051a(%rip), %rcx     # 0x156638
movl $0x96d, %r8d            # imm = 0x96D
movb $0x0, %al
callq 0x9cea0
movl $0xffffff9c, -0x4c(%rbp) # imm = 0xFFFFFF9C
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
movl -0x4c(%rbp), %edx
leaq 0x50e0b(%rip), %rsi     # 0x156f54
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50e07(%rip), %rsi     # 0x156f62
callq 0x107730
cmpl $0x0, %eax
je 0x10618e
leaq 0x2d833(%rip), %rdi     # 0x13399f
leaq 0x50dfa(%rip), %rsi     # 0x156f6d
leaq 0x50b6e(%rip), %rdx     # 0x156ce8
leaq 0x504b7(%rip), %rcx     # 0x156638
movl $0x974, %r8d            # imm = 0x974
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
movl -0x4c(%rbp), %edx
leaq 0x50dec(%rip), %rsi     # 0x156f91
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50dab(%rip), %rsi     # 0x156f62
callq 0x107730
cmpl $0x0, %eax
je 0x1061ea
leaq 0x2d7d7(%rip), %rdi     # 0x13399f
leaq 0x50d9e(%rip), %rsi     # 0x156f6d
leaq 0x50b12(%rip), %rdx     # 0x156ce8
leaq 0x5045b(%rip), %rcx     # 0x156638
movl $0x977, %r8d            # imm = 0x977
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50d9f(%rip), %rsi     # 0x156f9d
leaq -0x4c(%rbp), %rdx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50d4e(%rip), %rsi     # 0x156f62
callq 0x107730
cmpl $0x0, %eax
je 0x106247
leaq 0x2d77a(%rip), %rdi     # 0x13399f
leaq 0x50d41(%rip), %rsi     # 0x156f6d
leaq 0x50ab5(%rip), %rdx     # 0x156ce8
leaq 0x503fe(%rip), %rcx     # 0x156638
movl $0x97a, %r8d            # imm = 0x97A
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50d51(%rip), %rsi     # 0x156fac
leaq -0x4c(%rbp), %rdx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50d4c(%rip), %rsi     # 0x156fbd
callq 0x107730
cmpl $0x0, %eax
je 0x1062a4
leaq 0x2d71d(%rip), %rdi     # 0x13399f
leaq 0x50d40(%rip), %rsi     # 0x156fc9
leaq 0x50a58(%rip), %rdx     # 0x156ce8
leaq 0x503a1(%rip), %rcx     # 0x156638
movl $0x97d, %r8d            # imm = 0x97D
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50d37(%rip), %rsi     # 0x156fef
leaq -0x4c(%rbp), %rdx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50d33(%rip), %rsi     # 0x157001
callq 0x107730
cmpl $0x0, %eax
je 0x106301
leaq 0x2d6c0(%rip), %rdi     # 0x13399f
leaq 0x50d27(%rip), %rsi     # 0x15700d
leaq 0x509fb(%rip), %rdx     # 0x156ce8
leaq 0x50344(%rip), %rcx     # 0x156638
movl $0x980, %r8d            # imm = 0x980
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50d1e(%rip), %rsi     # 0x157033
leaq -0x4c(%rbp), %rdx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50cdc(%rip), %rsi     # 0x157007
callq 0x107730
cmpl $0x0, %eax
je 0x10635e
leaq 0x2d663(%rip), %rdi     # 0x13399f
leaq 0x50d00(%rip), %rsi     # 0x157043
leaq 0x5099e(%rip), %rdx     # 0x156ce8
leaq 0x502e7(%rip), %rcx     # 0x156638
movl $0x983, %r8d            # imm = 0x983
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50cf1(%rip), %rsi     # 0x157063
movl $0x6, %edx
leaq -0x4c(%rbp), %rcx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50cee(%rip), %rsi     # 0x15707b
callq 0x107730
cmpl $0x0, %eax
je 0x1063c0
leaq 0x2d601(%rip), %rdi     # 0x13399f
leaq 0x50ce2(%rip), %rsi     # 0x157087
leaq 0x5093c(%rip), %rdx     # 0x156ce8
leaq 0x50285(%rip), %rcx     # 0x156638
movl $0x986, %r8d            # imm = 0x986
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50cd9(%rip), %rsi     # 0x1570ad
leaq -0x4c(%rbp), %rdx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50cd2(%rip), %rsi     # 0x1570bc
callq 0x107730
cmpl $0x0, %eax
je 0x10641d
leaq 0x2d5a4(%rip), %rdi     # 0x13399f
leaq 0x50cc8(%rip), %rsi     # 0x1570ca
leaq 0x508df(%rip), %rdx     # 0x156ce8
leaq 0x50228(%rip), %rcx     # 0x156638
movl $0x989, %r8d            # imm = 0x989
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50cc1(%rip), %rsi     # 0x1570f2
leaq -0x4c(%rbp), %rdx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50cba(%rip), %rsi     # 0x157101
callq 0x107730
cmpl $0x0, %eax
je 0x10647a
leaq 0x2d547(%rip), %rdi     # 0x13399f
leaq 0x50ca7(%rip), %rsi     # 0x157106
leaq 0x50882(%rip), %rdx     # 0x156ce8
leaq 0x501cb(%rip), %rcx     # 0x156638
movl $0x98c, %r8d            # imm = 0x98C
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50c97(%rip), %rsi     # 0x157125
leaq -0x4c(%rbp), %rdx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50b64(%rip), %rsi     # 0x157008
callq 0x107730
cmpl $0x0, %eax
je 0x1064d7
leaq 0x2d4ea(%rip), %rdi     # 0x13399f
leaq 0x50c79(%rip), %rsi     # 0x157135
leaq 0x50825(%rip), %rdx     # 0x156ce8
leaq 0x5016e(%rip), %rcx     # 0x156638
movl $0x98f, %r8d            # imm = 0x98F
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50c69(%rip), %rsi     # 0x157154
leaq -0x4c(%rbp), %rdx
movb $0x0, %al
callq 0x100210
movq -0x18(%rbp), %rdi
leaq 0x50b06(%rip), %rsi     # 0x157007
callq 0x107730
cmpl $0x0, %eax
je 0x106534
leaq 0x2d48d(%rip), %rdi     # 0x13399f
leaq 0x50b2a(%rip), %rsi     # 0x157043
leaq 0x507c8(%rip), %rdx     # 0x156ce8
leaq 0x50111(%rip), %rcx     # 0x156638
movl $0x992, %r8d            # imm = 0x992
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
callq 0xffb50
movq -0x18(%rbp), %rdi
leaq 0x50c1c(%rip), %rsi     # 0x157164
movb $0x0, %al
callq 0x100210
movb $0x0, -0x4d(%rbp)
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq 0x50c0d(%rip), %rcx     # 0x157177
leaq -0x4d(%rbp), %r8
movb $0x0, %al
callq 0x105550
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x1065b0
leaq 0x2d411(%rip), %rdi     # 0x13399f
leaq 0x50c0b(%rip), %rsi     # 0x1571a0
leaq 0x5074c(%rip), %rdx     # 0x156ce8
leaq 0x50095(%rip), %rcx     # 0x156638
movl $0x99c, %r8d            # imm = 0x99C
movb $0x0, %al
callq 0x9cea0
testb $0x1, -0x4d(%rbp)
jne 0x1065df
leaq 0x2d3e2(%rip), %rdi     # 0x13399f
leaq 0x50c17(%rip), %rsi     # 0x1571db
leaq 0x5071d(%rip), %rdx     # 0x156ce8
leaq 0x50066(%rip), %rcx     # 0x156638
movl $0x99d, %r8d            # imm = 0x99D
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq 0x50bb9(%rip), %rcx     # 0x1571af
leaq -0x4d(%rbp), %r8
movb $0x0, %al
callq 0x105550
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x10663c
leaq 0x2d385(%rip), %rdi     # 0x13399f
leaq 0x50b7f(%rip), %rsi     # 0x1571a0
leaq 0x506c0(%rip), %rdx     # 0x156ce8
leaq 0x50009(%rip), %rcx     # 0x156638
movl $0x99f, %r8d            # imm = 0x99F
movb $0x0, %al
callq 0x9cea0
testb $0x1, -0x4d(%rbp)
je 0x10666b
leaq 0x2d356(%rip), %rdi     # 0x13399f
leaq 0x50b8a(%rip), %rsi     # 0x1571da
leaq 0x50691(%rip), %rdx     # 0x156ce8
leaq 0x4ffda(%rip), %rcx     # 0x156638
movl $0x9a0, %r8d            # imm = 0x9A0
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq 0x50b5e(%rip), %rcx     # 0x1571e0
leaq -0x4d(%rbp), %r8
movb $0x0, %al
callq 0x105550
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x1066c8
leaq 0x2d2f9(%rip), %rdi     # 0x13399f
leaq 0x50af3(%rip), %rsi     # 0x1571a0
leaq 0x50634(%rip), %rdx     # 0x156ce8
leaq 0x4ff7d(%rip), %rcx     # 0x156638
movl $0x9a2, %r8d            # imm = 0x9A2
movb $0x0, %al
callq 0x9cea0
testb $0x1, -0x4d(%rbp)
jne 0x1066f7
leaq 0x2d2ca(%rip), %rdi     # 0x13399f
leaq 0x50aff(%rip), %rsi     # 0x1571db
leaq 0x50605(%rip), %rdx     # 0x156ce8
leaq 0x4ff4e(%rip), %rcx     # 0x156638
movl $0x9a3, %r8d            # imm = 0x9A3
movb $0x0, %al
callq 0x9cea0
movq -0x18(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
xorl %eax, %eax
movl %eax, %esi
leaq 0x50af1(%rip), %rcx     # 0x1571ff
leaq -0x4d(%rbp), %r8
movb $0x0, %al
callq 0x105550
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rax
movq -0x18(%rbp), %rcx
cmpq 0x10(%rcx), %rax
je 0x106754
leaq 0x2d26d(%rip), %rdi     # 0x13399f
leaq 0x50a67(%rip), %rsi     # 0x1571a0
leaq 0x505a8(%rip), %rdx     # 0x156ce8
leaq 0x4fef1(%rip), %rcx     # 0x156638
movl $0x9a5, %r8d            # imm = 0x9A5
movb $0x0, %al
callq 0x9cea0
testb $0x1, -0x4d(%rbp)
jne 0x106783
leaq 0x2d23e(%rip), %rdi     # 0x13399f
leaq 0x50a73(%rip), %rsi     # 0x1571db
leaq 0x50579(%rip), %rdx     # 0x156ce8
leaq 0x4fec2(%rip), %rcx     # 0x156638
movl $0x9a6, %r8d            # imm = 0x9A6
movb $0x0, %al
callq 0x9cea0
movq -0x10(%rbp), %rdi
callq 0xbfe00
movq -0x8(%rbp), %rax
movq %rax, -0x80(%rbp)
callq 0x109a60
movq %rax, %rcx
movq -0x80(%rbp), %rax
cmpq %rcx, %rax
je 0x1067ce
leaq 0x2d1f3(%rip), %rdi     # 0x13399f
leaq 0x50a76(%rip), %rsi     # 0x157229
leaq 0x5052e(%rip), %rdx     # 0x156ce8
leaq 0x4fe77(%rip), %rcx     # 0x156638
movl $0x9ab, %r8d            # imm = 0x9AB
movb $0x0, %al
callq 0x9cea0
addq $0x90, %rsp
popq %rbp
retq
nopw (%rax,%rax)