// File: /workspace/github_c_makefile_star2_O1/jsummers[P]deark/modules/amiga-dsk.c
// Function: do_header_block
static int do_header_block(deark *c, lctx *d, i64 blknum)
{
	i64 pos1;
	int blocktype;
	int retval = 0;
	int saved_indent_level;
	struct member_data *md = NULL;

	de_dbg_indent_save(c, &saved_indent_level);

	d->nesting_level++;
	if(d->nesting_level>MAX_NESTING_LEVEL) goto done;

	pos1 = blocknum_to_offset(d, blknum);

	if(!claim_block(c, d, blknum)) {
		goto done;
	}

	blocktype = (int)de_geti32be(pos1);
	if(blocktype==ADF_T_HEADER) {
		retval = 1;
	}

	md = de_malloc(c, sizeof(struct member_data));
	md->header_blknum = blknum;
	md->header_pos = blocknum_to_offset(d, md->header_blknum);
	md->fi = de_finfo_create(c);

	de_dbg(c, "header block: #%"I64_FMT" (%"I64_FMT")", blknum, pos1);
	de_dbg_indent(c, 1);

	de_dbg(c, "block type: %d", blocktype);
	if(blocktype!=ADF_T_HEADER) {
		de_err(c, "Expected header block #%"I64_FMT" (at %"I64_FMT") not found", blknum, pos1);
		goto done;
	}
	md->sec_type = (UI)de_getu32be(pos1+d->bsize-4);
	de_dbg(c, "block secondary type: %d", md->sec_type);

	if(md->sec_type==ADF_ST_ROOT || md->sec_type==ADF_ST_USERDIR) {
		do_directory(c, d, md);
	}
	else if(md->sec_type==ADF_ST_FILE) {
		do_file(c, d, md);
	}
	else {
		de_warn(c, "Unsupported file type: %d", md->sec_type);
		goto done;
	}

done:
	if(md) {
		if(md->outf) {
			dbuf_close(md->outf);
		}
		de_finfo_destroy(c, md->fi);
		ucstring_destroy(md->fn);
		de_free(c, md->tmpbpt.blocks_tbl);
		de_free(c, md);
	}
	de_dbg_indent_restore(c, saved_indent_level);
	d->nesting_level--;
	return retval;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rdx, %r12
movq %rsi, %rbx
movq %rdi, %r14
leaq 0x48(%rsp), %rsi
callq 0xe958c
movl 0x20(%rbx), %eax
leal 0x1(%rax), %ecx
movl %ecx, 0x20(%rbx)
cmpl $0xf, %eax
jg 0x28d8d
movq 0x8(%rbx), %rbp
imulq %r12, %rbp
movq %r14, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x29a57
testl %eax, %eax
je 0x28d8d
movq 0x18(%r14), %rdi
movq %rbp, %rsi
callq 0xef3cb
movq %rax, %r13
movl $0x88, %esi
movq %r14, %rdi
callq 0xe969b
movq %rax, %r15
movq %r12, (%rax)
movq 0x8(%rbx), %rax
imulq %r12, %rax
movq %rax, 0x8(%r15)
movq %r14, %rdi
callq 0xea9a9
movq %rax, 0x68(%r15)
leaq 0xec16a(%rip), %rsi     # 0x114dc5
movq %r14, %rdi
movq %r12, %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0xe9226
movq %r14, %rdi
movl $0x1, %esi
callq 0xe9585
leaq 0xec09a(%rip), %rsi     # 0x114d19
movq %r14, %rdi
movl %r13d, %edx
xorl %eax, %eax
callq 0xe9226
movq %r15, (%rsp)
cmpl $0x2, %r13d
sete %r13b
jne 0x28df9
movq 0x18(%r14), %rdi
movq 0x8(%rbx), %rax
leaq (%rax,%rbp), %rsi
addq $-0x4, %rsi
callq 0xef32a
movl %eax, 0x30(%r15)
leaq 0xec098(%rip), %rsi     # 0x114d56
movq %r14, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
movl 0x30(%r15), %edx
leal -0x1(%rdx), %eax
cmpl $0x2, %eax
movq %r15, 0x8(%rsp)
jae 0x28e12
leaq 0x4c(%rsp), %rsi
movq %r14, %rdi
callq 0xe958c
movb $0x1, 0x10(%r15)
movq (%r15), %rdx
movq 0x8(%r15), %rbp
leaq 0xec0bc(%rip), %rsi     # 0x114dbb
xorl %r12d, %r12d
movq %r14, %rdi
movq %rbp, %rcx
xorl %eax, %eax
callq 0xe9226
movq %r14, %rdi
movl $0x1, %esi
callq 0xe9585
movl 0x30(%r15), %eax
leal -0x1(%rax), %ecx
movb $0x1, %dl
cmpl $0x1, %ecx
ja 0x294b7
cmpl $0x1, %eax
jne 0x29155
movq 0x18(%r14), %rdi
leaq 0xc(%rbp), %rsi
callq 0xef32a
movq %rax, %r12
leaq 0xec090(%rip), %rsi     # 0x114dde
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq %r12, 0x18(%rsp)
cmpq $0x81, %r12
jl 0x29171
leaq 0xec0c8(%rip), %rsi     # 0x114e3c
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x14, %edx
xorl %eax, %eax
callq 0xe9df7
movb $0x1, %dl
jmp 0x294b7
xorl %r13d, %r13d
xorl %r15d, %r15d
testq %r15, %r15
je 0x28dd5
movq 0x50(%r15), %rdi
testq %rdi, %rdi
je 0x28da6
callq 0xf0b13
movq 0x68(%r15), %rsi
movq %r14, %rdi
callq 0xea9b3
movq 0x38(%r15), %rdi
callq 0xf6bb0
movq 0x80(%r15), %rsi
movq %r14, %rdi
callq 0xe9752
movq %r14, %rdi
movq %r15, %rsi
callq 0xe9752
movzbl %r13b, %ebp
movl 0x48(%rsp), %esi
movq %r14, %rdi
callq 0xe9595
decl 0x20(%rbx)
movl %ebp, %eax
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xebf28(%rip), %rsi     # 0x114d28
movq %r14, %rdi
movq %r12, %rdx
movq %rbp, %rcx
xorl %eax, %eax
callq 0xe9df7
jmp 0x28d93
cmpl $-0x3, %edx
jne 0x2913f
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0xe958c
movb $0x1, %r12b
cmpl $-0x3, 0x30(%r15)
jne 0x292a6
movq %r13, 0x10(%rsp)
movq (%r15), %rdx
movq 0x8(%r15), %r13
leaq 0xec09b(%rip), %rsi     # 0x114ee4
movq %r14, %rdi
movq %r13, %rcx
xorl %eax, %eax
callq 0xe9226
movq %r14, %rdi
movl $0x1, %esi
callq 0xe9585
movq %r13, 0x18(%rsp)
leaq 0x4(%r13), %rax
leaq 0x40(%rsp), %r13
movq %rax, (%r13)
movq 0x18(%r14), %rdi
movq %r13, %rsi
callq 0xef34e
movq %rax, %rbp
leaq 0xec077(%rip), %rsi     # 0x114f02
movq %r14, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0xe9226
movq 0x18(%r14), %rdi
movq %r13, %rsi
callq 0xef34e
movq %rax, 0x70(%r15)
leaq 0xec063(%rip), %rsi     # 0x114f11
movq %r14, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
addq $0x4, (%r13)
movq 0x18(%r14), %rdi
movq %r13, %rsi
callq 0xef34e
movq %rax, 0x20(%r15)
leaq 0xec048(%rip), %rsi     # 0x114f1e
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq (%r15), %rcx
cmpq %rcx, %rbp
jne 0x294d2
movq 0x8(%r15), %r13
addq $0x18, %r13
movq 0x8(%rbx), %rax
leaq 0x3(%rax), %rsi
testq %rax, %rax
cmovnsq %rax, %rsi
movq (%rsp), %r12
leaq 0x70(%r12), %rbp
sarq $0x2, %rsi
addq $-0x38, %rsi
movq %rsi, 0x78(%r15)
movl $0x8, %edx
movq %r14, %rdi
callq 0xea259
movq %rax, 0x80(%r15)
movq %r14, %rdi
movq %r13, %rsi
movq %rbp, 0x38(%rsp)
movq %rbp, %rdx
callq 0x29c4f
movq 0x8(%rbx), %rax
movq 0x18(%rsp), %rbp
leaq (%rax,%rbp), %rdx
addq $-0xc0, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x29ac9
movq 0x8(%rbx), %rax
addq %rbp, %rax
addq $-0xbc, %rax
leaq 0x40(%rsp), %rsi
movq %rax, (%rsi)
movq 0x18(%r14), %rdi
movq %rsi, %r13
callq 0xef34e
movq %rax, 0x18(%r15)
leaq 0xed6c1(%rip), %rsi     # 0x11664e
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rbx), %rax
leaq (%rax,%rbp), %rsi
addq $-0x5c, %rsi
movq %rsi, (%r13)
addq $0x40, %r12
leaq 0x104da7(%rip), %rcx    # 0x12dd5c
movq %r14, %rdi
movq %r12, (%rsp)
movq %r12, %rdx
callq 0x29b25
movq 0x8(%rbx), %rax
addq %rbp, %rax
addq $-0x50, %rax
movq %r13, %r12
movq %rax, (%r13)
movq 0x18(%r14), %rdi
movq %r13, %rsi
callq 0xef14d
movzbl %al, %eax
cmpb $0x1e, %al
movl $0x1e, %ecx
cmovbl %eax, %ecx
movzbl %cl, %r13d
movq %r14, %rdi
callq 0xf6870
movq %rax, 0x38(%r15)
movq 0x18(%r14), %rdi
movq (%r12), %rsi
movq %r13, %rdx
movq %rax, %rcx
xorl %r8d, %r8d
movl $0x5, %r9d
callq 0xf01b0
movq 0x38(%r15), %rdi
callq 0xf7557
leaq 0x1129a9(%rip), %rsi    # 0x13b9d4
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x30(%rbx), %rdi
movq 0x38(%r15), %rsi
callq 0xf7705
movq 0x8(%rbx), %rax
addq %rbp, %rax
addq $-0xc, %rax
movq %rax, (%r12)
movq 0x18(%r14), %rdi
movq %r12, %rsi
callq 0xef34e
leaq 0xebef2(%rip), %rsi     # 0x114f59
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x18(%r14), %rdi
movq %r12, %rsi
callq 0xef34e
movq %rax, 0x28(%r15)
leaq 0xebede(%rip), %rsi     # 0x114f69
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
cmpl $-0x3, 0x30(%r15)
jne 0x294ea
movq 0x68(%r15), %rax
movb $0x1, 0x8(%rax)
movq %r14, %rdi
callq 0xf6870
movq %rax, %rbp
movq 0x30(%rbx), %rdi
movq %rax, %rsi
movl $0x1, %edx
callq 0xf776e
movq 0x68(%r15), %rsi
movq %r14, %rdi
movq %rbp, %rdx
movl $0x1, %ecx
callq 0xea9e4
cmpb $0x0, 0x40(%r15)
movq 0x10(%rsp), %r13
je 0x290f6
movq 0x68(%r15), %rax
movq (%rsp), %rcx
movups (%rcx), %xmm0
movups %xmm0, 0x18(%rax)
movq 0x68(%r15), %rdx
movq %r14, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0xf037a
movq %rax, 0x50(%r15)
cmpb $0x0, (%rbx)
je 0x2952c
movq 0x70(%r15), %rax
cmpq 0x78(%r15), %rax
jle 0x297ed
leaq 0xebd14(%rip), %rsi     # 0x114e3c
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x1e, %edx
xorl %eax, %eax
callq 0xe9df7
jmp 0x29505
leaq 0xebc29(%rip), %rsi     # 0x114d6f
movq %r14, %rdi
xorl %eax, %eax
callq 0xe9b27
jmp 0x28d93
movq 0x8(%rbx), %rax
leaq 0x3(%rax), %rcx
testq %rax, %rax
cmovnsq %rax, %rcx
sarq $0x2, %rcx
addq $-0x38, %rcx
movq %rcx, 0x18(%rsp)
movq 0x8(%rbx), %rax
leaq (%rax,%rbp), %rdx
addq $-0xc0, %rdx
movq %r14, %rdi
movq %r15, %rsi
callq 0x29ac9
movq 0x8(%rbx), %rax
leaq (%rax,%rbp), %rsi
addq $-0x5c, %rsi
movq (%rsp), %rdx
addq $0x40, %rdx
leaq 0xebc56(%rip), %rcx     # 0x114dfc
movq %r14, %rdi
movq %rdx, (%rsp)
callq 0x29b25
cmpl $0x2, 0x30(%r15)
setne 0x38(%rsp)
jne 0x29242
movq 0x18(%r14), %rdi
movq 0x8(%rbx), %rax
leaq (%rax,%rbp), %rsi
addq $-0x50, %rsi
callq 0xef0d5
movzbl %al, %eax
cmpb $0x1e, %al
movl $0x1e, %ecx
cmovbl %eax, %ecx
movzbl %cl, %r12d
movq %r14, %rdi
callq 0xf6870
movq %rax, 0x38(%r15)
movq 0x18(%r14), %rdi
movq 0x8(%rbx), %rcx
leaq (%rcx,%rbp), %rsi
addq $-0x4f, %rsi
movq %r12, %rdx
movq %rax, %rcx
xorl %r8d, %r8d
movl $0x5, %r9d
callq 0xf01b0
movq 0x38(%r15), %rdi
callq 0xf7557
leaq 0xebbe1(%rip), %rsi     # 0x114e09
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x30(%rbx), %rdi
movq 0x38(%r15), %rsi
callq 0xf7705
cmpl $0x1, 0x30(%r15)
jne 0x2928a
movq 0x8(%rbx), %rax
leaq (%rax,%rbp), %rsi
addq $-0x28, %rsi
leaq 0xebbbb(%rip), %rcx     # 0x114e17
leaq 0x28(%rsp), %r12
movq %r14, %rdi
movq %r12, %rdx
callq 0x29b25
movq 0x8(%rbx), %rax
leaq (%rax,%rbp), %rsi
addq $-0x1c, %rsi
leaq 0xebba6(%rip), %rcx     # 0x114e25
movq %r14, %rdi
movq %r12, %rdx
callq 0x29b25
movq 0x68(%r15), %rax
movb $0x1, 0x9(%rax)
movl 0x30(%r15), %ecx
cmpl $0x2, %ecx
je 0x292ad
cmpl $0x1, %ecx
jne 0x292ea
movb $0x1, 0xb(%rax)
jmp 0x292ea
xorl %ebp, %ebp
jmp 0x29505
cmpq $0x0, 0x38(%r15)
je 0x292ea
movb $0x1, 0x8(%rax)
movq %r14, %rdi
callq 0xf6870
movq %rax, %r12
movq 0x30(%rbx), %rdi
movq %rax, %rsi
movl $0x1, %edx
callq 0xf776e
movq 0x68(%r15), %rsi
movq %r14, %rdi
movq %r12, %rdx
movl $0x1, %ecx
callq 0xea9e4
jmp 0x292ed
xorl %r12d, %r12d
movq (%rsp), %rcx
cmpb $0x0, (%rcx)
je 0x29301
movq 0x68(%r15), %rax
movups (%rcx), %xmm0
movups %xmm0, 0x18(%rax)
movq 0x68(%r15), %rdx
movq %r14, %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0xf037a
movq %rax, 0x50(%r15)
movq %rax, %rdi
callq 0xf0b13
movq $0x0, 0x50(%r15)
addq $0x18, %rbp
movq %rbp, 0x40(%rsp)
leaq 0x20(%rsp), %rsi
movq %r14, %rdi
callq 0xe958c
leaq 0xebb40(%rip), %rsi     # 0x114e82
movq %r14, %rdi
movq %rbp, %rdx
xorl %eax, %eax
callq 0xe9226
movq %r14, %rdi
movl $0x1, %esi
callq 0xe9585
xorl %edx, %edx
cmpq $0x0, 0x18(%rsp)
jle 0x29491
movq %r12, 0x50(%rsp)
movq %r13, 0x10(%rsp)
leaq 0xebb5f(%rip), %rbp     # 0x114eda
xorl %r12d, %r12d
movq $0x0, (%rsp)
movq 0x18(%r14), %rdi
leaq 0x40(%rsp), %rsi
callq 0xef34e
movq %rax, %r13
testq %rax, %rax
jg 0x293a2
cmpl $0x2, (%r14)
jl 0x293b9
movq %r14, %rdi
leaq 0xebae7(%rip), %rsi     # 0x114e93
movl %r12d, %edx
movl %r13d, %ecx
xorl %eax, %eax
callq 0xe9226
testq %r13, %r13
movq (%rsp), %rax
jle 0x29475
incq %rax
movq %rax, (%rsp)
movq %r14, %rdi
movl $0x1, %esi
callq 0xe9585
movq %r14, %rdi
leaq 0x24(%rsp), %rsi
callq 0xe958c
movq 0x8(%rbx), %r15
imulq %r13, %r15
movq %r14, %rdi
leaq 0xebac3(%rip), %rsi     # 0x114ebc
movq %r13, %rdx
xorl %eax, %eax
callq 0xe9226
movq %r14, %rdi
movl $0x1, %esi
callq 0xe9585
movq %r14, %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x28bc9
testl %eax, %eax
je 0x29457
movq 0x18(%r14), %rdi
movq 0x8(%rbx), %rax
leaq (%r15,%rax), %rsi
addq $-0x10, %rsi
callq 0xef32a
movq %rax, %r13
movq %r14, %rdi
movq %rbp, %rsi
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rbx), %r15
imulq %r13, %r15
testq %r13, %r13
jg 0x29410
movl 0x24(%rsp), %esi
movq %r14, %rdi
callq 0xe9595
movq %r14, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe9585
movq 0x8(%rsp), %r15
incq %r12
cmpq 0x18(%rsp), %r12
jne 0x29386
movq 0x10(%rsp), %r13
movq 0x50(%rsp), %r12
movq (%rsp), %rdx
leaq 0xeba06(%rip), %rsi     # 0x114e9e
movq %r14, %rdi
movq 0x18(%rsp), %rcx
xorl %eax, %eax
callq 0xe9226
movl 0x20(%rsp), %esi
movq %r14, %rdi
callq 0xe9595
movb 0x38(%rsp), %dl
testb %dl, %dl
jne 0x294c4
movq 0x30(%rbx), %rdi
callq 0xf76c8
movq %r12, %rdi
callq 0xf6bb0
movl 0x4c(%rsp), %esi
jmp 0x2951f
leaq 0xeba5b(%rip), %rsi     # 0x114f34
movq %r14, %rdi
movq %rbp, %rdx
xorl %ebp, %ebp
xorl %eax, %eax
callq 0xe9df7
jmp 0x29500
leaq 0xeba8e(%rip), %rsi     # 0x114f7f
xorl %r12d, %r12d
movq %r14, %rdi
xorl %eax, %eax
callq 0xe9226
xorl %ebp, %ebp
movq 0x10(%rsp), %r13
testb %r12b, %r12b
jne 0x29513
movq 0x30(%rbx), %rdi
callq 0xf76c8
movq %rbp, %rdi
callq 0xf6bb0
movl 0x20(%rsp), %esi
movq %r14, %rdi
callq 0xe9595
jmp 0x28d93
movq %rbp, 0x18(%rsp)
movq 0x20(%r15), %rax
movq %rax, 0x60(%r15)
movl $0x1, %r15d
movq 0x8(%rsp), %rax
movq 0x60(%rax), %r12
testq %r12, %r12
je 0x296c3
movl (%r14), %r13d
movq %r14, %rdi
leaq 0x24(%rsp), %rsi
callq 0xe958c
movq 0x8(%rbx), %rbp
imulq %r12, %rbp
cmpl $0x2, %r13d
jl 0x29589
movq %r14, %rdi
leaq 0xeba8d(%rip), %rsi     # 0x115006
movq %r12, %rdx
movq %rbp, %rcx
movl %r15d, %r8d
xorl %eax, %eax
callq 0xe9226
movq %r14, %rdi
movl $0x1, %esi
callq 0xe9585
movq %r14, %rdi
movq %rbx, %rsi
movq %r12, %rdx
callq 0x29a57
testl %eax, %eax
je 0x296c7
movq %rbp, 0x28(%rsp)
movq 0x18(%r14), %rdi
leaq 0x28(%rsp), %rsi
callq 0xef463
movq %rax, %r12
cmpl $0x2, %r13d
jl 0x295dc
movq %r14, %rdi
leaq 0xeb747(%rip), %rsi     # 0x114d19
movl %r12d, %edx
xorl %eax, %eax
callq 0xe9226
cmpl $0x8, %r12d
jne 0x296cb
movq 0x18(%r14), %rdi
leaq 0x28(%rsp), %rsi
callq 0xef34e
movq %rax, %r12
cmpl $0x2, %r13d
jl 0x29611
movq %r14, %rdi
leaq 0xeb8fb(%rip), %rsi     # 0x114f02
movl %r12d, %edx
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rsp), %rax
cmpq (%rax), %r12
jne 0x296fd
movq 0x18(%r14), %rdi
leaq 0x28(%rsp), %rsi
callq 0xef34e
movq %rax, %r12
cmpl $0x2, %r13d
jl 0x2964a
movq %r14, %rdi
leaq 0xeba1e(%rip), %rsi     # 0x11505e
movl %r12d, %edx
xorl %eax, %eax
callq 0xe9226
cmpq %r15, %r12
jne 0x29710
movq 0x18(%r14), %rdi
leaq 0x28(%rsp), %rsi
callq 0xef34e
movq %rax, %r12
cmpl $0x2, %r13d
jl 0x2967e
movq %r14, %rdi
leaq 0x108352(%rip), %rsi    # 0x1319c6
movq %r12, %rdx
xorl %eax, %eax
callq 0xe9226
movq 0x8(%rbx), %rax
addq $-0x18, %rax
cmpq %rax, %r12
jle 0x2974e
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0xf7557
movq 0x8(%rbx), %r9
addq $-0x18, %r9
xorl %ebp, %ebp
movq %r14, %rdi
leaq 0xeb9b9(%rip), %rsi     # 0x11506a
movq %rax, %rdx
movl %r15d, %ecx
movq %r12, %r8
xorl %eax, %eax
callq 0xe9df7
jmp 0x29728
xorl %ebp, %ebp
jmp 0x29740
xorl %ebp, %ebp
jmp 0x29728
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0xf7557
xorl %ebp, %ebp
movq %r14, %rdi
leaq 0xeb943(%rip), %rsi     # 0x115028
movq %rax, %rdx
movl %r15d, %ecx
movl %r12d, %r8d
movl $0x8, %r9d
xorl %eax, %eax
callq 0xe9df7
jmp 0x29728
xorl %ebp, %ebp
movq %r14, %rdi
leaq 0xeb733(%rip), %rsi     # 0x114e3c
movl $0xc, %edx
jmp 0x29721
xorl %ebp, %ebp
movq %r14, %rdi
leaq 0xeb720(%rip), %rsi     # 0x114e3c
movl $0xd, %edx
xorl %eax, %eax
callq 0xe9df7
movq 0x10(%rsp), %r13
movl 0x24(%rsp), %esi
movq %r14, %rdi
callq 0xe9595
movzbl %bpl, %eax
addq %rax, %r15
testb %bpl, %bpl
jne 0x2953f
jmp 0x297db
movq %r15, (%rsp)
movq 0x8(%rsp), %r15
movq 0x58(%r15), %rax
addq %r12, %rax
cmpq 0x18(%r15), %rax
jle 0x2977e
xorl %ebp, %ebp
movq %r14, %rdi
leaq 0xeb6cc(%rip), %rsi     # 0x114e3c
movl $0xf, %edx
xorl %eax, %eax
callq 0xe9df7
jmp 0x297cd
movq 0x18(%r14), %rdi
leaq 0x28(%rsp), %rsi
callq 0xef34e
movq %rax, 0x60(%r15)
cmpl $0x2, %r13d
jl 0x297aa
movq %r14, %rdi
leaq 0xeb8fc(%rip), %rsi     # 0x11509c
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
addq $0x18, %rbp
movq 0x18(%r14), %rdi
movq 0x8(%rsp), %r15
movq 0x50(%r15), %rcx
movq %rbp, %rsi
movq %r12, %rdx
callq 0xefabc
addq %r12, 0x58(%r15)
movb $0x1, %bpl
movq 0x10(%rsp), %r13
movq (%rsp), %r15
jmp 0x2972d
xorl %r12d, %r12d
movq 0x8(%rsp), %r15
movq 0x18(%rsp), %rbp
jmp 0x29505
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x29cc0
testl %eax, %eax
je 0x299e5
movq 0x28(%r15), %r13
testq %r13, %r13
je 0x299b2
leaq 0x28(%rsp), %r15
movq %rbp, 0x18(%rsp)
movl $0x4, %eax
testq %r13, %r13
je 0x2993b
movq 0x8(%rsp), %rdx
movq 0x50(%rdx), %rcx
movq 0x18(%rcx), %rcx
cmpq 0x18(%rdx), %rcx
jge 0x2998f
movq %r14, %rdi
movq %r15, %rsi
callq 0xe958c
movq 0x8(%rbx), %rbp
imulq %r13, %rbp
movq %r14, %rdi
leaq 0xeb74e(%rip), %rsi     # 0x114faa
movq %r13, %rdx
xorl %eax, %eax
callq 0xe9226
movq %r14, %rdi
movl $0x1, %esi
callq 0xe9585
movq %r14, %rdi
movq %rbx, %rsi
movq %r13, %rdx
callq 0x29a57
testl %eax, %eax
je 0x2996b
movq 0x18(%r14), %rdi
movq %rbp, %rsi
callq 0xef3cb
movq %rax, %r12
movq %r14, %rdi
leaq 0xeb477(%rip), %rsi     # 0x114d19
movl %r12d, %edx
xorl %eax, %eax
callq 0xe9226
cmpl $0x10, %r12d
jne 0x29940
movq 0x18(%r14), %rdi
leaq 0x8(%rbp), %rsi
callq 0xef32a
movq 0x8(%rsp), %r15
movq %rax, 0x70(%r15)
movq %r14, %rdi
leaq 0xeb63b(%rip), %rsi     # 0x114f11
movl %eax, %edx
xorl %eax, %eax
callq 0xe9226
leaq 0x18(%rbp), %rsi
movq %r14, %rdi
movq 0x38(%rsp), %rdx
callq 0x29c4f
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
callq 0x29cc0
testl %eax, %eax
je 0x29999
movq 0x18(%r14), %rdi
movq 0x8(%rbx), %rax
leaq (%rax,%rbp), %rsi
addq $-0x8, %rsi
callq 0xef32a
movq %rax, %r12
xorl %ebp, %ebp
movq %r14, %rdi
leaq 0xeb6c7(%rip), %rsi     # 0x114ff1
movq %rax, %rdx
xorl %eax, %eax
callq 0xe9226
leaq 0x28(%rsp), %r15
jmp 0x29971
xorl %r13d, %r13d
jmp 0x2998f
movq 0x8(%rsp), %rax
movq 0x38(%rax), %rdi
callq 0xf7557
movq %r14, %rdi
leaq 0xeb667(%rip), %rsi     # 0x114fbf
movq %rax, %rdx
movl %r12d, %ecx
movl $0x10, %r8d
xorl %eax, %eax
callq 0xe9df7
xorl %r12d, %r12d
movb $0x1, %bpl
movl 0x28(%rsp), %esi
movq %r14, %rdi
callq 0xe9595
testb %bpl, %bpl
cmoveq %r12, %r13
movzbl %bpl, %eax
addl %eax, %eax
movq 0x18(%rsp), %rbp
testl %eax, %eax
je 0x2981a
jmp 0x299a3
xorl %r12d, %r12d
leaq 0x28(%rsp), %r15
jmp 0x2996e
cmpl $0x2, %eax
jne 0x299b2
xorl %r12d, %r12d
movq 0x10(%rsp), %r13
jmp 0x299f0
movq 0x8(%rsp), %rcx
movq 0x50(%rcx), %rax
movq 0x18(%rax), %rax
cmpq 0x18(%rcx), %rax
movq 0x10(%rsp), %r13
jge 0x299ed
leaq 0xeb46b(%rip), %rsi     # 0x114e3c
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x1a, %edx
xorl %eax, %eax
callq 0xe9df7
jmp 0x299f0
xorl %r12d, %r12d
jmp 0x29505
xorl %r12d, %r12d
movq 0x8(%rsp), %r15
jmp 0x29505