// File: /workspace/github_c_makefile_star2_O3/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: bcore_tbman_s_status
st_s* bcore_tbman_s_status( bcore_tbman_s* o, int detail_level )
{
    if( detail_level <= 0 ) return NULL;

    st_s* str = st_s_create();
    st_s_pushf( str, "main manager\n" );
    st_s_pushf( str, "  pool_size ........... %zu\n", o->pool_size );
    st_s_pushf( str, "  block managers ...... %zu\n", o->size );
    st_s_pushf( str, "  token managers ...... %zu\n", bcore_btree_vd_s_count( o->internal_btree, NULL, NULL ) );
    st_s_pushf( str, "  external allocs ..... %zu\n", bcore_btree_pp_s_count( o->external_manager.ex_btree, NULL, NULL ) );
    st_s_pushf( str, "  internal_btree depth  %zu\n", bcore_btree_vd_s_depth( o->internal_btree ) );
    st_s_pushf( str, "  external_btree depth  %zu\n", bcore_btree_pp_s_depth( o->external_manager.ex_btree ) );
    st_s_pushf( str, "  min_block_size ...... %zu\n", o->size > 0 ? o->data[ 0 ]->block_size : 0 );
    st_s_pushf( str, "  max_block_size ...... %zu\n", o->size > 0 ? o->data[ o->size - 1 ]->block_size : 0 );
    st_s_pushf( str, "  aligned ............. %s\n",  o->aligned ? "true" : "false" );

    st_s_pushf( str, "external manager\n" );
    st_s_pushf( str, "  pool_size ........... %zu\n", o->external_manager.pool_size );
    st_s_pushf( str, "  token managers ...... %zu\n", bcore_btree_vd_s_count( o->external_manager.tm_btree, NULL, NULL ) );
    st_s_pushf( str, "  aligned ............. %s\n",  o->external_manager.aligned ? "true" : "false" );
    st_s_pushf( str, "  item size ........... %zu\n", sizeof( ext_s ) );
    st_s_pushf( str, "  items ............... %zu\n", block_manager_s_total_alloc( &o->external_manager.bm_ext ) / sizeof( ext_s ) );
    st_s_pushf( str, "  alloc ............... %zu\n", block_manager_s_total_alloc( &o->external_manager.bm_ext ) );
    st_s_pushf( str, "  space ............... %zu\n", block_manager_s_total_space( &o->external_manager.bm_ext ) );

    st_s_pushf( str, "down manager\n" );
    st_s_pushf( str, "  pool_size ........... %zu\n", o->down_manager.pool_size );
    st_s_pushf( str, "  token managers ...... %zu\n", bcore_btree_vd_s_count( o->down_manager.tm_btree, NULL, NULL ) );
    st_s_pushf( str, "  aligned ............. %s\n",  o->down_manager.aligned ? "true" : "false" );
    st_s_pushf( str, "  down_obj_s size ..... %zu\n", sizeof( down_obj_s ) );
    st_s_pushf( str, "  down_obj_s items .... %zu\n", block_manager_s_total_alloc( &o->down_manager.bm_down_obj ) / sizeof( down_obj_s ) );
    st_s_pushf( str, "  down_obj_s alloc .... %zu\n", block_manager_s_total_alloc( &o->down_manager.bm_down_obj ) );
    st_s_pushf( str, "  down_obj_s space .... %zu\n", block_manager_s_total_space( &o->down_manager.bm_down_obj ) );
    st_s_pushf( str, "  down_arg_s size ..... %zu\n", sizeof( down_arg_s ) );
    st_s_pushf( str, "  down_arg_s items .... %zu\n", block_manager_s_total_alloc( &o->down_manager.bm_down_arg ) / sizeof( down_arg_s ) );
    st_s_pushf( str, "  down_arg_s alloc .... %zu\n", block_manager_s_total_alloc( &o->down_manager.bm_down_arg ) );
    st_s_pushf( str, "  down_arg_s space .... %zu\n", block_manager_s_total_space( &o->down_manager.bm_down_arg ) );
    st_s_pushf( str, "  down_obj_arr_s size   %zu\n", sizeof( down_obj_arr_s ) );
    st_s_pushf( str, "  down_obj_arr_s items  %zu\n", block_manager_s_total_alloc( &o->down_manager.bm_down_obj_arr ) / sizeof( down_obj_arr_s ) );
    st_s_pushf( str, "  down_obj_arr_s alloc  %zu\n", block_manager_s_total_alloc( &o->down_manager.bm_down_obj_arr ) );
    st_s_pushf( str, "  down_obj_arr_s space  %zu\n", block_manager_s_total_space( &o->down_manager.bm_down_obj_arr ) );
    st_s_pushf( str, "  down_arg_arr_s size   %zu\n", sizeof( down_arg_arr_s ) );
    st_s_pushf( str, "  down_arg_arr_s items  %zu\n", block_manager_s_total_alloc( &o->down_manager.bm_down_arg_arr ) / sizeof( down_arg_arr_s ) );
    st_s_pushf( str, "  down_arg_arr_s alloc  %zu\n", block_manager_s_total_alloc( &o->down_manager.bm_down_arg_arr ) );
    st_s_pushf( str, "  down_arg_arr_s space  %zu\n", block_manager_s_total_space( &o->down_manager.bm_down_arg_arr ) );

    st_s_pushf( str, "overall allocations\n" );
    st_s_pushf( str, "  total bytes granted . %zu\n", tbman_s_total_alloc( o ) );
    st_s_pushf( str, "    external .......... %zu\n", external_manager_s_total_alloc( &o->external_manager ) );
    st_s_pushf( str, "    internal .......... %zu\n", tbman_s_internal_total_alloc( o ) );
    st_s_pushf( str, "  internal used ....... %zu\n", tbman_s_total_space( o ) );
    st_s_pushf( str, "  total instances ..... %zu\n", tbman_s_total_instances( o ) );
    st_s_pushf( str, "    external .......... %zu\n", external_manager_s_total_instances( &o->external_manager ) );
    st_s_pushf( str, "    internal .......... %zu\n", tbman_s_internal_total_instances( o ) );
    st_s_pushf( str, "  total references .... %zu\n", tbman_s_total_references( o ) );
    st_s_pushf( str, "    external .......... %zu\n", external_manager_s_total_references( &o->external_manager ) );
    st_s_pushf( str, "    internal .......... %zu\n", tbman_s_internal_total_references( o ) );
    if( detail_level > 1 )
    {
        for( uz_t i = 0; i < o->size; i++ )
        {
            st_s_pushf( str, "\nblock manager %zu:\n", i );
            st_s_push_st_d( str, block_manager_s_status( o->data[ i ], detail_level - 1 ) );
        }
    }

    return str;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movl %esi, 0x14(%rsp)
testl %esi, %esi
jle 0x11154a
movq %rdi, %r15
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x109c82
movq %rax, %r13
leaq 0x3ba7b(%rip), %rsi     # 0x14cd3f
movq %rax, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x10(%r15), %rdx
leaq 0x3ba74(%rip), %rsi     # 0x14cd4d
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x8(%r15), %rdx
leaq 0x3ba7c(%rip), %rsi     # 0x14cd6a
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x38(%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x126b02
leaq 0x3ba7b(%rip), %rsi     # 0x14cd87
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0xb8(%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x1256bf
leaq 0x3ba74(%rip), %rsi     # 0x14cda4
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x38(%r15), %rdi
callq 0x126b0a
leaq 0x3ba74(%rip), %rsi     # 0x14cdc1
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0xb8(%r15), %rdi
callq 0x1256c7
leaq 0x3ba71(%rip), %rsi     # 0x14cdde
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
cmpq $0x0, 0x8(%r15)
je 0x11138b
movq (%r15), %rax
movq (%rax), %rax
movq 0x8(%rax), %rbx
leaq 0x3ba69(%rip), %rsi     # 0x14cdfb
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x1113b7
movq (%r15), %rcx
movq -0x8(%rcx,%rax,8), %rax
movq 0x8(%rax), %r14
leaq 0x3ba5a(%rip), %rsi     # 0x14ce18
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3d279(%rip), %rbp     # 0x14e64d
cmpb $0x0, 0x28(%r15)
leaq 0x223d1(%rip), %r12     # 0x1337b1
movq %r12, %rdx
cmovneq %rbp, %rdx
leaq 0x3ba47(%rip), %r14     # 0x14ce35
movq %r13, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3ba4f(%rip), %rsi     # 0x14ce51
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0xc0(%r15), %rdx
leaq 0x3b933(%rip), %rsi     # 0x14cd4d
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0xb0(%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x126b02
leaq 0x3b94c(%rip), %rsi     # 0x14cd87
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
cmpb $0x0, 0xc8(%r15)
movq %r12, %rdx
cmovneq %rbp, %rdx
movq %r13, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3b9f8(%rip), %rsi     # 0x14ce63
movl $0x18, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x60(%r15), %rcx
movabsq $-0x5555555555555555, %r12 # imm = 0xAAAAAAAAAAAAAAAB
testq %rcx, %rcx
je 0x1114b8
movq 0x58(%r15), %rdx
xorl %esi, %esi
xorl %eax, %eax
movq (%rdx,%rsi,8), %rdi
movzwl 0x12(%rdi), %r8d
imulq 0x8(%rdi), %r8
addq %r8, %rax
incq %rsi
cmpq %rsi, %rcx
jne 0x111495
mulq %r12
movq %rdx, %rbx
shrq $0x4, %rbx
leaq 0x3b9c1(%rip), %rsi     # 0x14ce80
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x60(%r15), %rax
testq %rax, %rax
movq %r15, (%rsp)
je 0x1114fd
movq 0x58(%r15), %rcx
xorl %edx, %edx
xorl %r14d, %r14d
movq (%rcx,%rdx,8), %rsi
movzwl 0x12(%rsi), %edi
imulq 0x8(%rsi), %rdi
addq %rdi, %r14
incq %rdx
cmpq %rdx, %rax
jne 0x1114e5
leaq 0x3b999(%rip), %rsi     # 0x14ce9d
xorl %r15d, %r15d
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq (%rsp), %rcx
movq 0x60(%rcx), %rax
testq %rax, %rax
je 0x111552
movq 0x58(%rcx), %rcx
xorl %edx, %edx
xorl %r15d, %r15d
leaq 0x22280(%rip), %r14     # 0x1337b1
movq (%rcx,%rdx,8), %rsi
addq (%rsi), %r15
movzwl 0x10(%rsi), %esi
leaq (%r15,%rsi,2), %r15
incq %rdx
cmpq %rdx, %rax
jne 0x111531
jmp 0x111559
xorl %r13d, %r13d
jmp 0x111edf
leaq 0x22258(%rip), %r14     # 0x1337b1
leaq 0x3b95a(%rip), %rsi     # 0x14ceba
xorl %ebx, %ebx
movq %r13, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3b961(%rip), %rsi     # 0x14ced7
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq (%rsp), %r15
movq 0x2a8(%r15), %rdx
leaq 0x3b7bb(%rip), %rsi     # 0x14cd4d
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x2a0(%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x126b02
leaq 0x3b7d4(%rip), %rsi     # 0x14cd87
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
cmpb $0x0, 0x2b0(%r15)
movq %r14, %rdx
cmovneq %rbp, %rdx
leaq 0x3b85f(%rip), %rsi     # 0x14ce35
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3b8fe(%rip), %rsi     # 0x14cee5
movl $0x10, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x100(%r15), %rax
testq %rax, %rax
je 0x111629
movq 0xf8(%r15), %rcx
xorl %edx, %edx
xorl %ebx, %ebx
movq (%rcx,%rdx,8), %rsi
movzwl 0x12(%rsi), %edi
imulq 0x8(%rsi), %rdi
addq %rdi, %rbx
incq %rdx
cmpq %rdx, %rax
jne 0x11160d
shrq $0x4, %rbx
leaq 0x3b8d2(%rip), %rsi     # 0x14cf02
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x100(%r15), %rax
testq %rax, %rax
je 0x111670
movq 0xf8(%r15), %rcx
xorl %edx, %edx
xorl %r14d, %r14d
movq (%rcx,%rdx,8), %rsi
movzwl 0x12(%rsi), %edi
imulq 0x8(%rsi), %rdi
addq %rdi, %r14
incq %rdx
cmpq %rdx, %rax
jne 0x111658
leaq 0x3b8a8(%rip), %rsi     # 0x14cf1f
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x100(%r15), %rax
testq %rax, %rax
je 0x1116b4
movq 0xf8(%r15), %rcx
xorl %edx, %edx
xorl %ebx, %ebx
movq (%rcx,%rdx,8), %rsi
addq (%rsi), %rbx
movzwl 0x10(%rsi), %esi
leaq (%rbx,%rsi,2), %rbx
incq %rdx
cmpq %rdx, %rax
jne 0x11169d
leaq 0x3b881(%rip), %rsi     # 0x14cf3c
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3b887(%rip), %rsi     # 0x14cf59
movl $0x18, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x170(%r15), %rcx
testq %rcx, %rcx
je 0x11171b
movq 0x168(%r15), %rdx
xorl %esi, %esi
xorl %eax, %eax
movq (%rdx,%rsi,8), %rdi
movzwl 0x12(%rdi), %r8d
imulq 0x8(%rdi), %r8
addq %r8, %rax
incq %rsi
cmpq %rsi, %rcx
jne 0x1116f8
mulq %r12
movq %rdx, %r14
shrq $0x4, %r14
leaq 0x3b854(%rip), %rsi     # 0x14cf76
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x170(%r15), %rax
testq %rax, %rax
je 0x111760
movq 0x168(%r15), %rcx
xorl %edx, %edx
xorl %ebx, %ebx
movq (%rcx,%rdx,8), %rsi
movzwl 0x12(%rsi), %edi
imulq 0x8(%rsi), %rdi
addq %rdi, %rbx
incq %rdx
cmpq %rdx, %rax
jne 0x111748
leaq 0x3b82c(%rip), %rsi     # 0x14cf93
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x170(%r15), %rax
testq %rax, %rax
je 0x1117a6
movq 0x168(%r15), %rcx
xorl %edx, %edx
xorl %r14d, %r14d
movq (%rcx,%rdx,8), %rsi
addq (%rsi), %r14
movzwl 0x10(%rsi), %esi
leaq (%r14,%rsi,2), %r14
incq %rdx
cmpq %rdx, %rax
jne 0x11178f
leaq 0x3b803(%rip), %rsi     # 0x14cfb0
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3b80a(%rip), %rsi     # 0x14cfcd
movl $0x20, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x1e0(%r15), %rax
testq %rax, %rax
je 0x111805
movq 0x1d8(%r15), %rcx
xorl %edx, %edx
xorl %ebx, %ebx
movq (%rcx,%rdx,8), %rsi
movzwl 0x12(%rsi), %edi
imulq 0x8(%rsi), %rdi
addq %rdi, %rbx
incq %rdx
cmpq %rdx, %rax
jne 0x1117e9
shrq $0x5, %rbx
leaq 0x3b7de(%rip), %rsi     # 0x14cfea
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x1e0(%r15), %rax
testq %rax, %rax
je 0x11184c
movq 0x1d8(%r15), %rcx
xorl %edx, %edx
xorl %r14d, %r14d
movq (%rcx,%rdx,8), %rsi
movzwl 0x12(%rsi), %edi
imulq 0x8(%rsi), %rdi
addq %rdi, %r14
incq %rdx
cmpq %rdx, %rax
jne 0x111834
leaq 0x3b7b4(%rip), %rsi     # 0x14d007
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x1e0(%r15), %rax
testq %rax, %rax
je 0x111890
movq 0x1d8(%r15), %rcx
xorl %edx, %edx
xorl %ebx, %ebx
movq (%rcx,%rdx,8), %rsi
addq (%rsi), %rbx
movzwl 0x10(%rsi), %esi
leaq (%rbx,%rsi,2), %rbx
incq %rdx
cmpq %rdx, %rax
jne 0x111879
leaq 0x3b78d(%rip), %rsi     # 0x14d024
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3b793(%rip), %rsi     # 0x14d041
movl $0x28, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0x250(%r15), %rcx
testq %rcx, %rcx
je 0x111901
movq 0x248(%r15), %rdx
xorl %esi, %esi
xorl %eax, %eax
movq (%rdx,%rsi,8), %rdi
movzwl 0x12(%rdi), %r8d
imulq 0x8(%rdi), %r8
addq %r8, %rax
incq %rsi
cmpq %rsi, %rcx
jne 0x1118d4
movabsq $-0x3333333333333333, %rcx # imm = 0xCCCCCCCCCCCCCCCD
mulq %rcx
movq %rdx, %r14
shrq $0x5, %r14
leaq 0x3b756(%rip), %rsi     # 0x14d05e
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x250(%r15), %rax
testq %rax, %rax
je 0x111946
movq 0x248(%r15), %rcx
xorl %edx, %edx
xorl %ebx, %ebx
movq (%rcx,%rdx,8), %rsi
movzwl 0x12(%rsi), %edi
imulq 0x8(%rsi), %rdi
addq %rdi, %rbx
incq %rdx
cmpq %rdx, %rax
jne 0x11192e
leaq 0x3b72e(%rip), %rsi     # 0x14d07b
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x250(%r15), %rax
testq %rax, %rax
je 0x11198c
movq 0x248(%r15), %rcx
xorl %edx, %edx
xorl %r14d, %r14d
movq (%rcx,%rdx,8), %rsi
addq (%rsi), %r14
movzwl 0x10(%rsi), %esi
leaq (%r14,%rsi,2), %r14
incq %rdx
cmpq %rdx, %rax
jne 0x111975
leaq 0x3b705(%rip), %rsi     # 0x14d098
xorl %r12d, %r12d
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
leaq 0x3b70b(%rip), %rsi     # 0x14d0b5
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0xb8(%r15), %rdi
leaq 0x8(%rsp), %rbx
movq %r12, (%rbx)
leaq 0x261b(%rip), %r14      # 0x113fe5
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1256b7
movq (%rbx), %r15
movq (%rsp), %rdi
callq 0x111ef1
addq %rax, %r15
leaq 0x3b6df(%rip), %rsi     # 0x14d0ca
movq %r13, %rdi
movq %r15, %rdx
movq (%rsp), %r15
xorl %eax, %eax
callq 0x10a7d0
movq 0xb8(%r15), %rdi
movq %r12, (%rbx)
leaq 0x8(%rsp), %rbx
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1256b7
movq (%rbx), %rdx
leaq 0x3b6c7(%rip), %rsi     # 0x14d0e7
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq %r15, %rdi
callq 0x111ef1
leaq 0x3b6cb(%rip), %rsi     # 0x14d104
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x111a94
movq (%r15), %rcx
xorl %edx, %edx
xorl %r12d, %r12d
movq (%rcx,%rdx,8), %rdi
movq 0x20(%rdi), %rsi
testq %rsi, %rsi
je 0x111a87
movq 0x18(%rdi), %r8
xorl %r9d, %r9d
xorl %edi, %edi
movq (%r8,%r9,8), %r10
addq (%r10), %rdi
movzwl 0x10(%r10), %r10d
leaq (%rdi,%r10,2), %rdi
incq %r9
cmpq %r9, %rsi
jne 0x111a6d
jmp 0x111a89
xorl %edi, %edi
addq %rdi, %r12
incq %rdx
cmpq %rax, %rdx
jne 0x111a57
movq 0x60(%r15), %rax
testq %rax, %rax
je 0x111abe
movq 0x58(%r15), %rcx
xorl %esi, %esi
xorl %edx, %edx
movq (%rcx,%rsi,8), %rdi
addq (%rdi), %rdx
movzwl 0x10(%rdi), %edi
leaq (%rdx,%rdi,2), %rdx
incq %rsi
cmpq %rsi, %rax
jne 0x111aa5
jmp 0x111ac0
xorl %edx, %edx
addq %r12, %rdx
leaq 0x3b657(%rip), %rsi     # 0x14d121
xorl %ebp, %ebp
movq %r13, %rdi
xorl %eax, %eax
callq 0x10a7d0
movq 0xb8(%r15), %rdi
leaq 0x8(%rsp), %rbx
movq %rbp, (%rbx)
leaq 0x2500(%rip), %r14      # 0x113fec
movq %r14, %rsi
movq %rbx, %rdx
callq 0x1256b7
movq (%rbx), %r15
movq (%rsp), %rdi
callq 0x111f47
addq %rax, %r15
leaq 0x3b631(%rip), %rsi     # 0x14d13e
movq %r13, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
movq %rbp, (%rbx)
leaq 0x8(%rsp), %r15
movq %r14, %rsi
movq %r15, %rdx
callq 0x1256b7
movq (%r15), %rdx
leaq 0x3b5a5(%rip), %rbx     # 0x14d0e7
movq %r13, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x10a7d0
movq (%rsp), %rdi
callq 0x111f47
leaq 0x3b5a5(%rip), %r14     # 0x14d104
movq %r13, %rdi
movq %r14, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
movq %rbp, (%r15)
leaq 0x246c(%rip), %r15      # 0x113ff0
leaq 0x8(%rsp), %r12
movq %r15, %rsi
movq %r12, %rdx
callq 0x1256b7
movq %r13, 0x18(%rsp)
movq (%r12), %r13
movq (%rsp), %rdi
callq 0x111f96
addq %rax, %r13
leaq 0x3b5ab(%rip), %rsi     # 0x14d15b
movq 0x18(%rsp), %rdi
movq %r13, %rdx
movq 0x18(%rsp), %r13
xorl %eax, %eax
callq 0x10a7d0
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
movq %rbp, (%r12)
leaq 0x8(%rsp), %r12
movq %r15, %rsi
movq (%rsp), %r15
movq %r12, %rdx
callq 0x1256b7
movq (%r12), %rdx
movq %r13, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x10a7d0
movq %r15, %rdi
callq 0x111f96
movq %r13, %rdi
movq %r14, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x10a7d0
cmpl $0x1, 0x14(%rsp)
je 0x111edf
cmpq $0x0, 0x8(%r15)
je 0x111edf
leaq 0x3b54b(%rip), %r12     # 0x14d178
xorl %ebx, %ebx
movq %r13, %rdi
movq %r12, %rsi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq (%r15), %rax
movq %rbx, 0x20(%rsp)
movq (%rax,%rbx,8), %rbp
xorl %eax, %eax
callq 0x109c82
movq %rax, %rbx
movq (%rbp), %rdx
movq %rax, %rdi
leaq 0x3b93b(%rip), %rsi     # 0x14d59e
xorl %eax, %eax
callq 0x10a7d0
movq 0x8(%rbp), %rdx
movq %rbx, %rdi
leaq 0x3b93f(%rip), %rsi     # 0x14d5b7
xorl %eax, %eax
callq 0x10a7d0
movsd 0x38(%rbp), %xmm0
movq %rbx, %rdi
leaq 0x3b942(%rip), %rsi     # 0x14d5d0
movb $0x1, %al
callq 0x10a7d0
cmpb $0x0, 0x40(%rbp)
leaq 0x21b11(%rip), %rdx     # 0x1337b1
leaq 0x3c9a6(%rip), %rax     # 0x14e64d
cmovneq %rax, %rdx
movq %rbx, %rdi
leaq 0x3b933(%rip), %rsi     # 0x14d5e8
xorl %eax, %eax
callq 0x10a7d0
movq 0x20(%rbp), %rdx
movq %rbx, %rdi
leaq 0x3b936(%rip), %rsi     # 0x14d600
xorl %eax, %eax
callq 0x10a7d0
movq 0x30(%rbp), %rdx
movq %rbx, %rdi
leaq 0x3b93a(%rip), %rsi     # 0x14d619
xorl %eax, %eax
callq 0x10a7d0
movq 0x20(%rbp), %rdx
testq %rdx, %rdx
je 0x111d0e
movq 0x18(%rbp), %rcx
movq %rdx, %rax
movq -0x8(%rcx,%rax,8), %rsi
cmpw $0x0, 0x12(%rsi)
jne 0x111d09
decq %rax
jne 0x111cf6
xorl %eax, %eax
subq %rax, %rdx
jmp 0x111d10
xorl %edx, %edx
movq %rbx, %rdi
leaq 0x3b918(%rip), %rsi     # 0x14d632
xorl %eax, %eax
callq 0x10a7d0
movq 0x20(%rbp), %rax
testq %rax, %rax
je 0x111d4d
movq 0x18(%rbp), %rcx
xorl %esi, %esi
xorl %edx, %edx
movq (%rcx,%rsi,8), %rdi
movzwl 0x12(%rdi), %r8d
imulq 0x8(%rdi), %r8
addq %r8, %rdx
incq %rsi
cmpq %rsi, %rax
jne 0x111d32
jmp 0x111d4f
xorl %edx, %edx
movq %rbx, %rdi
leaq 0x3b8f2(%rip), %rsi     # 0x14d64b
xorl %eax, %eax
callq 0x10a7d0
movq 0x20(%rbp), %rax
testq %rax, %rax
je 0x111d8a
movq 0x18(%rbp), %rcx
xorl %esi, %esi
xorl %edx, %edx
movq (%rcx,%rsi,8), %rdi
addq (%rdi), %rdx
movzwl 0x10(%rdi), %edi
leaq (%rdx,%rdi,2), %rdx
incq %rsi
cmpq %rsi, %rax
jne 0x111d71
jmp 0x111d8c
xorl %edx, %edx
movq %rbx, %rdi
leaq 0x3b8ce(%rip), %rsi     # 0x14d664
xorl %eax, %eax
callq 0x10a7d0
cmpl $0x3, 0x14(%rsp)
leaq 0x3b957(%rip), %r15     # 0x14d700
jl 0x111eb9
cmpq $0x0, 0x20(%rbp)
je 0x111eb9
xorl %r14d, %r14d
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x10a7d0
movq 0x18(%rbp), %rax
movq %rbx, %r13
movq %r15, %rbx
movq (%rax,%r14,8), %r15
xorl %eax, %eax
callq 0x109c82
movq %rax, %r12
movq (%r15), %rdx
movq %rax, %rdi
leaq 0x3b88b(%rip), %rsi     # 0x14d67d
xorl %eax, %eax
callq 0x10a7d0
movq 0x8(%r15), %rdx
movq %r12, %rdi
leaq 0x3b88c(%rip), %rsi     # 0x14d693
xorl %eax, %eax
callq 0x10a7d0
movzwl 0x10(%r15), %edx
movq %r12, %rdi
leaq 0x3b88c(%rip), %rsi     # 0x14d6a9
xorl %eax, %eax
callq 0x10a7d0
cmpb $0x0, 0x14(%r15)
leaq 0x21981(%rip), %rdx     # 0x1337b1
leaq 0x3c816(%rip), %rax     # 0x14e64d
cmovneq %rax, %rdx
movq %r12, %rdi
leaq 0x3b87a(%rip), %rsi     # 0x14d6bf
xorl %eax, %eax
callq 0x10a7d0
movzwl 0x12(%r15), %edx
movq %r12, %rdi
leaq 0x3b879(%rip), %rsi     # 0x14d6d4
xorl %eax, %eax
callq 0x10a7d0
movzwl 0x12(%r15), %edx
imulq 0x8(%r15), %rdx
movq %r12, %rdi
leaq 0x3b874(%rip), %rsi     # 0x14d6ea
xorl %eax, %eax
callq 0x10a7d0
movzwl 0x10(%r15), %edx
addl %edx, %edx
addq (%r15), %rdx
movq %rbx, %r15
movq %r13, %rbx
movq %r12, %rdi
movq %r15, %rsi
xorl %eax, %eax
callq 0x10a7d0
movq %r13, %rdi
movq %r12, %rsi
leaq 0x3b2d1(%rip), %r12     # 0x14d178
callq 0x10a641
incq %r14
cmpq 0x20(%rbp), %r14
jb 0x111dbd
movq 0x18(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x10a641
movq 0x20(%rsp), %rbx
incq %rbx
movq (%rsp), %r15
cmpq 0x8(%r15), %rbx
jb 0x111c2f
movq %r13, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq