// File: /workspace/github_c_makefile_star2_O2/joncampbell123[P]swfhax/c4_swfdump.c
// Function: dump_FILLSTYLE_nr
static int dump_FILLSTYLE_nr(swf_FILLSTYLEARRAY_read *nfo,unsigned int i) {
	printf("      FillStyleType[%u]:    0x%02x %s\n",i,nfo->FillStyleType,nfo->FillStyleType_str);
	switch (nfo->FillStyleType) {
		case swf_fillstyle_solid:
			printf("        Color: %s %u / %u / %u / %u\n",
				nfo->color_rgba ? "RGBA" : "RGB(A)",
				nfo->fsinfo.solid.Color.Red,
				nfo->fsinfo.solid.Color.Green,
				nfo->fsinfo.solid.Color.Blue,
				nfo->fsinfo.solid.Color.Alpha);
			break;
		case swf_fillstyle_linear_gradient_fill:
		case swf_fillstyle_radial_gradient_fill:
		case swf_fillstyle_focal_radial_gradient_fill:
			/* NTS: Reminder: Flash gradients are based on a virtual coordinate system where
			 *      the -16384,-16384 to 16384,16384 represents -1.0 to 1.0 respectively,
			 *      and you scale it to fit an object by scaling it down from 16384 to the
			 *      width of the object. */
			printf("        GradientMatrix: ");
			dump_MATRIX(&nfo->fsinfo.gradient.GradientMatrix);
			printf("\n");
			printf("        Gradient:\n");
			dump_GRADIENT(&nfo->fsinfo.gradient.Gradient);
			break;
		case swf_fillstyle_repeating_bitmap_fill:
		case swf_fillstyle_clipped_bitmap_fill:
		case swf_fillstyle_non_smoothed_repeating_bitmap_fill:
		case swf_fillstyle_non_smoothed_clipped_bitmap_fill:
			printf("        BitmapId: %u\n",nfo->fsinfo.bitmap.BitmapId);
			printf("        BitmapMatrix: ");
			dump_MATRIX(&nfo->fsinfo.bitmap.BitmapMatrix);
			printf("\n");
			break;
		default:
			printf("!!!! FILLSTYLE NOT IMPLEMENTED\n");
			return -1;
	};

	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movzbl 0x4(%rdi), %edx
movq 0x8(%rdi), %rcx
leaq 0x340f(%rip), %rdi      # 0x5753
xorl %eax, %eax
callq 0x1080
movzbl 0x4(%rbx), %eax
leal -0x10(%rax), %ecx
cmpl $0x33, %ecx
ja 0x247b
movabsq $0xf000000000000, %rdx  # imm = 0xF000000000000
btq %rcx, %rdx
jae 0x23b4
movzwl 0x10(%rbx), %esi
leaq 0x344e(%rip), %rdi      # 0x57c4
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x1080
leaq 0x3453(%rip), %rdi      # 0x57da
xorl %eax, %eax
callq 0x1080
addq $0x14, %rbx
movq %rbx, %rdi
callq 0x226f
pushq $0xa
popq %rdi
callq 0x1040
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0xd
popq %rdx
btq %rcx, %rdx
jae 0x247b
leaq 0x33e3(%rip), %rdi      # 0x57ab
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x1080
leaq 0x10(%rbx), %rdi
callq 0x226f
pushq $0xa
popq %rdi
callq 0x1040
leaq 0x391d(%rip), %rdi      # 0x5d07
callq 0x1070
movzbl 0x2c(%rbx), %ecx
movl %ecx, %esi
andl $0x3, %esi
movl %ecx, %edx
shrl $0x2, %edx
andl $0x3, %edx
shrl $0x4, %ecx
movswl 0x7e(%rbx), %eax
cvtsi2sd %eax, %xmm0
mulsd 0x2bfd(%rip), %xmm0     # 0x5010
leaq 0x33d7(%rip), %rdi      # 0x57f1
movb $0x1, %al
callq 0x1080
leaq 0x31(%rbx), %r12
leaq 0x3413(%rip), %r15      # 0x583f
xorl %r13d, %r13d
movzbl 0x2c(%rbx), %eax
shrl $0x4, %eax
cmpq %rax, %r13
jae 0x23a2
movzbl -0x4(%r12), %eax
cvtsi2sd %eax, %xmm0
divsd 0x2bcf(%rip), %xmm0     # 0x5020
movzbl -0x3(%r12), %esi
movzbl -0x2(%r12), %edx
movzbl -0x1(%r12), %ecx
movzbl (%r12), %r8d
movq %r15, %rdi
movb $0x1, %al
callq 0x1080
incq %r13
addq $0x5, %r12
jmp 0x242f
testl %eax, %eax
jne 0x24bc
testb $0x1, (%rbx)
leaq 0x331b(%rip), %rax      # 0x57a4
leaq 0x330f(%rip), %rsi      # 0x579f
cmoveq %rax, %rsi
movzbl 0x10(%rbx), %edx
movzbl 0x11(%rbx), %ecx
movzbl 0x12(%rbx), %r8d
movzbl 0x13(%rbx), %r9d
leaq 0x32cd(%rip), %rdi      # 0x577a
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x1080
jmp 0x23a2
leaq 0x3856(%rip), %rdi      # 0x5d19
callq 0x1070
pushq $-0x1
popq %r14
jmp 0x23a2
nopl (%rax)