// File: /workspace/github_c_makefile_star2_O1/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 0x3f43(%rip), %rdi      # 0x6753
xorl %eax, %eax
callq 0x1080
movzbl 0x4(%rbx), %eax
leal -0x10(%rax), %ecx
cmpl $0x33, %ecx
ja 0x294c
movabsq $0xf000000000000, %rdx  # imm = 0xF000000000000
btq %rcx, %rdx
jae 0x2875
movzwl 0x10(%rbx), %esi
leaq 0x3f82(%rip), %rdi      # 0x67c4
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x1080
leaq 0x3f87(%rip), %rdi      # 0x67da
xorl %eax, %eax
callq 0x1080
addq $0x14, %rbx
movq %rbx, %rdi
callq 0x2731
movl $0xa, %edi
callq 0x1040
jmp 0x299c
movl $0xd, %edx
btq %rcx, %rdx
jae 0x294c
leaq 0x3f20(%rip), %rdi      # 0x67ab
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x1080
leaq 0x10(%rbx), %rdi
callq 0x2731
movl $0xa, %edi
callq 0x1040
leaq 0x4458(%rip), %rdi      # 0x6d07
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 0x3738(%rip), %xmm0     # 0x6010
leaq 0x3f12(%rip), %rdi      # 0x67f1
movb $0x1, %al
callq 0x1080
cmpb $0x10, 0x2c(%rbx)
jb 0x299c
leaq 0x31(%rbx), %r12
xorl %r14d, %r14d
leaq 0x3f41(%rip), %r15      # 0x683f
xorl %r13d, %r13d
movzbl -0x4(%r12), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
divsd 0x370a(%rip), %xmm0     # 0x6020
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
movzbl 0x2c(%rbx), %eax
shrl $0x4, %eax
addq $0x5, %r12
cmpq %rax, %r13
jb 0x2901
jmp 0x299c
testl %eax, %eax
jne 0x298a
testb $0x1, (%rbx)
leaq 0x3e4a(%rip), %rax      # 0x67a4
leaq 0x3e3e(%rip), %rsi      # 0x679f
cmoveq %rax, %rsi
movzbl 0x10(%rbx), %edx
movzbl 0x11(%rbx), %ecx
movzbl 0x12(%rbx), %r8d
movzbl 0x13(%rbx), %r9d
leaq 0x3dfc(%rip), %rdi      # 0x677a
xorl %r14d, %r14d
xorl %eax, %eax
callq 0x1080
jmp 0x299c
leaq 0x4388(%rip), %rdi      # 0x6d19
callq 0x1070
movl $0xffffffff, %r14d      # imm = 0xFFFFFFFF
movl %r14d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop