// File: chhylp123[P]hifiasm/rcut.cpp
// Function: load_bubble_type(bubble_type*, _IO_FILE*)
void load_bubble_type(bubble_type* bub, FILE *fp)
{
	fread(&(bub->chain_weight.n), sizeof(bub->chain_weight.n), 1, fp);
	bub->chain_weight.m = bub->chain_weight.n; CALLOC(bub->chain_weight.a, bub->chain_weight.n);
	fread(bub->chain_weight.a, sizeof((*(bub->chain_weight.a))), bub->chain_weight.n, fp);

	fread(&(bub->list.n), sizeof(bub->list.n), 1, fp);
	bub->list.m = bub->list.n; CALLOC(bub->list.a, bub->list.n);
	fread(bub->list.a, sizeof((*(bub->list.a))), bub->list.n, fp);

	fread(&(bub->num.n), sizeof(bub->num.n), 1, fp);
	bub->num.m = bub->num.n; CALLOC(bub->num.a, bub->num.n);
	fread(bub->num.a, sizeof((*(bub->num.a))), bub->num.n, fp);

	fread(&(bub->pathLen.n), sizeof(bub->pathLen.n), 1, fp);
	bub->pathLen.m = bub->pathLen.n; CALLOC(bub->pathLen.a, bub->pathLen.n);
	fread(bub->pathLen.a, sizeof((*(bub->pathLen.a))), bub->pathLen.n, fp);

	CALLOC(bub->b_ug, 1); load_ma_ug_t(bub->b_ug, fp);
	CALLOC(bub->b_g, 1); load_asg_t(bub->b_g, fp);
	CALLOC(bub->ug, 1); load_ma_ug_t(bub->ug, fp);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
addq $0xc8, %rdi
movq -0x10(%rbp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x22e0
movq -0x8(%rbp), %rax
movq 0xc8(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xd0(%rax)
movq -0x8(%rbp), %rax
movq 0xc8(%rax), %rdi
movl $0x20, %esi
callq 0x2140
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xd8(%rax)
movq -0x8(%rbp), %rax
movq 0xd8(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0xc8(%rax), %rdx
movq -0x10(%rbp), %rcx
movl $0x20, %esi
callq 0x22e0
movq -0x8(%rbp), %rdi
addq $0x18, %rdi
movq -0x10(%rbp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x22e0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
movl $0x4, %esi
callq 0x2140
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdx
movq -0x10(%rbp), %rcx
movl $0x4, %esi
callq 0x22e0
movq -0x8(%rbp), %rdi
addq $0x30, %rdi
movq -0x10(%rbp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x22e0
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x38(%rax)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
movl $0x4, %esi
callq 0x2140
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdx
movq -0x10(%rbp), %rcx
movl $0x4, %esi
callq 0x22e0
movq -0x8(%rbp), %rdi
addq $0x48, %rdi
movq -0x10(%rbp), %rcx
movl $0x8, %esi
movl $0x1, %edx
callq 0x22e0
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rdi
movl $0x8, %esi
callq 0x2140
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x58(%rax)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x48(%rax), %rdx
movq -0x10(%rbp), %rcx
movl $0x8, %esi
callq 0x22e0
movl $0x1, %edi
movl $0x38, %esi
callq 0x2140
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xc0(%rax)
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x22b740
movl $0x1, %edi
movl $0x48, %esi
callq 0x2140
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0xb8(%rax)
movq -0x8(%rbp), %rax
movq 0xb8(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x22b550
movl $0x1, %edi
movl $0x38, %esi
callq 0x2140
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x22b740
addq $0x10, %rsp
popq %rbp
retq