// File: /workspace/github_c_makefile_star2_O2/jsummers[P]deark/modules/psd.c
// Function: do_descriptor_item_ostype_and_data
static int do_descriptor_item_ostype_and_data(deark *c, lctx *d,
	const struct flexible_id *key_flid, zztype *zz, i64 itempos)
{
	int ret;
	int retval = 0;
	struct de_fourcc type4cc;
	zztype czz;

	psd_read_fourcc_zz(c, d, zz, &type4cc);
	de_dbg(c, "item OSType: '%s'", type4cc.id_dbgstr);

	zz_init(&czz, zz);

	switch(type4cc.id) {
	case CODE_bool:
		do_item_type_bool(c, d, &czz);
		zz->pos += zz_used(&czz);
		break;
	case CODE_long:
		do_item_type_long(c, d, &czz);
		zz->pos += zz_used(&czz);
		break;
	case CODE_doub:
		do_item_type_doub(c, d, &czz);
		zz->pos += zz_used(&czz);
		break;
	case CODE_comp:
		// TODO
		zz->pos += 8;
		break;
	case CODE_UntF:
		do_item_type_UntF(c, d, &czz);
		zz->pos += zz_used(&czz);
		break;
	case CODE_UnFl:
		do_item_type_UnFl(c, d, &czz);
		zz->pos += zz_used(&czz);
		break;
	case CODE_TEXT:
		do_item_type_TEXT(c, d, &czz);
		zz->pos += zz_used(&czz);
		break;
	case CODE_enum:
		do_item_type_enum(c, d, &czz);
		zz->pos += zz_used(&czz);
		break;
	case CODE_VlLs:
		ret = do_item_type_VlLs(c, d, key_flid, &czz, itempos);
		zz->pos += zz_used(&czz);
		if(!ret) goto done;
		break;
	case CODE_Objc:
	case CODE_GlbO:
		ret = do_item_type_descriptor(c, d, &czz, 0);
		zz->pos += zz_used(&czz);
		if(!ret) goto done;
		break;
	case CODE_ObAr:
		// Undocumented type. Appears to contain a versioned descriptor.
		ret = do_item_type_descriptor(c, d, zz, 1);
		zz->pos += zz_used(&czz);
		if(!ret) goto done;
		break;
	case CODE_obj:
		ret = do_item_type_obj(c, d, &czz);
		zz->pos += zz_used(&czz);
		if(!ret) goto done;
		break;
	case CODE_tdta:
		ret = do_item_type_tdta(c, d, key_flid, &czz);
		zz->pos += zz_used(&czz);
		if(!ret) goto done;
		break;
	case CODE_type:
	case CODE_GlbC:
		ret = do_item_type_class(c, d, &czz);
		zz->pos += zz_used(&czz);
		if(!ret) goto done;
		break;
	case CODE_alis:
		ret = do_item_type_alis(c, d, &czz);
		zz->pos += zz_used(&czz);
		if(!ret) goto done;
		break;
		// TODO: 'Pth ' (undocumented type)
	default:
		goto done;
	}

	retval = 1;
done:
	return retval;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x118, %rsp            # imm = 0x118
movq %r8, 0x48(%rsp)
movq %rcx, %r12
movq %rdx, %r13
movq %rsi, %r15
movq %rdi, %r14
leaq 0xe8(%rsp), %rcx
movq %r12, %rdx
callq 0x9fe82
leaq 0xf8(%rsp), %rbx
leaq 0x84e94(%rip), %rsi     # 0x126807
xorl %ebp, %ebp
movq %r14, %rdi
movq %rbx, %rdx
xorl %eax, %eax
callq 0xde896
movq (%r12), %rsi
movq %r12, 0x8(%rsp)
movq 0x10(%r12), %rcx
movq %rsi, 0x20(%rsp)
movq %rsi, 0x18(%rsp)
movq %rcx, 0x28(%rsp)
movl -0xc(%rbx), %eax
cmpl $0x476c6243, %eax       # imm = 0x476C6243
je 0xa1abe
cmpl $0x476c624f, %eax       # imm = 0x476C624F
je 0xa1a80
cmpl $0x4f624172, %eax       # imm = 0x4F624172
je 0xa1ccc
cmpl $0x4f626a63, %eax       # imm = 0x4F626A63
je 0xa1a80
cmpl $0x54455854, %eax       # imm = 0x54455854
je 0xa2262
cmpl $0x556e466c, %eax       # imm = 0x556E466C
je 0xa1b95
cmpl $0x556e7446, %eax       # imm = 0x556E7446
je 0xa1ae5
cmpl $0x566c4c73, %eax       # imm = 0x566C4C73
je 0xa22fa
cmpl $0x616c6973, %eax       # imm = 0x616C6973
je 0xa1c20
cmpl $0x74797065, %eax       # imm = 0x74797065
je 0xa1abe
cmpl $0x636f6d70, %eax       # imm = 0x636F6D70
je 0xa219f
cmpl $0x646f7562, %eax       # imm = 0x646F7562
je 0xa22b6
cmpl $0x656e756d, %eax       # imm = 0x656E756D
je 0xa21b0
cmpl $0x6c6f6e67, %eax       # imm = 0x6C6F6E67
je 0xa1b68
cmpl $0x6f626a20, %eax       # imm = 0x6F626A20
je 0xa1cec
cmpl $0x74647461, %eax       # imm = 0x74647461
je 0xa1c7d
cmpl $0x626f6f6c, %eax       # imm = 0x626F6F6C
jne 0xa224e
movq 0x18(%r14), %rdi
leaq 0x18(%rsp), %rbx
movq %rbx, %rsi
callq 0x9ff51
movzbl %al, %edx
leaq 0x7c03c(%rip), %rsi     # 0x11dab4
movq %r14, %rdi
jmp 0xa1b89
leaq 0x18(%rsp), %rbx
xorl %ebp, %ebp
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0xa252e
movq 0x8(%rbx), %rdx
movq 0x10(%rbx), %rdi
movq %rdi, %rcx
subq %rdx, %rcx
jle 0xa1ad6
movq 0x18(%rsp), %rsi
cmpq %rdi, %rsi
movq 0x8(%rsp), %rdi
jg 0xa1add
subq %rdx, %rsi
movq %rsi, %rcx
jmp 0xa1add
leaq 0x18(%rsp), %rbx
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xa255b
jmp 0xa2216
xorl %ecx, %ecx
movq 0x8(%rsp), %rdi
addq %rcx, (%rdi)
jmp 0xa1cdf
leaq 0x18(%rsp), %rbx
leaq 0x68(%rsp), %rcx
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x9fe82
leaq 0x78(%rsp), %rdx
leaq 0x84d10(%rip), %rsi     # 0x126819
movq %r14, %rdi
xorl %eax, %eax
callq 0xde896
movq 0x18(%r14), %rdi
movq (%rbx), %r12
movl 0x4(%r15), %edx
movq %r12, %rsi
callq 0xe451a
leaq 0x6c509(%rip), %rsi     # 0x10e036
movq %r14, %rdi
movb $0x1, %al
callq 0xde896
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
movq %rcx, %r13
subq %rax, %r13
jle 0xa223d
addq $0x8, %r12
cmpq %rcx, %r12
movq 0x8(%rsp), %rdx
jg 0xa2245
subq %rax, %r12
movq %r12, %r13
jmp 0xa2245
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
leaq 0x18(%rsp), %rbx
movq %rbx, %rsi
callq 0xa17af
leaq 0x7bf30(%rip), %rsi     # 0x11dab4
movq %r14, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
jmp 0xa2216
leaq 0x18(%rsp), %rbx
leaq 0x68(%rsp), %rcx
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x9fe82
leaq 0x78(%rsp), %rdx
leaq 0x84c60(%rip), %rsi     # 0x126819
movq %r14, %rdi
xorl %eax, %eax
callq 0xde896
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
movq %rbx, %rsi
callq 0x9fe70
movq %rax, %r15
leaq 0x63fd3(%rip), %rsi     # 0x105bb0
movq %r14, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0xde896
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rcx
movq %rcx, %r13
subq %rax, %r13
jle 0xa223d
shlq $0x3, %r15
addq 0x18(%rsp), %r15
cmpq %rcx, %r15
movq 0x8(%rsp), %rdx
jg 0xa2245
subq %rax, %r15
movq %r15, %r13
jmp 0xa2245
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
leaq 0x18(%rsp), %r15
movq %r15, %rsi
callq 0x9fe70
movq %rax, %rbx
leaq 0x84d3f(%rip), %rsi     # 0x12697e
movq %r14, %rdi
movl %ebx, %edx
xorl %eax, %eax
callq 0xde896
movq 0x8(%r15), %rax
movq 0x10(%r15), %rcx
movq %rcx, %r13
subq %rax, %r13
jle 0xa223d
addq 0x18(%rsp), %rbx
cmpq %rcx, %rbx
movq 0x8(%rsp), %rdx
jg 0xa2245
subq %rax, %rbx
movq %rbx, %r13
jmp 0xa2245
movq %r13, %rbp
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
leaq 0x18(%rsp), %r12
movq %r12, %rsi
callq 0x9fe70
movq %rax, %rbx
movq (%r12), %r15
leaq 0x84c8e(%rip), %rsi     # 0x126931
movq %r14, %rdi
movl %r15d, %edx
movl %ebx, %ecx
xorl %eax, %eax
callq 0xde896
leaq (%r15,%rbx), %r13
movq 0x10(%r12), %r12
cmpq %r12, %r13
jle 0xa2351
movq %r15, %rcx
jmp 0xa2381
pushq $0x1
popq %rcx
movq %r14, %rdi
movq %r15, %rsi
movq 0x8(%rsp), %rdx
callq 0xa252e
testl %eax, %eax
jne 0xa224b
jmp 0xa224e
leaq 0x54(%rsp), %rsi
movq %r14, %rdi
callq 0xdebae
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
leaq 0x18(%rsp), %rsi
callq 0x9fe70
movq %rax, %r12
leaq 0x84b84(%rip), %rsi     # 0x126899
xorl %ebx, %ebx
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
testq %r12, %r12
cmovleq %rbx, %r12
movq %r12, 0x48(%rsp)
xorl %r13d, %r13d
cmpq %r13, 0x48(%rsp)
je 0xa249a
movq 0x18(%rsp), %rbx
movq 0x28(%rsp), %r12
cmpq %r12, %rbx
jge 0xa249f
movq %r14, %rdi
movq %r15, %rsi
leaq 0x18(%rsp), %rdx
leaq 0xb8(%rsp), %rcx
callq 0x9fe82
movq %r14, %rdi
leaq 0x84b47(%rip), %rsi     # 0x1268ba
movl %r13d, %edx
leaq 0xc8(%rsp), %rcx
movl %ebx, %r8d
xorl %eax, %eax
callq 0xde896
movq %r14, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
movq 0x18(%rsp), %rbp
movq 0x28(%rsp), %r12
movq %rbp, 0x38(%rsp)
movq %rbp, 0x30(%rsp)
movq %r12, 0x40(%rsp)
movl 0xbc(%rsp), %eax
cmpl $0x436c7373, %eax       # imm = 0x436C7373
je 0xa1ff8
cmpl $0x72656c65, %eax       # imm = 0x72656C65
je 0xa20b9
cmpl $0x696e6478, %eax       # imm = 0x696E6478
je 0xa1eba
cmpl $0x6e616d65, %eax       # imm = 0x6E616D65
je 0xa200d
cmpl $0x70726f70, %eax       # imm = 0x70726F70
je 0xa1f53
cmpl $0x456e6d72, %eax       # imm = 0x456E6D72
jne 0xa249f
movq %r14, %rdi
callq 0xeac74
movq %rax, %rbx
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
leaq 0x30(%rsp), %r12
movq %r12, %rcx
callq 0xa1369
movq %rbx, %rdi
callq 0xeb877
movq %r14, %rdi
leaq 0x848ff(%rip), %rsi     # 0x126727
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x68(%rsp), %r12
movq %r12, %rcx
callq 0xa17c1
movq %r14, %rdi
movq %r12, %rsi
leaq 0x848ea(%rip), %rdx     # 0x12673f
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
movq %r14, %rdi
movq %r15, %rsi
leaq 0x30(%rsp), %rdx
movq %r12, %rcx
callq 0xa17c1
movq %r14, %rdi
movq %r12, %rsi
leaq 0x84a53(%rip), %rdx     # 0x1268d8
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
movq %r14, %rdi
movq %r15, %rsi
leaq 0x30(%rsp), %rdx
movq %r12, %rcx
callq 0xa17c1
movq %r14, %rdi
movq %r12, %rsi
leaq 0x84a2a(%rip), %rdx     # 0x1268df
jmp 0xa1fe3
movq %r14, %rdi
callq 0xeac74
movq %rax, %rbx
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
leaq 0x30(%rsp), %r12
movq %r12, %rcx
callq 0xa1369
movq %rbx, %rdi
callq 0xeb877
movq %r14, %rdi
leaq 0x8483a(%rip), %rsi     # 0x126727
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
callq 0xeac85
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x68(%rsp), %r12
movq %r12, %rcx
callq 0xa17c1
movq %r14, %rdi
movq %r12, %rsi
leaq 0x849c8(%rip), %rdx     # 0x1268ea
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
leaq 0x30(%rsp), %rsi
callq 0xa17af
movq %r14, %rdi
leaq 0x849ce(%rip), %rsi     # 0x12691c
jmp 0xa214d
movq %r14, %rdi
callq 0xeac74
movq %rax, %rbx
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
leaq 0x30(%rsp), %r12
movq %r12, %rcx
callq 0xa1369
movq %rbx, %rdi
callq 0xeb877
movq %r14, %rdi
leaq 0x847a1(%rip), %rsi     # 0x126727
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x68(%rsp), %r12
movq %r12, %rcx
callq 0xa17c1
movq %r14, %rdi
movq %r12, %rsi
leaq 0x8478c(%rip), %rdx     # 0x12673f
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
movq %r14, %rdi
movq %r15, %rsi
leaq 0x30(%rsp), %rdx
movq %r12, %rcx
callq 0xa17c1
movq %r14, %rdi
movq %r12, %rsi
leaq 0x84901(%rip), %rdx     # 0x1268e4
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
jmp 0xa2156
movq %r14, %rdi
movq %r15, %rsi
leaq 0x30(%rsp), %rdx
callq 0xa255b
jmp 0xa215e
movq %r14, %rdi
callq 0xeac74
movq %rax, %rbx
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
leaq 0x30(%rsp), %r12
movq %r12, %rcx
callq 0xa1369
movq %rbx, %rdi
callq 0xeb877
movq %r14, %rdi
leaq 0x846e7(%rip), %rsi     # 0x126727
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
callq 0xeac85
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x68(%rsp), %r12
movq %r12, %rcx
callq 0xa17c1
movq %r14, %rdi
movq %r12, %rsi
leaq 0x84875(%rip), %rdx     # 0x1268ea
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
leaq 0x30(%rsp), %rcx
callq 0xa1369
movq %rbx, %rdi
callq 0xeb877
movq %r14, %rdi
leaq 0x84850(%rip), %rsi     # 0x1268fa
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
jmp 0xa2156
movq %r14, %rdi
callq 0xeac74
movq %rax, %rbx
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
leaq 0x30(%rsp), %r12
movq %r12, %rcx
callq 0xa1369
movq %rbx, %rdi
callq 0xeb877
movq %r14, %rdi
leaq 0x8463b(%rip), %rsi     # 0x126727
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
callq 0xeac85
movq %r14, %rdi
movq %r15, %rsi
movq %r12, %rdx
leaq 0x68(%rsp), %r12
movq %r12, %rcx
callq 0xa17c1
movq %r14, %rdi
movq %r12, %rsi
leaq 0x8461e(%rip), %rdx     # 0x12673f
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
leaq 0x30(%rsp), %rsi
callq 0xa17af
movq %r14, %rdi
leaq 0x80d05(%rip), %rsi     # 0x122e52
movl %eax, %edx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
callq 0xeaf3c
movq 0x38(%rsp), %rcx
movq 0x40(%rsp), %rsi
movq %rsi, %rax
subq %rcx, %rax
jle 0xa2182
movq 0x30(%rsp), %rdx
cmpq %rsi, %rdx
jg 0xa2184
subq %rcx, %rdx
movq %rdx, %rax
jmp 0xa2184
xorl %eax, %eax
addq %rbp, %rax
movq %rax, 0x18(%rsp)
movq %r14, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
incq %r13
jmp 0xa1d33
addq $0x8, %rsi
movq %rsi, %r13
movq 0x8(%rsp), %rdx
jmp 0xa2248
leaq 0x18(%rsp), %rbx
leaq 0x68(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0xa17c1
leaq 0x84658(%rip), %rdx     # 0x12682a
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
movq %r12, %rcx
callq 0xa17c1
leaq 0x84634(%rip), %rdx     # 0x126834
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18ab
movq %r14, %rdi
movq %r12, %rsi
callq 0xa18f7
movq 0x8(%rbx), %rax
movq 0x10(%rbx), %rdx
movq %rdx, %r13
subq %rax, %r13
jle 0xa223d
movq 0x18(%rsp), %rcx
cmpq %rdx, %rcx
movq 0x8(%rsp), %rdx
jg 0xa2245
subq %rax, %rcx
movq %rcx, %r13
jmp 0xa2245
xorl %r13d, %r13d
movq 0x8(%rsp), %rdx
addq (%rdx), %r13
movq %r13, (%rdx)
pushq $0x1
popq %rbp
movl %ebp, %eax
addq $0x118, %rsp            # imm = 0x118
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r14, %rdi
callq 0xeac74
movq %rax, %rbx
leaq 0x18(%rsp), %r12
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
movq %r12, %rcx
callq 0xa1369
movq %rbx, %rdi
callq 0xeb877
leaq 0x634b9(%rip), %rsi     # 0x10574b
movq %r14, %rdi
movq %rax, %rdx
xorl %eax, %eax
callq 0xde896
movq %rbx, %rdi
callq 0xeaf3c
movq 0x8(%r12), %rax
movq 0x10(%r12), %rdx
jmp 0xa221e
leaq 0x8(%rsi), %rax
movq %rcx, %rdx
subq %rsi, %rdx
cmpq %rcx, %rax
pushq $0x8
popq %rax
cmovgq %rdx, %rax
xorl %r13d, %r13d
cmpq %rsi, %rcx
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
leaq 0x6bd57(%rip), %rbx     # 0x10e036
cmovgq %rax, %r13
callq 0xe451a
movq %r14, %rdi
movq %rbx, %rsi
movb $0x1, %al
callq 0xde896
jmp 0xa2240
movq 0x18(%r14), %rdi
movl 0x4(%r15), %edx
leaq 0x18(%rsp), %rsi
callq 0x9fe70
movq %rax, %r12
leaq 0x84529(%rip), %rsi     # 0x12683f
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0xde896
cmpq $0x1389, %r12           # imm = 0x1389
jl 0xa23ba
leaq 0x84524(%rip), %rsi     # 0x12685b
movq %r14, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0xdf05a
movb $0x1, %dil
movq 0x28(%rsp), %rbx
jmp 0xa24f5
movq 0x38(%rbp), %rdi
movq %r13, %rcx
testq %rdi, %rdi
je 0xa2381
leaq 0x845e5(%rip), %rsi     # 0x126949
callq 0x181a0
movq %r13, %rcx
testl %eax, %eax
jne 0xa2381
movq %r14, %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0xa25ed
movq %r13, %rcx
movq 0x20(%rsp), %rdx
xorl %ebp, %ebp
movq %r12, %rax
subq %rdx, %rax
jle 0xa23a2
cmpq %r12, %rcx
movq 0x8(%rsp), %rsi
jg 0xa23a9
subq %rdx, %rcx
movq %rcx, %rax
jmp 0xa23a9
xorl %eax, %eax
movq 0x8(%rsp), %rsi
addq %rax, (%rsi)
cmpq %r12, %r13
jle 0xa224b
jmp 0xa224e
movq %r13, 0x58(%rsp)
cmpl $0x32, 0x10(%r15)
movb $0x1, %dil
movq 0x28(%rsp), %rbx
jg 0xa24f5
xorl %eax, %eax
testq %r12, %r12
cmovleq %rax, %r12
movq 0x18(%rsp), %rbp
xorl %edx, %edx
cmpq %rdx, %r12
setne 0x17(%rsp)
je 0xa24eb
movq %r14, %rdi
leaq 0x84482(%rip), %rsi     # 0x12687c
movl %ebp, %ecx
movq %rdx, 0x60(%rsp)
movq 0x48(%rsp), %r8
xorl %eax, %eax
callq 0xde896
movq %r14, %rdi
pushq $0x1
popq %rsi
callq 0xdeba7
incl 0x10(%r15)
movq %rbp, 0x70(%rsp)
movq %rbp, 0x68(%rsp)
movq %rbx, 0x78(%rsp)
movq %r14, %rdi
movq %r15, %rsi
movq 0x58(%rsp), %rdx
leaq 0x68(%rsp), %rcx
movq %rbp, %r8
callq 0xa1932
movq %r12, %r13
movl %eax, %r12d
decl 0x10(%r15)
movq %r14, %rdi
pushq $-0x1
popq %rsi
callq 0xdeba7
movq 0x60(%rsp), %rdx
testl %r12d, %r12d
je 0xa24eb
movq %r13, %r12
movq 0x70(%rsp), %rcx
movq 0x78(%rsp), %rsi
movq %rsi, %rax
subq %rcx, %rax
jle 0xa248d
movq 0x68(%rsp), %rdi
cmpq %rsi, %rdi
jg 0xa248f
subq %rcx, %rdi
movq %rdi, %rax
jmp 0xa248f
xorl %eax, %eax
addq %rax, %rbp
incq %rdx
jmp 0xa23e2
movq 0x28(%rsp), %r12
movl 0x54(%rsp), %esi
movq %r14, %rdi
callq 0xdebb7
movq 0x20(%rsp), %rcx
xorl %ebp, %ebp
movq %r12, %rax
subq %rcx, %rax
jle 0xa24d1
movq 0x18(%rsp), %rdx
cmpq %r12, %rdx
movq 0x8(%rsp), %rsi
jg 0xa24d8
subq %rcx, %rdx
movq %rdx, %rax
jmp 0xa24d8
xorl %eax, %eax
movq 0x8(%rsp), %rsi
addq %rax, (%rsi)
cmpq %r13, 0x48(%rsp)
je 0xa224b
jmp 0xa224e
movq %rbp, 0x18(%rsp)
movb 0x17(%rsp), %dil
movq 0x20(%rsp), %rcx
xorl %ebp, %ebp
movq %rbx, %rax
subq %rcx, %rax
movq 0x8(%rsp), %rsi
jle 0xa251b
movq 0x18(%rsp), %rdx
cmpq %rbx, %rdx
jg 0xa251d
subq %rcx, %rdx
movq %rdx, %rax
jmp 0xa251d
xorl %eax, %eax
addq %rax, (%rsi)
testb %dil, %dil
je 0xa224b
jmp 0xa224e