// File: /workspace/github_c_makefile_star2_O0/cyb70289[P]tt/src/apn/decimal/basic.c
// Function: add_sub_dec
static int add_sub_dec(struct tt_dec *dst, const struct tt_dec *src1,
		const struct tt_dec *src2, int sub)
{
	int ret = 0;

	int sign1 = src1->_sign;
	int sign2 = src2->_sign;
	if (sub)
		sign2 = !sign2;

	/* Check NaN, Inf */
	if (src1->_inf_nan == TT_DEC_NAN || src2->_inf_nan == TT_DEC_NAN) {
		dst->_inf_nan = TT_DEC_NAN;
		return TT_APN_EINVAL;
	}
	if (src1->_inf_nan == TT_DEC_INF || src2->_inf_nan == TT_DEC_INF) {
		dst->_inf_nan = TT_DEC_INF;
		dst->_sign = (src1->_inf_nan == TT_DEC_INF ? sign1 : sign2);
		return TT_APN_EOVERFLOW;
	}
	dst->_inf_nan = 0;

	/* Allocate a new DEC if dst and src overlaps */
	struct tt_dec *dst2 = dst;
	if (dst == src1 || dst == src2) {
		dst2 = tt_dec_alloc(dst->_prec);
		if (!dst2)
			return TT_ENOMEM;
	} else {
		_tt_dec_zero(dst);
	}

	/* Check exponent alignment.
	 * Swap src1 and src2 if exponent of src1 is smaller, and make src1
	 * the one needs to adjust exponent(left shift signifcands).
	 */
	int exp_adj1 = src1->_exp - src2->_exp, exp_adj2 = 0;
	if (exp_adj1 < 0) {
		exp_adj1 = -exp_adj1;
		__tt_swap(src1, src2);
		__tt_swap(sign1, sign2);
	}

	/* Check rounding */
	int msb_dst = src1->_msb;
	/* Shifting "0" can't influence precision */
	if (!_tt_dec_is_zero(src1))
		msb_dst += exp_adj1;
	if (msb_dst < src2->_msb)
		msb_dst = src2->_msb;
	if (msb_dst > dst2->_prec) {
		int adj_adj = msb_dst - dst2->_prec;
		exp_adj1 -= adj_adj;
		exp_adj2 -= adj_adj;
	}
	if ((exp_adj1 < 0 && !_tt_dec_is_true_zero(src1)) ||
			(exp_adj2 < 0 && !_tt_dec_is_true_zero(src2)))
		ret = TT_APN_EROUNDED;

	/* Set result exponent, may adjust later */
	dst2->_exp = src1->_exp - exp_adj1;

	/* Use rounding guard digits to gain precision */
	int adj_adj = 0;
	if (exp_adj2 < 0) {
		int guard_adj = -exp_adj2;
		if (guard_adj > TT_DEC_PREC_RND)
			guard_adj = TT_DEC_PREC_RND;
		if (-(exp_adj2 + guard_adj) < src2->_msb) {
			exp_adj1 += guard_adj;
			exp_adj2 += guard_adj;
			adj_adj += guard_adj;
		}
	}

	/* If both operands need shift, make src1 align-9 shifting */
	if ((exp_adj1 % 9) && (exp_adj2 % 9)) {
		int align_adj = 9 - exp_adj1 % 9;
		if (align_adj > 9)	/* exp_adj may be negative */
			align_adj -= 9;
		exp_adj1 += align_adj;
		exp_adj2 += align_adj;
		adj_adj += align_adj;
	}

	/* "0" needn't shift */
	if (_tt_dec_is_zero(src1))
		exp_adj1 = 0;
	if (_tt_dec_is_zero(src2))
		exp_adj2 = 0;

	/* Copy adjusted significand of src1 to dst */
	tt_assert_fa(dst2->_prec_full > (src1->_msb + exp_adj1));
	shift_digs(dst2->_dig32, dst2->_digsz, src1->_dig32, src1->_msb, exp_adj1);

	/* Copy adjusted significand of src2 to temporary buffer */
	uint *tmpdig = malloc(dst2->_digsz);
	if (!tmpdig) {
		if (dst2 != dst)
			free(dst2);
		return TT_ENOMEM;
	}
	memset(tmpdig, 0, dst2->_digsz);
	tt_assert_fa(dst2->_prec_full > (src2->_msb + exp_adj2));
	shift_digs(tmpdig, dst2->_digsz, src2->_dig32, src2->_msb, exp_adj2);

	/* Compare sign, decide to do "+" or "-" */
	int msb;
	if (sign1 == sign2) {
		/* Adding... */
		dst2->_sign = sign1;
		/* Add aligned significands */
		msb = add_digs(dst2->_dig32, src1->_msb + exp_adj1,
				tmpdig, src2->_msb + exp_adj2);
	} else {
		/* Substracting... */
		/* Pick bigger value */
		int cmp12 = cmp_digs(dst2->_dig32, src1->_msb + exp_adj1,
				tmpdig, src2->_msb + exp_adj2);
		/* Substract aligned significands */
		if (cmp12 >= 0) {
			dst2->_sign = sign1;
			msb = sub_digs(dst2->_dig32,
					dst2->_dig32, src1->_msb + exp_adj1,
					tmpdig, src2->_msb + exp_adj2);
		} else {
			dst2->_sign = sign2;
			msb = sub_digs(dst2->_dig32,
					tmpdig, src2->_msb + exp_adj2,
					dst2->_dig32, src1->_msb + exp_adj1);
		}
	}

	/* Check rounding */
	if (adj_adj) {
		if (_tt_round(_tt_dec_get_dig(dst2->_dig32, adj_adj) & 1,
				_tt_dec_get_dig(dst2->_dig32, adj_adj-1), 0)) {
			/* Construct 10^adj_adj */
			tt_assert_fa(adj_adj < 36);
			uint one[4] = { 0, 0, 0, 0 };
			one[adj_adj / 9] = one_tbl[adj_adj % 9];
			msb = add_digs(dst2->_dig32, msb, one, adj_adj+1);
		}
	}
	/* Adjust significand, msb */
	dst2->_msb = msb - adj_adj;
	/* Only happen on substracting */
	if (dst2->_msb <= 0)
		dst2->_msb = 1;
	tt_assert_fa(dst2->_msb >= 1 && dst2->_msb <= (dst2->_prec+1));
	/* Only happen on adding */
	if (dst2->_msb > dst2->_prec) {
		adj_adj++;
		dst2->_msb--;
		dst2->_exp++;
		ret = TT_APN_EROUNDED;
	}
	shift_digs(dst2->_dig32, dst2->_digsz, dst2->_dig32, msb, -adj_adj);

	free(tmpdig);

	/* Switch buffer if dst overlap with src */
	if (dst2 != dst) {
		free(dst->_dig32);
		memcpy(dst, dst2, sizeof(struct tt_dec));
		free(dst2);
	}

	return ret;
}

// Assembly:
subq $0x98, %rsp
movq %rdi, 0x88(%rsp)
movq %rsi, 0x80(%rsp)
movq %rdx, 0x78(%rsp)
movl %ecx, 0x74(%rsp)
movl $0x0, 0x70(%rsp)
movq 0x80(%rsp), %rax
movswl (%rax), %eax
movl %eax, 0x6c(%rsp)
movq 0x78(%rsp), %rax
movswl (%rax), %eax
movl %eax, 0x68(%rsp)
cmpl $0x0, 0x74(%rsp)
je 0x3b7d
cmpl $0x0, 0x68(%rsp)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movl %eax, 0x68(%rsp)
movq 0x80(%rsp), %rax
movswl 0x2(%rax), %eax
cmpl $0x2, %eax
je 0x3b9c
movq 0x78(%rsp), %rax
movswl 0x2(%rax), %eax
cmpl $0x2, %eax
jne 0x3bba
movq 0x88(%rsp), %rax
movw $0x2, 0x2(%rax)
movl $0xffffff32, 0x94(%rsp) # imm = 0xFFFFFF32
jmp 0x43da
movq 0x80(%rsp), %rax
movswl 0x2(%rax), %eax
cmpl $0x1, %eax
je 0x3bd9
movq 0x78(%rsp), %rax
movswl 0x2(%rax), %eax
cmpl $0x1, %eax
jne 0x3c2c
movq 0x88(%rsp), %rax
movw $0x1, 0x2(%rax)
movq 0x80(%rsp), %rax
movswl 0x2(%rax), %eax
cmpl $0x1, %eax
jne 0x3c02
movl 0x6c(%rsp), %eax
movl %eax, 0xc(%rsp)
jmp 0x3c0a
movl 0x68(%rsp), %eax
movl %eax, 0xc(%rsp)
movl 0xc(%rsp), %eax
movw %ax, %cx
movq 0x88(%rsp), %rax
movw %cx, (%rax)
movl $0xffffff36, 0x94(%rsp) # imm = 0xFFFFFF36
jmp 0x43da
movq 0x88(%rsp), %rax
movw $0x0, 0x2(%rax)
movq 0x88(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x88(%rsp), %rax
cmpq 0x80(%rsp), %rax
je 0x3c68
movq 0x88(%rsp), %rax
cmpq 0x78(%rsp), %rax
jne 0x3c97
movq 0x88(%rsp), %rax
movl 0x8(%rax), %edi
callq 0x1f00
movq %rax, 0x60(%rsp)
cmpq $0x0, 0x60(%rsp)
jne 0x3c95
movl $0xffffffff, 0x94(%rsp) # imm = 0xFFFFFFFF
jmp 0x43da
jmp 0x3ca4
movq 0x88(%rsp), %rdi
callq 0x20a0
movq 0x80(%rsp), %rax
movl 0x4(%rax), %eax
movq 0x78(%rsp), %rcx
subl 0x4(%rcx), %eax
movl %eax, 0x5c(%rsp)
movl $0x0, 0x58(%rsp)
cmpl $0x0, 0x5c(%rsp)
jge 0x3d14
xorl %eax, %eax
subl 0x5c(%rsp), %eax
movl %eax, 0x5c(%rsp)
movq 0x80(%rsp), %rax
movq %rax, 0x50(%rsp)
movq 0x78(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x50(%rsp), %rax
movq %rax, 0x78(%rsp)
jmp 0x3cfa
movl 0x6c(%rsp), %eax
movl %eax, 0x4c(%rsp)
movl 0x68(%rsp), %eax
movl %eax, 0x6c(%rsp)
movl 0x4c(%rsp), %eax
movl %eax, 0x68(%rsp)
jmp 0x3d14
movq 0x80(%rsp), %rax
movl 0x14(%rax), %eax
movl %eax, 0x48(%rsp)
movq 0x80(%rsp), %rdi
callq 0x48a0
testb $0x1, %al
jne 0x3d40
movl 0x5c(%rsp), %eax
addl 0x48(%rsp), %eax
movl %eax, 0x48(%rsp)
movl 0x48(%rsp), %eax
movq 0x78(%rsp), %rcx
cmpl 0x14(%rcx), %eax
jge 0x3d5a
movq 0x78(%rsp), %rax
movl 0x14(%rax), %eax
movl %eax, 0x48(%rsp)
movl 0x48(%rsp), %eax
movq 0x60(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jle 0x3d94
movl 0x48(%rsp), %eax
movq 0x60(%rsp), %rcx
subl 0x8(%rcx), %eax
movl %eax, 0x44(%rsp)
movl 0x44(%rsp), %ecx
movl 0x5c(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x5c(%rsp)
movl 0x44(%rsp), %ecx
movl 0x58(%rsp), %eax
subl %ecx, %eax
movl %eax, 0x58(%rsp)
cmpl $0x0, 0x5c(%rsp)
jge 0x3dae
movq 0x80(%rsp), %rdi
callq 0x6590
testb $0x1, %al
jne 0x3dae
jmp 0x3dc3
cmpl $0x0, 0x58(%rsp)
jge 0x3dcb
movq 0x78(%rsp), %rdi
callq 0x6590
testb $0x1, %al
jne 0x3dcb
movl $0xc9, 0x70(%rsp)
movq 0x80(%rsp), %rax
movl 0x4(%rax), %ecx
subl 0x5c(%rsp), %ecx
movq 0x60(%rsp), %rax
movl %ecx, 0x4(%rax)
movl $0x0, 0x40(%rsp)
cmpl $0x0, 0x58(%rsp)
jge 0x3e46
xorl %eax, %eax
subl 0x58(%rsp), %eax
movl %eax, 0x3c(%rsp)
cmpl $0x9, 0x3c(%rsp)
jle 0x3e0a
movl $0x9, 0x3c(%rsp)
movl 0x58(%rsp), %ecx
addl 0x3c(%rsp), %ecx
xorl %eax, %eax
subl %ecx, %eax
movq 0x78(%rsp), %rcx
cmpl 0x14(%rcx), %eax
jge 0x3e44
movl 0x3c(%rsp), %eax
addl 0x5c(%rsp), %eax
movl %eax, 0x5c(%rsp)
movl 0x3c(%rsp), %eax
addl 0x58(%rsp), %eax
movl %eax, 0x58(%rsp)
movl 0x3c(%rsp), %eax
addl 0x40(%rsp), %eax
movl %eax, 0x40(%rsp)
jmp 0x3e46
movl 0x5c(%rsp), %eax
movl $0x9, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x3eb5
movl 0x58(%rsp), %eax
movl $0x9, %ecx
cltd
idivl %ecx
cmpl $0x0, %edx
je 0x3eb5
movl 0x5c(%rsp), %eax
movl $0x9, %ecx
cltd
idivl %ecx
movl $0x9, %eax
subl %edx, %eax
movl %eax, 0x38(%rsp)
cmpl $0x9, 0x38(%rsp)
jle 0x3e91
movl 0x38(%rsp), %eax
subl $0x9, %eax
movl %eax, 0x38(%rsp)
movl 0x38(%rsp), %eax
addl 0x5c(%rsp), %eax
movl %eax, 0x5c(%rsp)
movl 0x38(%rsp), %eax
addl 0x58(%rsp), %eax
movl %eax, 0x58(%rsp)
movl 0x38(%rsp), %eax
addl 0x40(%rsp), %eax
movl %eax, 0x40(%rsp)
movq 0x80(%rsp), %rdi
callq 0x48a0
testb $0x1, %al
jne 0x3ec8
jmp 0x3ed0
movl $0x0, 0x5c(%rsp)
movq 0x78(%rsp), %rdi
callq 0x48a0
testb $0x1, %al
jne 0x3ee0
jmp 0x3ee8
movl $0x0, 0x58(%rsp)
jmp 0x3eea
movq 0x60(%rsp), %rax
movl 0xc(%rax), %eax
movq 0x80(%rsp), %rcx
movl 0x14(%rcx), %ecx
addl 0x5c(%rsp), %ecx
cmpl %ecx, %eax
setg %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x3f42
xorl %edi, %edi
leaq 0x1a88c(%rip), %rsi     # 0x1e7ae
leaq 0xe1b5(%rip), %rdx      # 0x120de
leaq 0x1a84c(%rip), %rcx     # 0x1e77c
movl $0x1e6, %r8d            # imm = 0x1E6
movb $0x0, %al
callq 0xe010
callq 0x1060
jmp 0x3f44
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x60(%rsp), %rax
movl 0x10(%rax), %esi
movq 0x80(%rsp), %rax
movq 0x18(%rax), %rdx
movq 0x80(%rsp), %rax
movl 0x14(%rax), %ecx
movl 0x5c(%rsp), %r8d
callq 0x4af0
movq 0x60(%rsp), %rax
movl 0x10(%rax), %eax
movl %eax, %edi
callq 0x1160
movq %rax, 0x30(%rsp)
cmpq $0x0, 0x30(%rsp)
jne 0x3fbb
movq 0x60(%rsp), %rax
cmpq 0x88(%rsp), %rax
je 0x3fab
movq 0x60(%rsp), %rdi
callq 0x1030
movl $0xffffffff, 0x94(%rsp) # imm = 0xFFFFFFFF
jmp 0x43da
movq 0x30(%rsp), %rdi
movq 0x60(%rsp), %rax
movl 0x10(%rax), %eax
movl %eax, %edx
xorl %esi, %esi
callq 0x10e0
movq 0x60(%rsp), %rax
movl 0xc(%rax), %eax
movq 0x78(%rsp), %rcx
movl 0x14(%rcx), %ecx
addl 0x58(%rsp), %ecx
cmpl %ecx, %eax
setg %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x4026
xorl %edi, %edi
leaq 0x1a7a8(%rip), %rsi     # 0x1e7ae
leaq 0xe0d1(%rip), %rdx      # 0x120de
leaq 0x1a768(%rip), %rcx     # 0x1e77c
movl $0x1f1, %r8d            # imm = 0x1F1
movb $0x0, %al
callq 0xe010
callq 0x1060
jmp 0x4028
movq 0x30(%rsp), %rdi
movq 0x60(%rsp), %rax
movl 0x10(%rax), %esi
movq 0x78(%rsp), %rax
movq 0x18(%rax), %rdx
movq 0x78(%rsp), %rax
movl 0x14(%rax), %ecx
movl 0x58(%rsp), %r8d
callq 0x4af0
movl 0x6c(%rsp), %eax
cmpl 0x68(%rsp), %eax
jne 0x40a0
movl 0x6c(%rsp), %eax
movw %ax, %cx
movq 0x60(%rsp), %rax
movw %cx, (%rax)
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x80(%rsp), %rax
movl 0x14(%rax), %esi
addl 0x5c(%rsp), %esi
movq 0x30(%rsp), %rdx
movq 0x78(%rsp), %rax
movl 0x14(%rax), %ecx
addl 0x58(%rsp), %ecx
callq 0x4f80
movl %eax, 0x2c(%rsp)
jmp 0x4175
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x80(%rsp), %rax
movl 0x14(%rax), %esi
addl 0x5c(%rsp), %esi
movq 0x30(%rsp), %rdx
movq 0x78(%rsp), %rax
movl 0x14(%rax), %ecx
addl 0x58(%rsp), %ecx
callq 0x6010
movl %eax, 0x28(%rsp)
cmpl $0x0, 0x28(%rsp)
jl 0x4127
movl 0x6c(%rsp), %eax
movw %ax, %cx
movq 0x60(%rsp), %rax
movw %cx, (%rax)
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rsi
movq 0x80(%rsp), %rax
movl 0x14(%rax), %edx
addl 0x5c(%rsp), %edx
movq 0x30(%rsp), %rcx
movq 0x78(%rsp), %rax
movl 0x14(%rax), %r8d
addl 0x58(%rsp), %r8d
callq 0x6100
movl %eax, 0x2c(%rsp)
jmp 0x4173
movl 0x68(%rsp), %eax
movw %ax, %cx
movq 0x60(%rsp), %rax
movw %cx, (%rax)
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x30(%rsp), %rsi
movq 0x78(%rsp), %rax
movl 0x14(%rax), %edx
addl 0x58(%rsp), %edx
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rcx
movq 0x80(%rsp), %rax
movl 0x14(%rax), %r8d
addl 0x5c(%rsp), %r8d
callq 0x6100
movl %eax, 0x2c(%rsp)
jmp 0x4175
cmpl $0x0, 0x40(%rsp)
je 0x426c
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movl 0x40(%rsp), %esi
callq 0x2350
andl $0x1, %eax
movl %eax, 0x8(%rsp)
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movl 0x40(%rsp), %esi
subl $0x1, %esi
callq 0x2350
movl 0x8(%rsp), %edi
movl %eax, %esi
xorl %edx, %edx
callq 0xe9f0
cmpl $0x0, %eax
je 0x426a
jmp 0x41c6
cmpl $0x24, 0x40(%rsp)
setl %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x420a
xorl %edi, %edi
leaq 0x1a5c4(%rip), %rsi     # 0x1e7ae
leaq 0xdeed(%rip), %rdx      # 0x120de
leaq 0x1a584(%rip), %rcx     # 0x1e77c
movl $0x214, %r8d            # imm = 0x214
movb $0x0, %al
callq 0xe010
callq 0x1060
jmp 0x420c
leaq 0x10(%rsp), %rdi
xorl %esi, %esi
movl $0x10, %edx
callq 0x10e0
movl 0x40(%rsp), %eax
movl $0x9, %ecx
cltd
idivl %ecx
movslq %edx, %rcx
leaq 0xdf8d(%rip), %rax      # 0x121c0
movl (%rax,%rcx,4), %ecx
movl 0x40(%rsp), %eax
movl $0x9, %esi
cltd
idivl %esi
cltq
movl %ecx, 0x10(%rsp,%rax,4)
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movl 0x2c(%rsp), %esi
leaq 0x10(%rsp), %rdx
movl 0x40(%rsp), %ecx
addl $0x1, %ecx
callq 0x4f80
movl %eax, 0x2c(%rsp)
jmp 0x426c
movl 0x2c(%rsp), %ecx
subl 0x40(%rsp), %ecx
movq 0x60(%rsp), %rax
movl %ecx, 0x14(%rax)
movq 0x60(%rsp), %rax
cmpl $0x0, 0x14(%rax)
jg 0x4293
movq 0x60(%rsp), %rax
movl $0x1, 0x14(%rax)
jmp 0x4295
movq 0x60(%rsp), %rcx
xorl %eax, %eax
cmpl $0x1, 0x14(%rcx)
movb %al, 0x7(%rsp)
jl 0x42c2
movq 0x60(%rsp), %rax
movl 0x14(%rax), %eax
movq 0x60(%rsp), %rcx
movl 0x8(%rcx), %ecx
addl $0x1, %ecx
cmpl %ecx, %eax
setle %al
movb %al, 0x7(%rsp)
movb 0x7(%rsp), %al
xorb $-0x1, %al
xorb $-0x1, %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
cltq
cmpq $0x0, %rax
je 0x4302
xorl %edi, %edi
leaq 0x1a4cc(%rip), %rsi     # 0x1e7ae
leaq 0xddf5(%rip), %rdx      # 0x120de
leaq 0x1a48c(%rip), %rcx     # 0x1e77c
movl $0x21f, %r8d            # imm = 0x21F
movb $0x0, %al
callq 0xe010
callq 0x1060
jmp 0x4304
movq 0x60(%rsp), %rax
movl 0x14(%rax), %eax
movq 0x60(%rsp), %rcx
cmpl 0x8(%rcx), %eax
jle 0x4345
movl 0x40(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x40(%rsp)
movq 0x60(%rsp), %rax
movl 0x14(%rax), %ecx
addl $-0x1, %ecx
movl %ecx, 0x14(%rax)
movq 0x60(%rsp), %rax
movl 0x4(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x4(%rax)
movl $0xc9, 0x70(%rsp)
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdi
movq 0x60(%rsp), %rax
movl 0x10(%rax), %esi
movq 0x60(%rsp), %rax
movq 0x18(%rax), %rdx
movl 0x2c(%rsp), %ecx
xorl %r8d, %r8d
subl 0x40(%rsp), %r8d
callq 0x4af0
movq 0x30(%rsp), %rdi
callq 0x1030
movq 0x60(%rsp), %rax
cmpq 0x88(%rsp), %rax
je 0x43cf
movq 0x88(%rsp), %rax
movq 0x18(%rax), %rdi
callq 0x1030
movq 0x88(%rsp), %rax
movq 0x60(%rsp), %rcx
movq (%rcx), %rdx
movq %rdx, (%rax)
movq 0x8(%rcx), %rdx
movq %rdx, 0x8(%rax)
movq 0x10(%rcx), %rdx
movq %rdx, 0x10(%rax)
movq 0x18(%rcx), %rcx
movq %rcx, 0x18(%rax)
movq 0x60(%rsp), %rdi
callq 0x1030
movl 0x70(%rsp), %eax
movl %eax, 0x94(%rsp)
movl 0x94(%rsp), %eax
addq $0x98, %rsp
retq
nopl (%rax)