#!/bin/sh

ddq()
{
	dd $@ 2> /dev/null
}

store()
{
	n=$2; for i in $(seq 8 8 ${4:-16}); do
		printf '\\\\x%02X' $(($n & 255))
		n=$(($n >> 8))
	done | xargs echo -en | ddq bs=1 conv=notrunc of=$3 seek=$(($1))
}

get()
{
	echo $(od -j $(($1)) -N ${3:-2} -t u${3:-2} -An "$2")
}

compress()
{
	if [ "$1" ]; then
		gzip -9 > $1
		[ "$(which advdef 2> /dev/null)" ] &&
		advdef -z4 -i100 $1 > /dev/null
	elif [ "$(which xz 2> /dev/null)" ]; then
		xz -z -e --format=lzma --lzma1=mode=normal --stdout
	else
		lzma e -si -so
	fi 2> /dev/null
}

add_rootfs()
{
	TMP=/tmp/iso2exe$$
	mkdir -p $TMP
	$0 --get rootfs.gz > $TMP/rootfs.gz
	SIZE=$(wc -c < $TMP/rootfs.gz)
	store 24 $SIZE $1
	OFS=$(( $OFS - $SIZE ))
	printf "Adding rootfs.gz file at %04X (%d bytes) ...\n" $OFS $SIZE
	cat $TMP/rootfs.gz | ddq of=$1 bs=1 seek=$OFS conv=notrunc
	rm -rf $TMP
}

add_dosexe()
{
	TMP=/tmp/bootiso$$
	$0 --get bootiso.bin > $TMP 2> /dev/null 
	OFS=$(($(get 20 $TMP) - 0xC0))
	printf "Adding DOS/EXE stub at %04X (%d bytes) ...\n" $OFS $((0x7FF0 - $OFS))
	ddq if=$TMP bs=1 skip=$OFS of=$1 seek=$OFS conv=notrunc
	rm -f $TMP
}

add_doscom()
{
	SIZE=$($0 --get boot.com | wc -c)
	OFS=$(( $OFS - $SIZE ))
	printf "Adding DOS boot file at %04X (%d bytes) ...\n" $OFS $SIZE
	$0 --get boot.com | ddq of=$1 bs=1 seek=$OFS conv=notrunc
	store 64 $(($OFS+0xC0)) $1
}

add_tazlito_info()
{
	HOLE=$OFS
	[ $(get 0 $2) -eq 35615 ] || return
	zcat $2 | compress /tmp/rezipped$$.gz
	n=$(stat -c %s /tmp/rezipped$$.gz)
	printf "Moving tazlito data record at %04X ($n bytes) ...\n" $OFS
	ddq if=/tmp/rezipped$$.gz bs=1 of=$1 seek=$OFS conv=notrunc
	HOLE=$(($HOLE+$n))
	rm -f /tmp/rezipped$$.gz
	if [ -n "$gpt" ]; then
		store $((0x25E)) $n $1
		store $((0x25C)) $OFS $1
	fi
}

add_win32exe()
{
	SIZE=$($0 --get win32.exe 2> /dev/null | tee /tmp/exe$$ | wc -c)
	[ -n "$gpt" ] && SIZE=$(($SIZE+1024))
	[ -n "$mac" ] && SIZE=$(($SIZE+3072))
	printf "Adding WIN32 file at %04X (%d bytes) ...\n" 0 $SIZE
	ddq if=/tmp/exe$$ of=$1 conv=notrunc
	if [ -n "$gpt" ]; then
		printf "Adding GPT at %04X (1024 bytes) ...\n" 512
		ddq if=$2 bs=512 skip=1 of=$1 seek=1 conv=notrunc
		i=3; [ -n "$mac" ] && i=9
		ddq if=/tmp/exe$$ bs=512 skip=1 of=$1 seek=$i conv=notrunc
		for i in 12C 154 17C ; do	# always 3 UPX sections
			store $((0x$i)) $((1024 + $(get 0x$i $1))) $1
		done
	fi
	printf "Adding bootiso head at %04X...\n" 0
	$0 --get bootiso.bin 2> /dev/null > /tmp/exe$$
	ddq if=/tmp/exe$$ of=$1 bs=128 count=1 conv=notrunc
	store $((0x94)) $((0xE0 - 12*8)) $1
	store $((0xF4)) $((16 - 12)) $1
	ddq if=$1 of=/tmp/coff$$ bs=1 skip=$((0x178)) count=$((0x88))
	ddq if=/tmp/coff$$ of=$1 conv=notrunc bs=1 seek=$((0x178 - 12*8))
	ddq if=/tmp/exe$$ of=$1 bs=1 count=24 seek=$((0x1A0)) skip=$((0x1A0)) conv=notrunc
	ddq if=$2 bs=1 skip=$((0x1B8)) seek=$((0x1B8)) count=72 of=$1 conv=notrunc
	store 510 $((0xAA55)) $1
	i=$SIZE; OFS=$(($SIZE+512))
	[ -n "$mac" ] && OFS=$SIZE && i=1536
	store 417 $(($i/512)) $1 8
	printf "Moving syslinux hybrid boot record at %04X (512 bytes) ...\n" $i
	ddq if=$2 bs=1 count=512 of=$1 seek=$i conv=notrunc
	if [ $(get $((0x7C00)) /tmp/exe$$) -eq 60905 ]; then
		ddq if=/tmp/exe$$ bs=1 count=66 skip=$((0x7DBE)) of=$1 seek=$(($i + 0x1BE)) conv=notrunc
		ddq if=$1 bs=1 count=3 skip=$i of=$1 seek=$(($i + 0x1BE)) conv=notrunc
		ddq if=/tmp/exe$$ bs=1 count=3 skip=$((0x7C00)) of=$1 seek=$i conv=notrunc
	fi
	rm -f /tmp/exe$$ /tmp/coff$$
	if [ -z "$RECURSIVE_PARTITION" -a $(get 454 $1 4) -eq 0 ]; then
		store 448 $((1+$i/512)) $1 8
		store 454 $(($i/512)) $1 8
		store 458 $(($(get 458 $1 4) - $i/512)) $1 32
	fi
}

add_fdbootstrap()
{
	SIZE=$($0 --get bootfd.bin 2> /dev/null | wc -c)
	if [ $SIZE -ne 0 ]; then
		SIZE=$(( $SIZE -  512 )) # sector 2 is data
		OFS=$(( $OFS - $SIZE ))
		printf "Adding floppy bootstrap file at %04X (%d bytes) ...\n" $OFS $SIZE
		$0 --get bootfd.bin | \
		ddq of=$1 bs=1 count=512 seek=$OFS conv=notrunc
		$0 --get bootfd.bin | \
		ddq of=$1 bs=1 skip=1024 seek=$((512 + $OFS)) conv=notrunc
		store 26 $(($SIZE/512)) $1 8
	fi
}

gzsize()
{
	echo $(($(hexdump -C | awk ' {
		for (i = 17; i > 1; i--) if ($i != "00") break;
		if (i == 1) {
			print "0x" $1 " + 1 + 1 - " n
			exit
		}
		n = 17 - i
	}')))
}

fileofs()
{
	[ $(get 1024 "$ISO") -eq 35615 ] && x=1024 ||
	x=$((512*(1+$(get 417 "$ISO" 1))))
	stub=$(($(get 20 "$ISO") - 0xC0))
	c=$(custom_config_sector "$ISO")
	SIZE=0; OFFSET=0
	case "$1" in
	win32.exe)	[ $x -eq 2048 ] && x=10752
			[ $x -eq 1024 ] || SIZE=$(($x - 512));;
	syslinux.mbr)	[ $x -eq 1024 ] || OFFSET=$(($x - 512)); SIZE=512;;
	flavor.info)	[ $(get 22528 "$ISO") -eq 35615 ] && OFFSET=22528
			[ $x -eq 2048 ] && x=$(get 0x25C "$ISO") &&
					   SIZE=$(get 0x25E "$ISO")
			[ $(get $x "$ISO") -eq 35615 ] && OFFSET=$x
			[ $OFFSET -ne 0 ] && [ $SIZE -eq 0 ] &&
			SIZE=$(ddq bs=512 skip=$(($OFFSET/512)) if="$ISO" | gzsize);;
	floppy.boot)	SIZE=$(($(get 26 "$ISO" 1)*512))
			OFFSET=$(($(get 64 "$ISO") - 0xC0 - $SIZE));;
	rootfs.gz)	SIZE=$(get 24 "$ISO"); OFFSET=$(($stub - $SIZE));;
	tazboot.com)	OFFSET=$(($(get 64 "$ISO") - 0xC0))
			SIZE=$(($stub - $(get 24 "$ISO") - $OFFSET));;
	dosstub)	OFFSET=$stub; SIZE=$((0x7FF0 - $OFFSET));;
	boot.md5)	OFFSET=$((0x7FF0)); SIZE=16;;
	fs.iso)		OFFSET=$((0x8000))
			SIZE=$((2048*$c - $OFFSET));;
	custom.magic)	ddq bs=2k skip=$c if="$ISO" | ddq bs=1 count=6 | \
				grep -q '#!boot' && OFFSET=$((2048*$c)) &&
			SIZE=39 ;;
	custom.append)  OFFSET=$((2048*$c+47)) &&
			SIZE=$(ddq bs=2k skip=$c if="$ISO" count=1 | \
				sed '/^append=/!d;s/^[^=]*=.//' | wc -c);;
	custom.initrd)  x=$(ddq bs=2k skip=$c if="$ISO" count=1 | \
				sed '/^append=\|^initrd:/!d' | wc -c)
			OFFSET=$((2048*$c+$x+40))
			SIZE=$(($(ddq bs=2k skip=$c if="$ISO" count=1 | \
				sed '/^initrd:/!d;s/.*://') + 0));;
	esac
}

trailer()
{
	OFFSET=$(stat -c %s "$1")
	[ $OFFSET -gt $HEAP ] &&
	printf "%d free bytes in %04X..%04X\n" $(($OFFSET - $HEAP)) $HEAP $OFFSET
	if [ $(get 510 "$1") -eq 43605 ]; then
		echo "MBR partitions :"
		for i in 0 1 2 3; do
			SIZE=$(get $((446+12+16*i)) "$1" 4)
			[ $SIZE -eq 0 ] && continue
			OFFSET=$(get $((446+8+16*i)) "$1" 4)
			printf " $i:%08X  %08X  %02X\n" $OFFSET $SIZE \
				$(get $((446+4+16*i)) "$1" 1)
		done
		if [ $(get 450 "$1") -eq 65262 ]; then
			echo "EFI partitions :"
			n=$(get 592 "$1")
			s=$(get 596 "$1")
			o=$(($(get 584 "$1")*512))
			i=0
			while [ $i -lt $n ]; do
				f=$(get $(($o+0x20)) "$1" 4)
				l=$(($(get $(($o+0x28)) "$1" 4)-$f))
				[ $l -eq 0 ] && break
				printf " $i:%08X  %08X  %s\n" $f $(($l+1)) \
				"$(od -An -N 72 -w72 -j $(($o+0x38)) -t a "$1" \
				 | sed 's/ nul//g;s/   //g;s/ sp//g')"
				o=$(($o+$s))
				i=$(($i+1))
			done
		fi
	fi
	o=2048
	if [ $(get $o "$1") -eq 19792 ]; then
		echo "Apple partitions :"
		i=0
		while [ $(get $o "$1") -eq 19792 ]; do
			f=$((0x$(od -An -N 4 -j $(($o+8)) -t x1 "$1" | sed 's/ //g')))
			l=$((0x$(od -An -N 4 -j $(($o+0x54)) -t x1 "$1" | sed 's/ //g')))
			printf " $i:%08X  %08X  %s\n" $f $l \
			"$(ddq bs=1 skip=$(($o+16)) count=32 if="$1")"
			o=$(($o+2048))
			i=$(($i+1))
		done
	fi
}

list()
{
	HEAP=0
	for f in win32.exe syslinux.mbr flavor.info floppy.boot tazboot.com \
		 rootfs.gz dosstub boot.md5 fs.iso custom.magic custom.append \
		 custom.initrd; do
		fileofs $f
		[ $SIZE -le 0 ] && continue
		[ "${OFFSET:8}" ] && continue
		[ $OFFSET -lt 0 ] && continue
		[ $(get $OFFSET "$ISO") -eq 0 ] && continue
		[ $OFFSET -gt $HEAP ] && [ $(($OFFSET - $HEAP)) -gt 16 ] &&
		printf "%d free bytes in %04X..%04X\n" $(($OFFSET - $HEAP)) $HEAP $OFFSET
		[ $OFFSET -ge $HEAP ] && HEAP=$(($OFFSET+$SIZE))
		printf "$f at %04X ($SIZE bytes).\n" $OFFSET
	done
	trailer $ISO
}

restore_hybrid_mbr()
{
	if [ $(get 0 "$1") -eq 60905 ]; then
		ddq bs=1 conv=notrunc if="$1" of="$1" skip=$((0x1BE)) seek=0 count=3
		ddq bs=1 skip=$((0x1BE)) count=66 if="$2" | \
			ddq bs=1 seek=$((0x1BE)) count=66 of="$1" conv=notrunc
		if [ -n "$RECURSIVE_PARTITION" ]; then
			for i in 0 1 2 3 ; do
				n=$(get $((0x1C6+16*i)) $1 4)
				[ $n -eq 0 -o $n -gt 64 ] && continue
				store $((0x1C0+16*i)) 1 $1 8
				store $((0x1C6+16*i)) 0 $1 32
				store $((0x1CA+16*i)) $(($(get $((0x1CA+16*i)) $1 4)+$n)) $1 32
			done
		fi
	fi
}

extract()
{
	for f in $@; do
		fileofs $f
		[ $SIZE -eq 0 ] ||
		ddq bs=1 count=$SIZE skip=$OFFSET if="$ISO" >$f
		[ "$f" == "syslinux.mbr" ] && restore_hybrid_mbr "$f" "$ISO"
	done
}

custom_config_sector()
{
	get 32848 "$1" 4
}

clear_custom_config()
{
	start=$(custom_config_sector $1)
	cnt=$((512 - ($start % 512)))
	[ $cnt -ne 512 ] &&
	ddq if=/dev/zero of=$1 bs=2k seek=$start count=$cnt
}

main()
{
	[ $(id -u) -ne 0 ] && cmd="$0 $@" && exec su -c "$cmd" < /dev/tty
	append=
	initrd=
		
	while [ "$1" ]; do
		case "${1/--/-}" in
		-get)	shift
			uudecode | unlzma | tar xOf - $@
			exit ;;
		-a*)	append="$2" ; shift 2 ;;
		-i*)	initrd="$2" ; shift 2 ;;
		-r*|-l*)
			ISO="$2" ; shift 2
			[ -z "$1" ] && list || extract $@
			exit ;;
		*)	cat > /dev/null
			break
		esac
	done
	
	[ ! -s "$1" ] && cat 1>&2 <<EOT && exit 1
usage: $0 [--list|--read] [--append custom_cmdline ] [ --initrd custom_initrd ] image.iso [--force|--undo|"DOS help message"|filename...]
EOT
	case "${2/--/-}" in
	-u*|-r*|-w*|-f*)
	    case "$(get 0 $1)" in
	    23117)
		b=$(get 417 $1 1)
		n=$(($(get 64 $1) + 0xC0 - ($(get 26 $1 1)*512) - ($b+1)*512))
		ddq if=$1 bs=512 count=1 skip=$b of=/tmp/hymbr$$
		restore_hybrid_mbr /tmp/hymbr$$ $1
		ddq if=/tmp/hymbr$$ of=$1 conv=notrunc
		rm -f /tmp/hymbr$$
		if [ $(get 512 $1) -eq 17989 ]; then
			n=$(($(get 0x25C $1)/512))
			ddq if=$1 bs=512 seek=44 count=20 skip=$n of=$1 conv=notrunc
			ddq if=/dev/zero bs=512 seek=9 count=35 of=$1 conv=notrunc
			ddq if=/dev/zero bs=512 seek=3 count=1 of=$1 conv=notrunc
		else
			ddq if=/dev/zero bs=512 seek=1 count=1 of=$1 conv=notrunc
			ddq if=$1 bs=512 seek=2 count=30 skip=$(($b+1)) of=$1 conv=notrunc
			ddq if=/dev/zero bs=1 seek=$n count=$((0x8000 - $n)) of=$1 conv=notrunc
		fi ;;
	    *)  ddq if=/dev/zero bs=1k count=32 of=$1 conv=notrunc ;;
	    esac
	    case "${2/--/-}" in
	    -f*)
		[ "$append$initrd" ] && clear_custom_config $1
		set -- "$1" "$3" ;;
	    *)
		clear_custom_config $1
		exit 0 ;;
	    esac
	esac
	case "$(get 0 $1)" in
	23117)	echo "The file $1 is already an EXE file." 1>&2 && exit 1;;
	0)	[ -x /usr/bin/isohybrid ] && isohybrid -entry 2 $1;;
	esac

	gpt= ; [ $(get 450 $1) -eq 65262 ] && gpt=1
	mac= ; [ $(get 2048 $1) -eq 19792 ] && mac=1
	echo "Read hybrid & tazlito data..."
	if [ -n "$gpt" ]; then
		echo "GUID Partition Table..."
		n=3; [ -n "$mac" ] && n=9 && echo "Apple Partition Table..."
		ddq if=$1 bs=512 count=$n of=/tmp/hybrid$$
		ddq if=$1 bs=512 skip=44 count=20 of=/tmp/tazlito$$
	else
		ddq if=$1 bs=512 count=1 of=/tmp/hybrid$$
		ddq if=$1 bs=512 skip=2 count=20 of=/tmp/tazlito$$
	fi
	add_win32exe $1 /tmp/hybrid$$
	add_tazlito_info $1 /tmp/tazlito$$
	rm -f /tmp/tazlito$$ /tmp/hybrid$$
	
	# keep the largest room for the tazlito info file
	add_dosexe $1
	add_rootfs $1
	add_doscom $1
	add_fdbootstrap $1
	printf "%d free bytes in %04X..%04X\n" $(($OFS-$HOLE)) $HOLE $OFS
	store 440 $(date +%s) $1 32
	[ "$2" ] && echo "$2               " | \
		ddq bs=1 seek=$((0x7FDE)) count=15 conv=notrunc of=$1
	if [ $(stat -c %s $1) -gt 34816 ]; then
		echo "Adding ISO image md5 at 7FF0 (16 bytes) ..."
		echo -en "$(ddq if=$1 bs=2k skip=16 count=$(($(get 32848 "$1" 4)-16)) | \
			md5sum | cut -c-32 | sed 's/\(..\)/\\x\1/g')" | \
			ddq bs=16 seek=2047 conv=notrunc of=$1
	fi
	HEAP=$(($(custom_config_sector $1)*2048))
	if [ "$append$initrd" ]; then
		echo -n "Adding custom config... "
		DATA=/tmp/$(basename $0)$$
		rm -f $DATA > /dev/null
		isosz=$(stat -c %s $1)
		[ "$append" ] && echo "append=$append" >> $DATA
		[ -s "$initrd" ] && echo "initrd:$(stat -c %s $initrd)" >> $DATA &&
			cat $initrd >> $DATA
		echo "#!boot $(md5sum $DATA | sed 's/ .*//')" | cat - $DATA | \
		ddq bs=2k seek=$(custom_config_sector $1) of=$1
		newsz=$(stat -c %s $1)
		mb=$(((($newsz -1)/1048576)+1))
		HEAP=$(($mb*1048576))
		ddq bs=1048576 seek=$mb count=0 of=$1
		h=$(get 417 "$1" 1)
		[ -z "$RECURSIVE_PARTITION" ] || h=0
		for i in 0 1 2 3 ; do
			[ $(get $((0x1BE+16*i)) $1 2) == $((0x0080)) ] || continue
			store $((0x1CA+16*i)) $(($mb*2048-$h)) $1 32
			store $((0x1C5+16*i)) $(($mb-1)) $1 8
		done
		if [ $newsz -gt $isosz ]; then
			echo "$(($newsz - $isosz)) extra bytes."
		else
			echo "$(($isosz - 2048*$(get 32848 $1 4) 
				 - $(stat -c %s $DATA) - 24)) bytes free."
		fi
		rm -f $DATA > /dev/null
	fi
	echo -n "Adding boot checksum..."
	if [ $(stat -c %s $1) -gt 32768 ]; then
		n=$(($(get 2 $1) - 1 + ($(get 4 $1) - 1)*512))
		n=$(($(od -v -N $n -t u2 -w2 -An $1 | \
		       awk '{ i+= $0 } END { print (i % 65536) }') \
		     + $(get $(($n+1)) $1 1)))
		store 18 $(( (-$n -1) % 65536 )) $1
	fi
	echo " done."
	trailer $1
}

main "$@" <<EOT
begin-base64 644 -
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
k+YYAwI+2EBjgGLVwDZP/6XYbLJw14VdIEFC6BPKIYw1WqXbiEWJJYtLdiI8
pRqOoYm4ut5yIyqsq8LQ4TZQqZtNql481DG1MhSU8jvcTHPFP3BWHKs2XaZo
EpuFr1/Bmd03ZpJ6SPnpGbaxPA/L3fbhdgGrPycByRPaSjdS99PO/vLlaI40
QZBqLvDQBKhCUu63oj94EUhmENri7KXw7vBixsCG2smCISvCB0MMNtUtw6sN
bhNxqOWIKBwPOu3QUGvVc85rmC2sjSh6pJu4JV2oG9xktfkfHjLUbHd2TfK/
5itw8geNOgDqE/DZe6JFGtr3/ocinDFpG6WUQNKwmoFJbnOw7b9ZspsTZbwD
lPp/ArOjSvncbueJftRaGrpCpJhIgalUJORfK5mpnoHXGe/Jk6hfN8ptog7R
HN6HtUL+tXYawJJ+aDoMJRropKoPqSM8KA6crI8civ/GxROzXbgAc/YUPRx6
2N+t+YiKNhlIVawDjLAsYAGd/8V2O51k8qszAYwPHTWQAzZJrqHmPc8ipPme
5U94M4OhzEMh1lU5sqxAz3EqZPThNw26qhaxuuLDPo94ofn82biPZiaThA38
9mubQdEQ2k4aqBiaZ20h+dQZvGAGvm/pf9P0h1s96dcJgY8G8IN4f+UQ9W7b
eb+sl0n9Qny1UqKPq+vk9sVkP6rDsCEolr0wdqadoVWNetxGbsCaUMn5+kOj
g+VESj99WGqzkPZXvgxFB8YRjYVOl1Mkg6wN/zikpLt340g/MQuAySgZbHqe
ExOupbMoAUrffJBdMVYbVXmNIsk7YI4bvbkl7R4p/QhE/a5cQ3XEnK9wnovy
Ku7pHULruvHCFoPMbM5ry7hxZ3OEgk0lKWNx7s8hJb9RVCtOfVazyFvaahLs
Yhc85keOknRfcOF2NZQFJMj7GBdHMyZ3E3NAfrZv+JgvFlLEWylV494GBa9e
rviot+K9CCCPX9c7FoiWVyIl7Xm5wKTL+24WPr3t/FYDANJsgixDtDsy4geE
VmkDpUOp6TZFn39pHe5c16jdesyOlTSOACjleK2RhoNHl3RPtRblaR67AnQN
J9iNHI5938Ho4psz2r1CoL9yTGiquOAH9DsuoGNpQBHZSgaeCDdKKjAYrnRz
8fTx5hC2ZTvuGQymKgZXsDg58pyDezs8+8EOKovqL9y3rA6Z2brJ+ApAbwQz
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
Aaj3mN+087a8/8/UEIg=
====
EOT
