// File: /workspace/github_c_makefile_star2_O0/joncampbell123[P]swfhax/c4_swf2svg.c
// Function: do_dump_shape_outline_only
static void do_dump_shape_outline_only(swf_reader *swf,swf_DefineShape *nfo,unsigned int tag_code,FILE *fp) {
#define MAX_POINTS		65536
	struct swf_point *pointxy = NULL;
	swf_FILLSTYLEARRAY_read fsnfo;
	swf_LINESTYLEARRAY_read lsnfo;
	unsigned int padx=0,pady=0;
	unsigned int cmapi=0;
	unsigned int dotn=1;
	swf_SHAPE_reading r;
	unsigned int op=0;
	int pos_x,pos_y;
	unsigned int i;

	if (outline_only && outline_colormap/*TODO*/)
		padx = pady = 400;

	if (swf_reader_read_FILLSTYLEARRAY_header(swf,&fsnfo,tag_code)) return;
	for (i=0;i < fsnfo.FillStyleCount;i++) {
		if (swf_reader_read_FILLSTYLE(swf,&fsnfo)) return;
	}

	if (swf_reader_read_LINESTYLEARRAY_header(swf,&lsnfo,tag_code)) return;
	if (tag_code == swftag_DefineShape4) {
		for (i=0;i < lsnfo.LineStyleCount;i++) {
			if (swf_reader_read_LINESTYLE2(swf,&lsnfo)) return;
		}
	}
	else {
		for (i=0;i < lsnfo.LineStyleCount;i++) {
			if (swf_reader_read_LINESTYLE(swf,&lsnfo)) return;
		}
	}

	pointxy = (struct swf_point*)malloc(sizeof(struct swf_point) * MAX_POINTS);
	assert(pointxy != NULL);

	fprintf(fp,"<?xml version=\"1.0\" standalone=\"no\"?>\n");
	fprintf(fp,"<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n");
	fprintf(fp,"<svg width=\"%upx\" height=\"%upx\" viewBox=\"0 0 %u %u\" xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n",
		((nfo->ShapeBounds.Xmax - nfo->ShapeBounds.Xmin) + (padx*2)) / SWF_TWIPS_PER_PIXEL,
		((nfo->ShapeBounds.Ymax - nfo->ShapeBounds.Ymin) + (pady*2)) / SWF_TWIPS_PER_PIXEL,
		(nfo->ShapeBounds.Xmax - nfo->ShapeBounds.Xmin) + (padx*2),
		(nfo->ShapeBounds.Ymax - nfo->ShapeBounds.Ymin) + (pady*2));
	fprintf(fp,"  <style type=\"text/css\"><![CDATA[\n");
	fprintf(fp,"   .blackpen { fill:none; stroke:black; stroke-width:20 }\n");
	fprintf(fp,"  ]]></style>\n");
#if 0
	if (!outline_colormap) {
		fprintf(fp,"  <rect x=\"%u\" y=\"%u\" width=\"%u\" height=\"%u\" fill=\"none\" stroke=\"blue\" stroke-width=\"20\" /><!-- DEBUG BORDERLINE -->\n",
			padx,pady,
			nfo->ShapeBounds.Xmax - nfo->ShapeBounds.Xmin,
			nfo->ShapeBounds.Ymax - nfo->ShapeBounds.Ymin);
	}
#endif

	pos_x = pos_y = 0;
	if (swf_reader_read_SHAPE_beginning(swf,&r) == 0) {
		while (swf_reader_read_SHAPE_record(swf,&r) == 0) {
			if (r.ShapeRecord_type == swf_shrec_EndShapeRecord)
				break;

			if (r.ShapeRecord_type == swf_shrec_StraightEdgeRecord ||
				r.ShapeRecord_type == swf_shrec_CurvedEdgeRecord) {
				if (op && outline_colormap) {
					fprintf(fp,"\" />\n");
					op = 0;
				}

				if (dotn <= MAX_POINTS) {
					assert(dotn >= 1);
					pointxy[dotn-1].x = pos_x;
					pointxy[dotn-1].y = pos_y;
				}

				if (!op) {
					if (outline_colormap) {
						fprintf(fp,"  <path stroke=\"#%06x\" ",outcmap[cmapi]);
						fprintf(fp,"onmouseover=\"evt.target.parentNode.getElementById('segment%u').setAttribute('opacity','1.0')\" ",dotn);
						fprintf(fp,"onmouseout=\"evt.target.parentNode.getElementById('segment%u').setAttribute('opacity','0')\" ",dotn);
						fprintf(fp,"stroke-width=\"20\" ");
						fprintf(fp,"fill=\"none\" d=\"M %u %u ",padx + pos_x - nfo->ShapeBounds.Xmin,pady + pos_y - nfo->ShapeBounds.Ymin);

						if ((++cmapi) >= 8) cmapi = 0;
					}
					else {
						fprintf(fp,"  <path class=\"blackpen\" d=\"");
					}

					op = 1;
				}
			}
			else {
				if (op && !outline_colormap) {
					fprintf(fp,"\" />\n");
					op = 0;
				}
			}

			if (r.ShapeRecord_type == swf_shrec_StraightEdgeRecord) {
				pos_x += r.shrec.edge.StraightEdgeRecord.DeltaX;
				pos_y += r.shrec.edge.StraightEdgeRecord.DeltaY;
				fprintf(fp,"L %d %d ",padx + pos_x - nfo->ShapeBounds.Xmin,pady + pos_y - nfo->ShapeBounds.Ymin);
			}
			else if (r.ShapeRecord_type == swf_shrec_CurvedEdgeRecord) {
				pos_x += r.shrec.edge.CurvedEdgeRecord.ControlDeltaX;
				pos_y += r.shrec.edge.CurvedEdgeRecord.ControlDeltaY;
				fprintf(fp,"Q %d %d ",padx + pos_x - nfo->ShapeBounds.Xmin,pady + pos_y - nfo->ShapeBounds.Ymin);
				pos_x += r.shrec.edge.CurvedEdgeRecord.AnchorDeltaX;
				pos_y += r.shrec.edge.CurvedEdgeRecord.AnchorDeltaY;
				fprintf(fp,"%d %d ",padx + pos_x - nfo->ShapeBounds.Xmin,pady + pos_y - nfo->ShapeBounds.Ymin);
			}
			else if (r.ShapeRecord_type == swf_shrec_StyleChangeRecord) {
				if (r.shrec.style.StyleChangeRecord.StateNewStyles) {
#if 0
					fprintf(stderr,"NewStyles in ShapeID %u\n",nfo->ShapeId);
#endif
					if (swf_reader_read_FILLSTYLEARRAY_header(swf,&fsnfo,tag_code)) return;
					for (i=0;i < fsnfo.FillStyleCount;i++) {
						if (swf_reader_read_FILLSTYLE(swf,&fsnfo)) return;
					}

					if (swf_reader_read_LINESTYLEARRAY_header(swf,&lsnfo,tag_code)) return;
					if (tag_code == swftag_DefineShape4) {
						for (i=0;i < lsnfo.LineStyleCount;i++) {
							if (swf_reader_read_LINESTYLE2(swf,&lsnfo)) return;
						}
					}
					else {
						for (i=0;i < lsnfo.LineStyleCount;i++) {
							if (swf_reader_read_LINESTYLE(swf,&lsnfo)) return;
						}
					}

					if (swf_reader_read_SHAPE_beginning(swf,&r)) break;
				}

				if (!op && !outline_colormap) {
					fprintf(fp,"  <path class=\"blackpen\" d=\"");
					op = 1;
				}

				if (r.shrec.style.StyleChangeRecord.StateMoveTo) {
					pos_x = r.shrec.style.StyleChangeRecord.MoveDeltaX;
					pos_y = r.shrec.style.StyleChangeRecord.MoveDeltaY;
				}

				if (op) fprintf(fp,"M %d %d ",padx + pos_x - nfo->ShapeBounds.Xmin,pady + pos_y - nfo->ShapeBounds.Ymin);
			}

			if (r.ShapeRecord_type == swf_shrec_StraightEdgeRecord ||
				r.ShapeRecord_type == swf_shrec_CurvedEdgeRecord) {
				if (op && outline_colormap) {
					fprintf(fp,"\" />\n");
					op = 0;
				}

				if (dotn <= MAX_POINTS) {
					assert(dotn >= 1);
					pointxy[dotn-1].x2 = pos_x;
					pointxy[dotn-1].y2 = pos_y;
					dotn++;
				}
			}
		}

		if (op) {
			fprintf(fp,"\" />\n");
			op = 0;
		}
	}

	if (outline_colormap) { /* TODO: If it's own option... */
		cmapi = 0;
		for (i=1;i < dotn;i++) {
			unsigned int fsz;

			fsz = 280;
			if (i >= 10) fsz = (fsz * 2) / 3;
			else if (i >= 100) fsz = (fsz * 1) / 3;
			else if (i >= 1000) fsz = (fsz * 1) / 5;

			fprintf(fp,"  <g id=\"segment%u\" opacity=\"0\">\n",i);

			fprintf(fp,"    <circle r=\"140px\" fill=\"#%06x\" cx=\"%d\" cy=\"%d\" stroke=\"none\" />\n",
				outcmap[cmapi],padx + pointxy[i-1].x - nfo->ShapeBounds.Xmin,pady + pointxy[i-1].y - nfo->ShapeBounds.Ymin);
			fprintf(fp,"    <text style=\"font-size: %upx; text-anchor:middle; dominant-baseline:middle;\" fill=\"black\" x=\"%d\" y=\"%d\">%u</text>\n",
				fsz,padx + pointxy[i-1].x - nfo->ShapeBounds.Xmin,pady + pointxy[i-1].y - nfo->ShapeBounds.Ymin,i);

			fprintf(fp,"    <circle r=\"140px\" fill=\"none\" stroke=\"#%06x\" stroke-width=\"20\" cx=\"%d\" cy=\"%d\" />\n",
				outcmap[cmapi],padx + pointxy[i-1].x2 - nfo->ShapeBounds.Xmin,pady + pointxy[i-1].y2 - nfo->ShapeBounds.Ymin);

			fprintf(fp,"  </g>\n");
			if ((++cmapi) >= 8) cmapi = 0;
		}
	}

	fprintf(fp,"</svg>\n");
	free(pointxy);
#undef MAX_POINTS
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movq $0x0, -0x28(%rbp)
movl $0x0, -0x13c(%rbp)
movl $0x0, -0x140(%rbp)
movl $0x0, -0x144(%rbp)
movl $0x1, -0x148(%rbp)
movl $0x0, -0x174(%rbp)
cmpl $0x0, 0xb5ed(%rip)      # 0xd188
je 0x1bba
cmpl $0x0, 0xb604(%rip)      # 0xd1a8
je 0x1bba
movl $0x190, -0x140(%rbp)    # imm = 0x190
movl $0x190, -0x13c(%rbp)    # imm = 0x190
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq -0xa8(%rbp), %rsi
callq 0x6280
cmpl $0x0, %eax
je 0x1bd7
jmp 0x26e9
movl $0x0, -0x180(%rbp)
movl -0x180(%rbp), %eax
movzwl -0xa6(%rbp), %ecx
cmpl %ecx, %eax
jae 0x1c1f
movq -0x8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x65a0
cmpl $0x0, %eax
je 0x1c0c
jmp 0x26e9
jmp 0x1c0e
movl -0x180(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x180(%rbp)
jmp 0x1be1
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq -0x138(%rbp), %rsi
callq 0x6820
cmpl $0x0, %eax
je 0x1c3c
jmp 0x26e9
cmpl $0x53, -0x14(%rbp)
jne 0x1c8c
movl $0x0, -0x180(%rbp)
movl -0x180(%rbp), %eax
movzwl -0x136(%rbp), %ecx
cmpl %ecx, %eax
jae 0x1c8a
movq -0x8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x6370
cmpl $0x0, %eax
je 0x1c77
jmp 0x26e9
jmp 0x1c79
movl -0x180(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x180(%rbp)
jmp 0x1c4c
jmp 0x1cd6
movl $0x0, -0x180(%rbp)
movl -0x180(%rbp), %eax
movzwl -0x136(%rbp), %ecx
cmpl %ecx, %eax
jae 0x1cd4
movq -0x8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x6310
cmpl $0x0, %eax
je 0x1cc1
jmp 0x26e9
jmp 0x1cc3
movl -0x180(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x180(%rbp)
jmp 0x1c96
jmp 0x1cd6
movl $0x100000, %edi         # imm = 0x100000
callq 0x1120
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x1ced
jmp 0x1d0c
leaq 0x76ee(%rip), %rdi      # 0x93e2
leaq 0x76f7(%rip), %rsi      # 0x93f2
movl $0xae, %edx
leaq 0x76f8(%rip), %rcx      # 0x93ff
callq 0x1080
movq -0x20(%rbp), %rdi
leaq 0x72ed(%rip), %rsi      # 0x9004
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
leaq 0x7302(%rip), %rsi      # 0x902b
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x8(%rcx), %eax
movl -0x13c(%rbp), %ecx
shll %ecx
addl %ecx, %eax
movl $0x14, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, -0x188(%rbp)
movq -0x10(%rbp), %rax
movl 0x14(%rax), %eax
movq -0x10(%rbp), %rcx
subl 0x10(%rcx), %eax
movl -0x140(%rbp), %ecx
shll %ecx
addl %ecx, %eax
movl $0x14, %ecx
xorl %edx, %edx
divl %ecx
movl -0x188(%rbp), %edx
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl 0xc(%rax), %r8d
movq -0x10(%rbp), %rax
subl 0x8(%rax), %r8d
movl -0x13c(%rbp), %eax
shll %eax
addl %eax, %r8d
movq -0x10(%rbp), %rax
movl 0x14(%rax), %r9d
movq -0x10(%rbp), %rax
subl 0x10(%rax), %r9d
movl -0x140(%rbp), %eax
shll %eax
addl %eax, %r9d
leaq 0x72ce(%rip), %rsi      # 0x908f
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
leaq 0x7323(%rip), %rsi      # 0x90f6
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
leaq 0x7335(%rip), %rsi      # 0x911a
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
leaq 0x7389(%rip), %rsi      # 0x9180
movb $0x0, %al
callq 0x10d0
movl $0x0, -0x17c(%rbp)
movl $0x0, -0x178(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x59c0
cmpl $0x0, %eax
jne 0x2472
jmp 0x1e2d
movq -0x8(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x5a40
cmpl $0x0, %eax
jne 0x244b
movzbl -0x160(%rbp), %eax
cmpl $0x0, %eax
jne 0x1e57
jmp 0x244b
movzbl -0x160(%rbp), %eax
cmpl $0x2, %eax
je 0x1e73
movzbl -0x160(%rbp), %eax
cmpl $0x3, %eax
jne 0x200a
cmpl $0x0, -0x174(%rbp)
je 0x1ea1
cmpl $0x0, 0xb325(%rip)      # 0xd1a8
je 0x1ea1
movq -0x20(%rbp), %rdi
leaq 0x77fd(%rip), %rsi      # 0x968d
movb $0x0, %al
callq 0x10d0
movl $0x0, -0x174(%rbp)
cmpl $0x10000, -0x148(%rbp)  # imm = 0x10000
ja 0x1f14
cmpl $0x1, -0x148(%rbp)
jb 0x1eb8
jmp 0x1ed7
leaq 0x7597(%rip), %rdi      # 0x9456
leaq 0x752c(%rip), %rsi      # 0x93f2
movl $0xd1, %edx
leaq 0x752d(%rip), %rcx      # 0x93ff
callq 0x1080
movl -0x178(%rbp), %ecx
movq -0x28(%rbp), %rax
movl -0x148(%rbp), %edx
subl $0x1, %edx
movl %edx, %edx
shlq $0x4, %rdx
addq %rdx, %rax
movl %ecx, (%rax)
movl -0x17c(%rbp), %ecx
movq -0x28(%rbp), %rax
movl -0x148(%rbp), %edx
subl $0x1, %edx
movl %edx, %edx
shlq $0x4, %rdx
addq %rdx, %rax
movl %ecx, 0x4(%rax)
cmpl $0x0, -0x174(%rbp)
jne 0x2008
cmpl $0x0, 0xb280(%rip)      # 0xd1a8
je 0x1fec
movq -0x20(%rbp), %rdi
movl -0x144(%rbp), %eax
movl %eax, %ecx
leaq 0xb19f(%rip), %rax      # 0xd0e0
movl (%rax,%rcx,4), %edx
leaq 0x7515(%rip), %rsi      # 0x9460
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
movl -0x148(%rbp), %edx
leaq 0x7515(%rip), %rsi      # 0x9478
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
movl -0x148(%rbp), %edx
leaq 0x755c(%rip), %rsi      # 0x94d7
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
leaq 0x75a6(%rip), %rsi      # 0x9533
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
movl -0x13c(%rbp), %edx
addl -0x178(%rbp), %edx
movq -0x10(%rbp), %rax
subl 0x8(%rax), %edx
movl -0x140(%rbp), %ecx
addl -0x17c(%rbp), %ecx
movq -0x10(%rbp), %rax
subl 0x10(%rax), %ecx
leaq 0x7581(%rip), %rsi      # 0x9546
movb $0x0, %al
callq 0x10d0
movl -0x144(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x144(%rbp)
cmpl $0x8, %eax
jb 0x1fea
movl $0x0, -0x144(%rbp)
jmp 0x1ffe
movq -0x20(%rbp), %rdi
leaq 0x7198(%rip), %rsi      # 0x918f
movb $0x0, %al
callq 0x10d0
movl $0x1, -0x174(%rbp)
jmp 0x203a
cmpl $0x0, -0x174(%rbp)
je 0x2038
cmpl $0x0, 0xb18e(%rip)      # 0xd1a8
jne 0x2038
movq -0x20(%rbp), %rdi
leaq 0x7666(%rip), %rsi      # 0x968d
movb $0x0, %al
callq 0x10d0
movl $0x0, -0x174(%rbp)
jmp 0x203a
movzbl -0x160(%rbp), %eax
cmpl $0x2, %eax
jne 0x20a7
movl -0x158(%rbp), %eax
addl -0x178(%rbp), %eax
movl %eax, -0x178(%rbp)
movl -0x154(%rbp), %eax
addl -0x17c(%rbp), %eax
movl %eax, -0x17c(%rbp)
movq -0x20(%rbp), %rdi
movl -0x13c(%rbp), %edx
addl -0x178(%rbp), %edx
movq -0x10(%rbp), %rax
subl 0x8(%rax), %edx
movl -0x140(%rbp), %ecx
addl -0x17c(%rbp), %ecx
movq -0x10(%rbp), %rax
subl 0x10(%rax), %ecx
leaq 0x7111(%rip), %rsi      # 0x91ac
movb $0x0, %al
callq 0x10d0
jmp 0x2377
movzbl -0x160(%rbp), %eax
cmpl $0x3, %eax
jne 0x2174
movl -0x158(%rbp), %eax
addl -0x178(%rbp), %eax
movl %eax, -0x178(%rbp)
movl -0x154(%rbp), %eax
addl -0x17c(%rbp), %eax
movl %eax, -0x17c(%rbp)
movq -0x20(%rbp), %rdi
movl -0x13c(%rbp), %edx
addl -0x178(%rbp), %edx
movq -0x10(%rbp), %rax
subl 0x8(%rax), %edx
movl -0x140(%rbp), %ecx
addl -0x17c(%rbp), %ecx
movq -0x10(%rbp), %rax
subl 0x10(%rax), %ecx
leaq 0x70a9(%rip), %rsi      # 0x91b5
movb $0x0, %al
callq 0x10d0
movl -0x150(%rbp), %eax
addl -0x178(%rbp), %eax
movl %eax, -0x178(%rbp)
movl -0x14c(%rbp), %eax
addl -0x17c(%rbp), %eax
movl %eax, -0x17c(%rbp)
movq -0x20(%rbp), %rdi
movl -0x13c(%rbp), %edx
addl -0x178(%rbp), %edx
movq -0x10(%rbp), %rax
subl 0x8(%rax), %edx
movl -0x140(%rbp), %ecx
addl -0x17c(%rbp), %ecx
movq -0x10(%rbp), %rax
subl 0x10(%rax), %ecx
leaq 0x7046(%rip), %rsi      # 0x91ae
movb $0x0, %al
callq 0x10d0
jmp 0x2375
movzbl -0x160(%rbp), %eax
cmpl $0x1, %eax
jne 0x2373
movw -0x15c(%rbp), %ax
andw $0x1, %ax
movzwl %ax, %eax
cmpl $0x0, %eax
je 0x22d3
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq -0xa8(%rbp), %rsi
callq 0x6280
cmpl $0x0, %eax
je 0x21b8
jmp 0x26e9
movl $0x0, -0x180(%rbp)
movl -0x180(%rbp), %eax
movzwl -0xa6(%rbp), %ecx
cmpl %ecx, %eax
jae 0x2200
movq -0x8(%rbp), %rdi
leaq -0xa8(%rbp), %rsi
callq 0x65a0
cmpl $0x0, %eax
je 0x21ed
jmp 0x26e9
jmp 0x21ef
movl -0x180(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x180(%rbp)
jmp 0x21c2
movq -0x8(%rbp), %rdi
movl -0x14(%rbp), %edx
leaq -0x138(%rbp), %rsi
callq 0x6820
cmpl $0x0, %eax
je 0x221d
jmp 0x26e9
cmpl $0x53, -0x14(%rbp)
jne 0x226d
movl $0x0, -0x180(%rbp)
movl -0x180(%rbp), %eax
movzwl -0x136(%rbp), %ecx
cmpl %ecx, %eax
jae 0x226b
movq -0x8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x6370
cmpl $0x0, %eax
je 0x2258
jmp 0x26e9
jmp 0x225a
movl -0x180(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x180(%rbp)
jmp 0x222d
jmp 0x22b7
movl $0x0, -0x180(%rbp)
movl -0x180(%rbp), %eax
movzwl -0x136(%rbp), %ecx
cmpl %ecx, %eax
jae 0x22b5
movq -0x8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
callq 0x6310
cmpl $0x0, %eax
je 0x22a2
jmp 0x26e9
jmp 0x22a4
movl -0x180(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x180(%rbp)
jmp 0x2277
jmp 0x22b7
movq -0x8(%rbp), %rdi
leaq -0x170(%rbp), %rsi
callq 0x59c0
cmpl $0x0, %eax
je 0x22d1
jmp 0x244b
jmp 0x22d3
cmpl $0x0, -0x174(%rbp)
jne 0x2301
cmpl $0x0, 0xaec5(%rip)      # 0xd1a8
jne 0x2301
movq -0x20(%rbp), %rdi
leaq 0x6e9f(%rip), %rsi      # 0x918f
movb $0x0, %al
callq 0x10d0
movl $0x1, -0x174(%rbp)
movw -0x15c(%rbp), %ax
shrw $0x4, %ax
andw $0x1, %ax
movzwl %ax, %eax
cmpl $0x0, %eax
je 0x2330
movl -0x158(%rbp), %eax
movl %eax, -0x178(%rbp)
movl -0x154(%rbp), %eax
movl %eax, -0x17c(%rbp)
cmpl $0x0, -0x174(%rbp)
je 0x2371
movq -0x20(%rbp), %rdi
movl -0x13c(%rbp), %edx
addl -0x178(%rbp), %edx
movq -0x10(%rbp), %rax
subl 0x8(%rax), %edx
movl -0x140(%rbp), %ecx
addl -0x17c(%rbp), %ecx
movq -0x10(%rbp), %rax
subl 0x10(%rax), %ecx
leaq 0x6e54(%rip), %rsi      # 0x91be
movb $0x0, %al
callq 0x10d0
jmp 0x2373
jmp 0x2375
jmp 0x2377
movzbl -0x160(%rbp), %eax
cmpl $0x2, %eax
je 0x2393
movzbl -0x160(%rbp), %eax
cmpl $0x3, %eax
jne 0x2446
cmpl $0x0, -0x174(%rbp)
je 0x23c1
cmpl $0x0, 0xae05(%rip)      # 0xd1a8
je 0x23c1
movq -0x20(%rbp), %rdi
leaq 0x72dd(%rip), %rsi      # 0x968d
movb $0x0, %al
callq 0x10d0
movl $0x0, -0x174(%rbp)
cmpl $0x10000, -0x148(%rbp)  # imm = 0x10000
ja 0x2444
cmpl $0x1, -0x148(%rbp)
jb 0x23d8
jmp 0x23f7
leaq 0x7077(%rip), %rdi      # 0x9456
leaq 0x700c(%rip), %rsi      # 0x93f2
movl $0x129, %edx            # imm = 0x129
leaq 0x700d(%rip), %rcx      # 0x93ff
callq 0x1080
movl -0x178(%rbp), %ecx
movq -0x28(%rbp), %rax
movl -0x148(%rbp), %edx
subl $0x1, %edx
movl %edx, %edx
shlq $0x4, %rdx
addq %rdx, %rax
movl %ecx, 0x8(%rax)
movl -0x17c(%rbp), %ecx
movq -0x28(%rbp), %rax
movl -0x148(%rbp), %edx
subl $0x1, %edx
movl %edx, %edx
shlq $0x4, %rdx
addq %rdx, %rax
movl %ecx, 0xc(%rax)
movl -0x148(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x148(%rbp)
jmp 0x2446
jmp 0x1e2d
cmpl $0x0, -0x174(%rbp)
je 0x2470
movq -0x20(%rbp), %rdi
leaq 0x722e(%rip), %rsi      # 0x968d
movb $0x0, %al
callq 0x10d0
movl $0x0, -0x174(%rbp)
jmp 0x2472
cmpl $0x0, 0xad2f(%rip)      # 0xd1a8
je 0x26ce
movl $0x0, -0x144(%rbp)
movl $0x1, -0x180(%rbp)
movl -0x180(%rbp), %eax
cmpl -0x148(%rbp), %eax
jae 0x26cc
movl $0x118, -0x184(%rbp)    # imm = 0x118
cmpl $0xa, -0x180(%rbp)
jb 0x24d1
movl -0x184(%rbp), %eax
shll %eax
movl $0x3, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, -0x184(%rbp)
jmp 0x251c
cmpl $0x64, -0x180(%rbp)
jb 0x24f4
movl -0x184(%rbp), %eax
shll $0x0, %eax
movl $0x3, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, -0x184(%rbp)
jmp 0x251a
cmpl $0x3e8, -0x180(%rbp)    # imm = 0x3E8
jb 0x2518
movl -0x184(%rbp), %eax
shll $0x0, %eax
movl $0x5, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, -0x184(%rbp)
jmp 0x251a
jmp 0x251c
movq -0x20(%rbp), %rdi
movl -0x180(%rbp), %edx
leaq 0x7031(%rip), %rsi      # 0x955e
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
movl -0x144(%rbp), %eax
movl %eax, %ecx
leaq 0xab99(%rip), %rax      # 0xd0e0
movl (%rax,%rcx,4), %edx
movl -0x13c(%rbp), %ecx
movq -0x28(%rbp), %rax
movl -0x180(%rbp), %esi
subl $0x1, %esi
movl %esi, %esi
shlq $0x4, %rsi
addq %rsi, %rax
addl (%rax), %ecx
movq -0x10(%rbp), %rax
subl 0x8(%rax), %ecx
movl -0x140(%rbp), %r8d
movq -0x28(%rbp), %rax
movl -0x180(%rbp), %esi
subl $0x1, %esi
movl %esi, %esi
shlq $0x4, %rsi
addq %rsi, %rax
addl 0x4(%rax), %r8d
movq -0x10(%rbp), %rax
subl 0x10(%rax), %r8d
leaq 0x6fe1(%rip), %rsi      # 0x9580
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
movl -0x184(%rbp), %edx
movl -0x13c(%rbp), %ecx
movq -0x28(%rbp), %rax
movl -0x180(%rbp), %esi
subl $0x1, %esi
movl %esi, %esi
shlq $0x4, %rsi
addq %rsi, %rax
addl (%rax), %ecx
movq -0x10(%rbp), %rax
subl 0x8(%rax), %ecx
movl -0x140(%rbp), %r8d
movq -0x28(%rbp), %rax
movl -0x180(%rbp), %esi
subl $0x1, %esi
movl %esi, %esi
shlq $0x4, %rsi
addq %rsi, %rax
addl 0x4(%rax), %r8d
movq -0x10(%rbp), %rax
subl 0x10(%rax), %r8d
movl -0x180(%rbp), %r9d
leaq 0x6fb9(%rip), %rsi      # 0x95c5
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
movl -0x144(%rbp), %eax
movl %eax, %ecx
leaq 0xaaba(%rip), %rax      # 0xd0e0
movl (%rax,%rcx,4), %edx
movl -0x13c(%rbp), %ecx
movq -0x28(%rbp), %rax
movl -0x180(%rbp), %esi
subl $0x1, %esi
movl %esi, %esi
shlq $0x4, %rsi
addq %rsi, %rax
addl 0x8(%rax), %ecx
movq -0x10(%rbp), %rax
subl 0x8(%rax), %ecx
movl -0x140(%rbp), %r8d
movq -0x28(%rbp), %rax
movl -0x180(%rbp), %esi
subl $0x1, %esi
movl %esi, %esi
shlq $0x4, %rsi
addq %rsi, %rax
addl 0xc(%rax), %r8d
movq -0x10(%rbp), %rax
subl 0x10(%rax), %r8d
leaq 0x6fbd(%rip), %rsi      # 0x963c
movb $0x0, %al
callq 0x10d0
movq -0x20(%rbp), %rdi
leaq 0x7002(%rip), %rsi      # 0x9693
movb $0x0, %al
callq 0x10d0
movl -0x144(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x144(%rbp)
cmpl $0x8, %eax
jb 0x26b6
movl $0x0, -0x144(%rbp)
jmp 0x26b8
movl -0x180(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x180(%rbp)
jmp 0x2493
jmp 0x26ce
movq -0x20(%rbp), %rdi
leaq 0x6aee(%rip), %rsi      # 0x91c7
movb $0x0, %al
callq 0x10d0
movq -0x28(%rbp), %rdi
callq 0x1030
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
nopw %cs:(%rax,%rax)