// File: /workspace/github_c_makefile_star2_O0/johsteffens[P]beth/lib/bcore/bcore_tbman.c
// Function: down_manager_s_init
static void down_manager_s_init( down_manager_s* o, uz_t pool_size, bl_t full_align, bcore_mutex_s* mutex )
{
    bcore_memzero( o, sizeof( *o ) );
    o->pool_size = pool_size;
    o->tm_btree = bcore_btree_vd_s_create( bcore_tbman_external_alloc );

    block_manager_s_init
    (
        &o->bm_down_obj,
        o,
        pool_size,
        sizeof( down_obj_s ),
        full_align,
        ( fp_lost_alignment )down_manager_s_lost_alignment,
        o->tm_btree,
        NULL,
        mutex
    );

    block_manager_s_init
    (
        &o->bm_down_arg,
        o,
        pool_size,
        sizeof( down_arg_s ),
        full_align,
        ( fp_lost_alignment )down_manager_s_lost_alignment,
        o->tm_btree,
        NULL,
        mutex
    );

    block_manager_s_init
    (
        &o->bm_down_obj_arr,
        o,
        pool_size,
        sizeof( down_obj_arr_s ),
        full_align,
        ( fp_lost_alignment )down_manager_s_lost_alignment,
        o->tm_btree,
        NULL,
        mutex
    );

    block_manager_s_init
    (
        &o->bm_down_arg_arr,
        o,
        pool_size,
        sizeof( down_arg_arr_s ),
        full_align,
        ( fp_lost_alignment )down_manager_s_lost_alignment,
        o->tm_btree,
        NULL,
        mutex
    );

    o->aligned = true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
andb $0x1, %al
movb %al, -0x11(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1e0, %esi            # imm = 0x1E0
callq 0x9d4f0
movq -0x10(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1c8(%rax)
leaq -0x6df(%rip), %rdi      # 0x107860
callq 0x127d30
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x1c0(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movb -0x11(%rbp), %r8b
movq -0x8(%rbp), %rax
movq 0x1c0(%rax), %r10
movq -0x20(%rbp), %rax
movl $0x10, %ecx
leaq 0x4b03(%rip), %r9       # 0x10ca80
xorl %r11d, %r11d
andb $0x1, %r8b
movzbl %r8b, %r8d
movq %r10, (%rsp)
movq $0x0, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x10c9a0
movq -0x8(%rbp), %rdi
addq $0x70, %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movb -0x11(%rbp), %r8b
movq -0x8(%rbp), %rax
movq 0x1c0(%rax), %r10
movq -0x20(%rbp), %rax
movl $0x18, %ecx
leaq 0x4ab2(%rip), %r9       # 0x10ca80
xorl %r11d, %r11d
andb $0x1, %r8b
movzbl %r8b, %r8d
movq %r10, (%rsp)
movq $0x0, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x10c9a0
movq -0x8(%rbp), %rdi
addq $0xe0, %rdi
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movb -0x11(%rbp), %r8b
movq -0x8(%rbp), %rax
movq 0x1c0(%rax), %r10
movq -0x20(%rbp), %rax
movl $0x20, %ecx
leaq 0x4a5e(%rip), %r9       # 0x10ca80
xorl %r11d, %r11d
andb $0x1, %r8b
movzbl %r8b, %r8d
movq %r10, (%rsp)
movq $0x0, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x10c9a0
movq -0x8(%rbp), %rdi
addq $0x150, %rdi            # imm = 0x150
movq -0x8(%rbp), %rsi
movq -0x10(%rbp), %rdx
movb -0x11(%rbp), %r8b
movq -0x8(%rbp), %rax
movq 0x1c0(%rax), %r10
movq -0x20(%rbp), %rax
movl $0x28, %ecx
leaq 0x4a0a(%rip), %r9       # 0x10ca80
xorl %r11d, %r11d
andb $0x1, %r8b
movzbl %r8b, %r8d
movq %r10, (%rsp)
movq $0x0, 0x8(%rsp)
movq %rax, 0x10(%rsp)
callq 0x10c9a0
movq -0x8(%rbp), %rax
movb $0x1, 0x1d0(%rax)
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)