// File: /workspace/github_c_makefile_star2_O1/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 0x11c7a2
movq %rdi, %r15
xorl %ebx, %ebx
xorl %eax, %eax
callq 0x114bbb
movq %rax, %r13
leaq 0x3b7cb(%rip), %rsi     # 0x157ce7
movq %rax, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x10(%r15), %rdx
leaq 0x3b7c4(%rip), %rsi     # 0x157cf5
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x8(%r15), %rdx
leaq 0x3b7cc(%rip), %rsi     # 0x157d12
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x38(%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x132047
leaq 0x3b7cb(%rip), %rsi     # 0x157d2f
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0xb8(%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x130cb9
leaq 0x3b7c4(%rip), %rsi     # 0x157d4c
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x38(%r15), %rdi
callq 0x13204f
leaq 0x3b7c4(%rip), %rsi     # 0x157d69
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0xb8(%r15), %rdi
callq 0x130cc1
leaq 0x3b7c1(%rip), %rsi     # 0x157d86
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
cmpq $0x0, 0x8(%r15)
je 0x11c5e3
movq (%r15), %rax
movq (%rax), %rax
movq 0x8(%rax), %rbx
leaq 0x3b7b9(%rip), %rsi     # 0x157da3
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x11c60f
movq (%r15), %rcx
movq -0x8(%rcx,%rax,8), %rax
movq 0x8(%rax), %r14
leaq 0x3b7aa(%rip), %rsi     # 0x157dc0
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
leaq 0x3cfc1(%rip), %rbp     # 0x1595ed
cmpb $0x0, 0x28(%r15)
leaq 0x22179(%rip), %r12     # 0x13e7b1
movq %r12, %rdx
cmovneq %rbp, %rdx
leaq 0x3b797(%rip), %r14     # 0x157ddd
movq %r13, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x1156f6
leaq 0x3b79f(%rip), %rsi     # 0x157df9
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0xc0(%r15), %rdx
leaq 0x3b683(%rip), %rsi     # 0x157cf5
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0xb0(%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x132047
leaq 0x3b69c(%rip), %rsi     # 0x157d2f
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
cmpb $0x0, 0xc8(%r15)
movq %r12, %rdx
cmovneq %rbp, %rdx
movq %r13, %rdi
movq %r14, %rsi
xorl %eax, %eax
callq 0x1156f6
leaq 0x3b748(%rip), %rsi     # 0x157e0b
movl $0x18, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x60(%r15), %rcx
movabsq $-0x5555555555555555, %r12 # imm = 0xAAAAAAAAAAAAAAAB
testq %rcx, %rcx
je 0x11c710
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 0x11c6ed
mulq %r12
movq %rdx, %rbx
shrq $0x4, %rbx
leaq 0x3b711(%rip), %rsi     # 0x157e28
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x60(%r15), %rax
testq %rax, %rax
movq %r15, (%rsp)
je 0x11c755
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 0x11c73d
leaq 0x3b6e9(%rip), %rsi     # 0x157e45
xorl %r15d, %r15d
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
movq (%rsp), %rcx
movq 0x60(%rcx), %rax
testq %rax, %rax
je 0x11c7aa
movq 0x58(%rcx), %rcx
xorl %edx, %edx
xorl %r15d, %r15d
leaq 0x22028(%rip), %r14     # 0x13e7b1
movq (%rcx,%rdx,8), %rsi
addq (%rsi), %r15
movzwl 0x10(%rsi), %esi
leaq (%r15,%rsi,2), %r15
incq %rdx
cmpq %rdx, %rax
jne 0x11c789
jmp 0x11c7b1
xorl %r13d, %r13d
jmp 0x11d137
leaq 0x22000(%rip), %r14     # 0x13e7b1
leaq 0x3b6aa(%rip), %rsi     # 0x157e62
xorl %ebx, %ebx
movq %r13, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1156f6
leaq 0x3b6b1(%rip), %rsi     # 0x157e7f
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq (%rsp), %r15
movq 0x2a8(%r15), %rdx
leaq 0x3b50b(%rip), %rsi     # 0x157cf5
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x2a0(%r15), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x132047
leaq 0x3b524(%rip), %rsi     # 0x157d2f
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
cmpb $0x0, 0x2b0(%r15)
movq %r14, %rdx
cmovneq %rbp, %rdx
leaq 0x3b5af(%rip), %rsi     # 0x157ddd
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
leaq 0x3b64e(%rip), %rsi     # 0x157e8d
movl $0x10, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x100(%r15), %rax
testq %rax, %rax
je 0x11c881
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 0x11c865
shrq $0x4, %rbx
leaq 0x3b622(%rip), %rsi     # 0x157eaa
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x100(%r15), %rax
testq %rax, %rax
je 0x11c8c8
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 0x11c8b0
leaq 0x3b5f8(%rip), %rsi     # 0x157ec7
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x100(%r15), %rax
testq %rax, %rax
je 0x11c90c
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 0x11c8f5
leaq 0x3b5d1(%rip), %rsi     # 0x157ee4
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
leaq 0x3b5d7(%rip), %rsi     # 0x157f01
movl $0x18, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x170(%r15), %rcx
testq %rcx, %rcx
je 0x11c973
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 0x11c950
mulq %r12
movq %rdx, %r14
shrq $0x4, %r14
leaq 0x3b5a4(%rip), %rsi     # 0x157f1e
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x170(%r15), %rax
testq %rax, %rax
je 0x11c9b8
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 0x11c9a0
leaq 0x3b57c(%rip), %rsi     # 0x157f3b
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x170(%r15), %rax
testq %rax, %rax
je 0x11c9fe
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 0x11c9e7
leaq 0x3b553(%rip), %rsi     # 0x157f58
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
leaq 0x3b55a(%rip), %rsi     # 0x157f75
movl $0x20, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x1e0(%r15), %rax
testq %rax, %rax
je 0x11ca5d
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 0x11ca41
shrq $0x5, %rbx
leaq 0x3b52e(%rip), %rsi     # 0x157f92
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x1e0(%r15), %rax
testq %rax, %rax
je 0x11caa4
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 0x11ca8c
leaq 0x3b504(%rip), %rsi     # 0x157faf
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x1e0(%r15), %rax
testq %rax, %rax
je 0x11cae8
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 0x11cad1
leaq 0x3b4dd(%rip), %rsi     # 0x157fcc
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
leaq 0x3b4e3(%rip), %rsi     # 0x157fe9
movl $0x28, %edx
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq 0x250(%r15), %rcx
testq %rcx, %rcx
je 0x11cb59
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 0x11cb2c
movabsq $-0x3333333333333333, %rcx # imm = 0xCCCCCCCCCCCCCCCD
mulq %rcx
movq %rdx, %r14
shrq $0x5, %r14
leaq 0x3b4a6(%rip), %rsi     # 0x158006
xorl %ebx, %ebx
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x250(%r15), %rax
testq %rax, %rax
je 0x11cb9e
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 0x11cb86
leaq 0x3b47e(%rip), %rsi     # 0x158023
xorl %r14d, %r14d
movq %r13, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x250(%r15), %rax
testq %rax, %rax
je 0x11cbe4
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 0x11cbcd
leaq 0x3b455(%rip), %rsi     # 0x158040
xorl %r12d, %r12d
movq %r13, %rdi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
leaq 0x3b45b(%rip), %rsi     # 0x15805d
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
leaq 0x8(%rsp), %rbx
movq %r12, (%rbx)
movq 0xb8(%r15), %rdi
leaq 0x2611(%rip), %r14      # 0x11f233
movq %r14, %rsi
movq %rbx, %rdx
callq 0x130cb1
movq (%rbx), %r15
movq (%rsp), %rdi
callq 0x11d149
addq %rax, %r15
leaq 0x3b42f(%rip), %rsi     # 0x158072
movq %r13, %rdi
movq %r15, %rdx
movq (%rsp), %r15
xorl %eax, %eax
callq 0x1156f6
movq %r12, (%rbx)
movq 0xb8(%r15), %rdi
leaq 0x8(%rsp), %rbx
movq %r14, %rsi
movq %rbx, %rdx
callq 0x130cb1
movq (%rbx), %rdx
leaq 0x3b417(%rip), %rsi     # 0x15808f
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
movq %r15, %rdi
callq 0x11d149
leaq 0x3b41b(%rip), %rsi     # 0x1580ac
movq %r13, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x8(%r15), %rax
testq %rax, %rax
je 0x11ccec
movq (%r15), %rcx
xorl %edx, %edx
xorl %r12d, %r12d
movq (%rcx,%rdx,8), %rdi
movq 0x20(%rdi), %rsi
testq %rsi, %rsi
je 0x11ccdf
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 0x11ccc5
jmp 0x11cce1
xorl %edi, %edi
addq %rdi, %r12
incq %rdx
cmpq %rax, %rdx
jne 0x11ccaf
movq 0x60(%r15), %rax
testq %rax, %rax
je 0x11cd16
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 0x11ccfd
jmp 0x11cd18
xorl %edx, %edx
addq %r12, %rdx
leaq 0x3b3a7(%rip), %rsi     # 0x1580c9
xorl %ebp, %ebp
movq %r13, %rdi
xorl %eax, %eax
callq 0x1156f6
leaq 0x8(%rsp), %rbx
movq %rbp, (%rbx)
movq 0xb8(%r15), %rdi
leaq 0x24f6(%rip), %r14      # 0x11f23a
movq %r14, %rsi
movq %rbx, %rdx
callq 0x130cb1
movq (%rbx), %r15
movq (%rsp), %rdi
callq 0x11d19f
addq %rax, %r15
leaq 0x3b381(%rip), %rsi     # 0x1580e6
movq %r13, %rdi
movq %r15, %rdx
xorl %eax, %eax
callq 0x1156f6
movq %rbp, (%rbx)
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0x8(%rsp), %r15
movq %r14, %rsi
movq %r15, %rdx
callq 0x130cb1
movq (%r15), %rdx
leaq 0x3b2f5(%rip), %rbx     # 0x15808f
movq %r13, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x1156f6
movq (%rsp), %rdi
callq 0x11d19f
leaq 0x3b2f5(%rip), %r14     # 0x1580ac
movq %r13, %rdi
movq %r14, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
movq %rbp, (%r15)
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0x2462(%rip), %r15      # 0x11f23e
leaq 0x8(%rsp), %r12
movq %r15, %rsi
movq %r12, %rdx
callq 0x130cb1
movq %r13, 0x18(%rsp)
movq (%r12), %r13
movq (%rsp), %rdi
callq 0x11d1ee
addq %rax, %r13
leaq 0x3b2fb(%rip), %rsi     # 0x158103
movq 0x18(%rsp), %rdi
movq %r13, %rdx
movq 0x18(%rsp), %r13
xorl %eax, %eax
callq 0x1156f6
movq %rbp, (%r12)
movq (%rsp), %rax
movq 0xb8(%rax), %rdi
leaq 0x8(%rsp), %r12
movq %r15, %rsi
movq (%rsp), %r15
movq %r12, %rdx
callq 0x130cb1
movq (%r12), %rdx
movq %r13, %rdi
movq %rbx, %rsi
xorl %eax, %eax
callq 0x1156f6
movq %r15, %rdi
callq 0x11d1ee
movq %r13, %rdi
movq %r14, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0x1156f6
cmpl $0x1, 0x14(%rsp)
je 0x11d137
cmpq $0x0, 0x8(%r15)
je 0x11d137
leaq 0x3b29b(%rip), %r12     # 0x158120
xorl %ebx, %ebx
movq %r13, %rdi
movq %r12, %rsi
movq %rbx, %rdx
xorl %eax, %eax
callq 0x1156f6
movq (%r15), %rax
movq %rbx, 0x20(%rsp)
movq (%rax,%rbx,8), %rbp
xorl %eax, %eax
callq 0x114bbb
movq %rax, %rbx
movq (%rbp), %rdx
movq %rax, %rdi
leaq 0x3b68b(%rip), %rsi     # 0x158546
xorl %eax, %eax
callq 0x1156f6
movq 0x8(%rbp), %rdx
movq %rbx, %rdi
leaq 0x3b68f(%rip), %rsi     # 0x15855f
xorl %eax, %eax
callq 0x1156f6
movsd 0x38(%rbp), %xmm0
movq %rbx, %rdi
leaq 0x3b692(%rip), %rsi     # 0x158578
movb $0x1, %al
callq 0x1156f6
cmpb $0x0, 0x40(%rbp)
leaq 0x218b9(%rip), %rdx     # 0x13e7b1
leaq 0x3c6ee(%rip), %rax     # 0x1595ed
cmovneq %rax, %rdx
movq %rbx, %rdi
leaq 0x3b683(%rip), %rsi     # 0x158590
xorl %eax, %eax
callq 0x1156f6
movq 0x20(%rbp), %rdx
movq %rbx, %rdi
leaq 0x3b686(%rip), %rsi     # 0x1585a8
xorl %eax, %eax
callq 0x1156f6
movq 0x30(%rbp), %rdx
movq %rbx, %rdi
leaq 0x3b68a(%rip), %rsi     # 0x1585c1
xorl %eax, %eax
callq 0x1156f6
movq 0x20(%rbp), %rdx
testq %rdx, %rdx
je 0x11cf66
movq 0x18(%rbp), %rcx
movq %rdx, %rax
movq -0x8(%rcx,%rax,8), %rsi
cmpw $0x0, 0x12(%rsi)
jne 0x11cf61
decq %rax
jne 0x11cf4e
xorl %eax, %eax
subq %rax, %rdx
jmp 0x11cf68
xorl %edx, %edx
movq %rbx, %rdi
leaq 0x3b668(%rip), %rsi     # 0x1585da
xorl %eax, %eax
callq 0x1156f6
movq 0x20(%rbp), %rax
testq %rax, %rax
je 0x11cfa5
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 0x11cf8a
jmp 0x11cfa7
xorl %edx, %edx
movq %rbx, %rdi
leaq 0x3b642(%rip), %rsi     # 0x1585f3
xorl %eax, %eax
callq 0x1156f6
movq 0x20(%rbp), %rax
testq %rax, %rax
je 0x11cfe2
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 0x11cfc9
jmp 0x11cfe4
xorl %edx, %edx
movq %rbx, %rdi
leaq 0x3b61e(%rip), %rsi     # 0x15860c
xorl %eax, %eax
callq 0x1156f6
cmpl $0x3, 0x14(%rsp)
leaq 0x3b6a7(%rip), %r15     # 0x1586a8
jl 0x11d111
cmpq $0x0, 0x20(%rbp)
je 0x11d111
xorl %r14d, %r14d
movq %rbx, %rdi
movq %r12, %rsi
movq %r14, %rdx
xorl %eax, %eax
callq 0x1156f6
movq 0x18(%rbp), %rax
movq %rbx, %r13
movq %r15, %rbx
movq (%rax,%r14,8), %r15
xorl %eax, %eax
callq 0x114bbb
movq %rax, %r12
movq (%r15), %rdx
movq %rax, %rdi
leaq 0x3b5db(%rip), %rsi     # 0x158625
xorl %eax, %eax
callq 0x1156f6
movq 0x8(%r15), %rdx
movq %r12, %rdi
leaq 0x3b5dc(%rip), %rsi     # 0x15863b
xorl %eax, %eax
callq 0x1156f6
movzwl 0x10(%r15), %edx
movq %r12, %rdi
leaq 0x3b5dc(%rip), %rsi     # 0x158651
xorl %eax, %eax
callq 0x1156f6
cmpb $0x0, 0x14(%r15)
leaq 0x21729(%rip), %rdx     # 0x13e7b1
leaq 0x3c55e(%rip), %rax     # 0x1595ed
cmovneq %rax, %rdx
movq %r12, %rdi
leaq 0x3b5ca(%rip), %rsi     # 0x158667
xorl %eax, %eax
callq 0x1156f6
movzwl 0x12(%r15), %edx
movq %r12, %rdi
leaq 0x3b5c9(%rip), %rsi     # 0x15867c
xorl %eax, %eax
callq 0x1156f6
movzwl 0x12(%r15), %edx
imulq 0x8(%r15), %rdx
movq %r12, %rdi
leaq 0x3b5c4(%rip), %rsi     # 0x158692
xorl %eax, %eax
callq 0x1156f6
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 0x1156f6
movq %r13, %rdi
movq %r12, %rsi
leaq 0x3b021(%rip), %r12     # 0x158120
callq 0x11556c
incq %r14
cmpq 0x20(%rbp), %r14
jb 0x11d015
movq 0x18(%rsp), %r13
movq %r13, %rdi
movq %rbx, %rsi
callq 0x11556c
movq 0x20(%rsp), %rbx
incq %rbx
movq (%rsp), %r15
cmpq 0x8(%r15), %rbx
jb 0x11ce87
movq %r13, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq