// File: /workspace/github_c_makefile_star2_O3/jsummers[P]deark/src/fmtutil.c
// Function: fmtutil_default_box_handler
int fmtutil_default_box_handler(deark *c, struct de_boxesctx *bctx)
{
	struct de_boxdata *curbox = bctx->curbox;

	if(curbox->is_uuid) {
		if(!de_memcmp(curbox->uuid, "\xb1\x4b\xf8\xbd\x08\x3d\x4b\x43\xa5\xae\x8c\xd7\xd5\xa6\xce\x03", 16)) {
			de_dbg(c, "GeoTIFF data at %"I64_FMT", len=%"I64_FMT, curbox->payload_pos, curbox->payload_len);
			dbuf_create_file_from_slice(bctx->f, curbox->payload_pos, curbox->payload_len, "geo.tif", NULL, DE_CREATEFLAG_IS_AUX);
		}
		else if(!de_memcmp(curbox->uuid, "\xbe\x7a\xcf\xcb\x97\xa9\x42\xe8\x9c\x71\x99\x94\x91\xe3\xaf\xac", 16)) {
			de_dbg(c, "XMP data at %"I64_FMT", len=%"I64_FMT, curbox->payload_pos, curbox->payload_len);
			dbuf_create_file_from_slice(bctx->f, curbox->payload_pos, curbox->payload_len, "xmp", NULL, DE_CREATEFLAG_IS_AUX);
		}
		else if(!de_memcmp(curbox->uuid, "\x2c\x4c\x01\x00\x85\x04\x40\xb9\xa0\x3e\x56\x21\x48\xd6\xdf\xeb", 16)) {
			de_dbg(c, "Photoshop resources at %"I64_FMT", len=%"I64_FMT, curbox->payload_pos, curbox->payload_len);
			de_dbg_indent(c, 1);
			fmtutil_handle_photoshop_rsrc(c, bctx->f, curbox->payload_pos, curbox->payload_len, 0x0);
			de_dbg_indent(c, -1);
		}
		else if(!de_memcmp(curbox->uuid, "\x05\x37\xcd\xab\x9d\x0c\x44\x31\xa7\x2a\xfa\x56\x1f\x2a\x11\x3e", 16) ||
			!de_memcmp(curbox->uuid, "JpgTiffExif->JP2", 16))
		{
			de_dbg(c, "Exif data at %"I64_FMT", len=%"I64_FMT, curbox->payload_pos, curbox->payload_len);
			de_dbg_indent(c, 1);
			fmtutil_handle_exif(c, curbox->payload_pos, curbox->payload_len);
			de_dbg_indent(c, -1);
		}
	}
	return 1;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq 0x28(%rsi), %r15
cmpl $0x0, 0x10(%r15)
je 0xf830b
movq %rsi, %r14
movq %rdi, %rbx
movdqu 0x14(%r15), %xmm0
pcmpeqb 0x5218e(%rip), %xmm0    # 0x14a320
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0xf8254
movdqu 0x14(%r15), %xmm0
pcmpeqb 0x52181(%rip), %xmm0    # 0x14a330
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0xf8282
movdqu 0x14(%r15), %xmm0
pcmpeqb 0x52174(%rip), %xmm0    # 0x14a340
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0xf82be
movdqu 0x14(%r15), %xmm0
pcmpeqb 0x52167(%rip), %xmm0    # 0x14a350
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
je 0xf8211
movdqu 0x14(%r15), %xmm0
pcmpeqb 0x5215e(%rip), %xmm0    # 0x14a360
pmovmskb %xmm0, %eax
cmpl $0xffff, %eax           # imm = 0xFFFF
jne 0xf830b
movq 0x38(%r15), %rdx
movq 0x40(%r15), %rcx
leaq 0x523ac(%rip), %rsi     # 0x14a5cc
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe8a15
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
movq %rbx, %rdi
xorl %ecx, %ecx
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0xf795c
jmp 0xf82fe
movq 0x38(%r15), %rdx
movq 0x40(%r15), %rcx
leaq 0x522d4(%rip), %rsi     # 0x14a537
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movq 0x10(%r14), %rdi
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
leaq 0x522d4(%rip), %rcx     # 0x14a554
jmp 0xf82ae
movq 0x38(%r15), %rdx
movq 0x40(%r15), %rcx
leaq 0x522dc(%rip), %rsi     # 0x14a56d
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movq 0x10(%r14), %rdi
movq 0x38(%r15), %rsi
movq 0x40(%r15), %rdx
leaq 0x3f830(%rip), %rcx     # 0x137ade
xorl %r8d, %r8d
movl $0x1, %r9d
callq 0xefd48
jmp 0xf830b
movq 0x38(%r15), %rdx
movq 0x40(%r15), %rcx
leaq 0x522b9(%rip), %rsi     # 0x14a586
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe8617
movq %rbx, %rdi
movl $0x1, %esi
callq 0xe8a15
movq 0x10(%r14), %rsi
movq 0x38(%r15), %rdx
movq 0x40(%r15), %rcx
movq %rbx, %rdi
xorl %r8d, %r8d
xorl %r9d, %r9d
callq 0xf7d6b
movq %rbx, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0xe8a15
movl $0x1, %eax
popq %rbx
popq %r14
popq %r15
retq