// File: /workspace/github_c_makefile_star2_O3/space222[P]silo/silo.cpp
// Function: silo_launch(_cairo*, nk_context*)
void silo_launch(cairo_t* ct, nk_context* nk)
{
	const struct nk_command *cmd = 0;
	nk_foreach(cmd, nk) {
    	switch (cmd->type) {
	default: printf("Unhandled cmd: %i\nexiting...", cmd->type); exit(1);
	case NK_COMMAND_NOP: break;
	case NK_COMMAND_CURVE:
		{
			nk_command_curve* cl=(nk_command_curve*) cmd;
			cairo_set_source_rgb(ct, cl->color.r/255.0f, cl->color.g/255.0f, cl->color.b/255.0f); 
			cairo_set_line_width(ct, cl->line_thickness);
			cairo_move_to(ct, cl->begin.x, cl->begin.y);
			cairo_curve_to(ct, cl->ctrl[0].x, cl->ctrl[0].y, cl->ctrl[1].x, cl->ctrl[1].y, cl->end.x, cl->end.y);
			cairo_stroke(ct);
		}break;
	case NK_COMMAND_RECT_MULTI_COLOR:
		{
			nk_command_rect_multi_color* cl=(nk_command_rect_multi_color*) cmd;
			
			cairo_pattern_t *pattern = cairo_pattern_create_mesh();
			cairo_mesh_pattern_begin_patch (pattern);
			cairo_mesh_pattern_move_to(pattern, cl->x, cl->y+cl->h);
			cairo_mesh_pattern_line_to(pattern, cl->x, cl->y);
			cairo_mesh_pattern_line_to(pattern, cl->x+cl->w, cl->y);
			cairo_mesh_pattern_line_to(pattern, cl->x+cl->w, cl->y+cl->h);
			//cairo_mesh_pattern_line_to(pattern, cl->x, cl->y+cl->h);

			cairo_mesh_pattern_set_corner_color_rgba(pattern, 3, 
				cl->right.r/255.0f, cl->right.g/255.0f, cl->right.b/255.0f, cl->right.a/255.0f);
			cairo_mesh_pattern_set_corner_color_rgba(pattern, 2, 
				cl->top.r/255.0f, cl->top.g/255.0f, cl->top.b/255.0f, cl->top.a/255.0f);
			cairo_mesh_pattern_set_corner_color_rgba(pattern, 1, 
				cl->left.r/255.0f, cl->left.g/255.0f, cl->left.b/255.0f, cl->left.a/255.0f);
			cairo_mesh_pattern_set_corner_color_rgba(pattern, 0, 
				cl->bottom.r/255.0f, cl->bottom.g/255.0f, cl->bottom.b/255.0f, cl->bottom.a/255.0f);
			cairo_mesh_pattern_end_patch(pattern);

			cairo_set_source(ct, pattern);
			cairo_rectangle(ct, cl->x, cl->y, cl->w, cl->h);
			cairo_fill(ct);
			cairo_pattern_destroy(pattern);
		}break;
	case NK_COMMAND_ARC_FILLED:
		{
			nk_command_arc_filled* cl=(nk_command_arc_filled*) cmd;
			cairo_set_source_rgb(ct, cl->color.r/255.0f, cl->color.g/255.0f, cl->color.b/255.0f); 
			cairo_move_to(ct, cl->cx, cl->cy);
			cairo_arc(ct, cl->cx, cl->cy, cl->r, cl->a[0], cl->a[1]);
			cairo_fill(ct);			
		}break;
	case NK_COMMAND_ARC:
		{
			nk_command_arc* cl =(nk_command_arc*) cmd;
			cairo_set_source_rgb(ct, cl->color.r/255.0f, cl->color.g/255.0f, cl->color.b/255.0f); 
			cairo_set_line_width(ct, cl->line_thickness);
			cairo_move_to(ct, cl->cx, cl->cy);
			cairo_arc(ct, cl->cx, cl->cy, cl->r, cl->a[0], cl->a[1]);
			cairo_stroke(ct);
		}break;
	case NK_COMMAND_CIRCLE:
		{
			nk_command_circle* cl =(nk_command_circle*) cmd;
			cairo_set_source_rgb(ct, cl->color.r/255.0f, cl->color.g/255.0f, cl->color.b/255.0f); 
			cairo_set_line_width(ct, cl->line_thickness);
			cairo_move_to(ct, cl->x + cl->w/2, cl->y + cl->w/2);
			cairo_arc(ct, cl->x + cl->w/2, cl->y + cl->w/2, cl->w/2, 0, 6.28f);
			cairo_stroke(ct);
		}break;
	case NK_COMMAND_CIRCLE_FILLED:
		{
			nk_command_circle_filled* cl =(nk_command_circle_filled*) cmd;
			cairo_set_source_rgb(ct, cl->color.r/255.0f, cl->color.g/255.0f, cl->color.b/255.0f); 
			cairo_move_to(ct, cl->x + cl->w/2, cl->y + cl->w/2);
			cairo_arc(ct, cl->x + cl->w/2, cl->y + cl->w/2, cl->w/2, 0, 6.28f);
			cairo_fill(ct);
		}break;
	case NK_COMMAND_TEXT:
		{
			nk_command_text* txt =(nk_command_text*) cmd;
			cairo_set_source_rgb(ct, txt->background.r/255.0f, txt->background.g/255.0f, txt->background.b/255.0f); 
			cairo_rectangle(ct, txt->x, txt->y, txt->w, txt->h);
			cairo_fill(ct);
			pango_layout_set_text(layout, (char*)&txt->string, txt->length);
			cairo_set_source_rgb(ct, txt->foreground.r/255.0f, txt->foreground.g/255.0f, txt->foreground.b/255.0f); 
			cairo_move_to(ct, txt->x, txt->y);
			pango_cairo_show_layout(ct, layout);
		}break;
	case NK_COMMAND_SCISSOR:
		{
			nk_command_scissor* sc =(nk_command_scissor*) cmd;
			cairo_reset_clip(ct);
			cairo_rectangle(ct, sc->x, sc->y, sc->w, sc->h);
			cairo_clip(ct);
		}break;
   	case NK_COMMAND_LINE:
        	{
			nk_command_line* cl =(nk_command_line*) cmd;
			cairo_set_source_rgb(ct, cl->color.r/255.0f, cl->color.g/255.0f, cl->color.b/255.0f); 
			cairo_set_line_width(ct, cl->line_thickness);
			cairo_move_to(ct, cl->begin.x, cl->begin.y);
			cairo_line_to(ct, cl->end.x, cl->end.y);
			cairo_stroke(ct);
        	}break;
	case NK_COMMAND_RECT:
	        {
			nk_command_rect* cr =(nk_command_rect*) cmd;
			cairo_set_line_width(ct, cr->line_thickness);
			cairo_set_source_rgb(ct, cr->color.r/255.0f, cr->color.g/255.0f, cr->color.b/255.0f);
			cairo_rectangle(ct, cr->x, cr->y, cr->w, cr->h);
			cairo_stroke(ct);
		}break;
	case NK_COMMAND_RECT_FILLED:
		{
			nk_command_rect_filled* cr =(nk_command_rect_filled*) cmd;
			cairo_set_source_rgb(ct, cr->color.r/255.0f, cr->color.g/255.0f, cr->color.b/255.0f);
			cairo_rectangle(ct, cr->x, cr->y, cr->w, cr->h);
			cairo_fill(ct);
		}break;
	case NK_COMMAND_TRIANGLE:
		{
			nk_command_triangle* cr =(nk_command_triangle*) cmd;
			cairo_set_source_rgb(ct, cr->color.r/255.0f, cr->color.g/255.0f, cr->color.b/255.0f);
			cairo_set_line_width(ct, cr->line_thickness);
			cairo_move_to(ct, cr->a.x, cr->a.y);
			cairo_line_to(ct, cr->b.x, cr->b.y);
			cairo_line_to(ct, cr->c.x, cr->c.y);
			cairo_line_to(ct, cr->a.x, cr->a.y);
			cairo_stroke(ct);
		}break;
	case NK_COMMAND_TRIANGLE_FILLED:
		{
			nk_command_triangle_filled* cr =(nk_command_triangle_filled*) cmd;
			cairo_set_source_rgb(ct, cr->color.r/255.0f, cr->color.g/255.0f, cr->color.b/255.0f);
			cairo_move_to(ct, cr->a.x, cr->a.y);
			cairo_line_to(ct, cr->b.x, cr->b.y);
			cairo_line_to(ct, cr->c.x, cr->c.y);
			cairo_line_to(ct, cr->a.x, cr->a.y);
			cairo_fill(ct);
		}break;
	case NK_COMMAND_POLYGON_FILLED:
		{
			nk_command_polygon_filled* cr =(nk_command_polygon_filled*) cmd;
			cairo_set_source_rgb(ct, cr->color.r/255.0f, cr->color.g/255.0f, cr->color.b/255.0f);
			struct nk_vec2i* pts =(struct nk_vec2i*) &cr->points[0];
			cairo_move_to(ct, pts[0].x, pts[0].y);
			for(int ptindex = 1; ptindex < cr->point_count; ++ptindex) cairo_line_to(ct, pts[ptindex].x, pts[ptindex].y);
			cairo_line_to(ct, pts[0].x, pts[0].y);
			cairo_fill(ct);
		}break;
	case NK_COMMAND_POLYGON:
		{
			nk_command_polygon* cr=(nk_command_polygon*) cmd;
			cairo_set_source_rgb(ct, cr->color.r/255.0f, cr->color.g/255.0f, cr->color.b/255.0f);
			cairo_set_line_width(ct, cr->line_thickness);
			struct nk_vec2i* pts =(struct nk_vec2i*) &cr->points[0];
			cairo_move_to(ct, pts[0].x, pts[0].y);
			for(int ptindex = 1; ptindex < cr->point_count; ++ptindex) cairo_line_to(ct, pts[ptindex].x, pts[ptindex].y);
			cairo_line_to(ct, pts[0].x, pts[0].y);
			cairo_stroke(ct);
		}break;
	case NK_COMMAND_POLYLINE:
		{
			nk_command_polyline* cr =(nk_command_polyline*) cmd;
			cairo_set_source_rgb(ct, cr->color.r/255.0f, cr->color.g/255.0f, cr->color.b/255.0f);
			cairo_set_line_width(ct, cr->line_thickness);
			struct nk_vec2i* pts =(struct nk_vec2i*) &cr->points[0];
			cairo_move_to(ct, pts[0].x, pts[0].y);
			for(int ptindex = 1; ptindex < cr->point_count; ++ptindex) cairo_line_to(ct, pts[ptindex].x, pts[ptindex].y);
			//cairo_line_to(ct, pts[0].x, pts[0].y); // looks like polyline doesn't connect, otherwise would be same
								 // as stroked polygon
			cairo_stroke(ct);
		}break;
	} //end of cmd switch
	} //end of nk_foreach

	return;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rsi, %rbx
movq %rdi, %r14
movq %rsi, %rdi
callq 0xb0dc
testq %rax, %rax
je 0x3783
movq %rax, %r15
leaq 0x206f6(%rip), %r13     # 0x23098
movl (%r15), %esi
cmpq $0x10, %rsi
ja 0x378d
movslq (%r13,%rsi,4), %rax
addq %r13, %rax
jmpq *%rax
movq %r14, %rdi
callq 0x2280
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movzwl 0x14(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movzwl 0x16(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2sd %eax, %xmm3
movq %r14, %rdi
callq 0x2150
movq %r14, %rdi
callq 0x2260
jmp 0x376c
movzbl 0x18(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x2066e(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x19(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x1a(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movswl 0x20(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x22(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movzwl 0x24(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movzwl 0x26(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2sd %eax, %xmm3
movq %r14, %rdi
callq 0x2150
movq %r14, %rdi
callq 0x2270
movq 0x2f737(%rip), %rdi     # 0x321d0
leaq 0x30(%r15), %rsi
movl 0x2c(%r15), %edx
callq 0x2030
movzbl 0x1c(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x205ce(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1d(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x1e(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movswl 0x20(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x22(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movq 0x2f6b7(%rip), %rsi     # 0x321d0
movq %r14, %rdi
callq 0x2240
jmp 0x376c
movzbl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x2054e(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x11(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x12(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movswl 0x16(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x18(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
cmpw $0x2, 0x14(%r15)
jb 0x2bd7
movl $0x7, %r12d
movswl -0x2(%r15,%r12,4), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl (%r15,%r12,4), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
movzwl 0x14(%r15), %eax
leaq 0x1(%r12), %rcx
addq $-0x5, %r12
cmpq %rax, %r12
movq %rcx, %r12
jb 0x2ba0
movswl 0x16(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x18(%r15), %eax
jmp 0x2e1d
movzbl 0x1e(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x20487(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1f(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x20(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movzwl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r14, %rdi
callq 0x21b0
movswl 0x12(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x14(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movswl 0x16(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x18(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
movswl 0x1a(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x1c(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
movswl 0x12(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x14(%r15), %eax
jmp 0x3350
movzwl 0x12(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r14, %rdi
callq 0x21b0
movzbl 0x1c(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x2039d(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1d(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x1e(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movswl 0x14(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x16(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movzwl 0x18(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movzwl 0x1a(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2sd %eax, %xmm3
movq %r14, %rdi
callq 0x2150
jmp 0x335f
movzbl 0x1c(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x20314(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1d(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x1e(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movswl 0x14(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x16(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
movswl 0x18(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x1a(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
jmp 0x3764
movzbl 0x20(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x20243(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x21(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x22(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movzwl 0x16(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r14, %rdi
callq 0x21b0
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movzwl 0x14(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0x18(%r15), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x1c(%r15), %xmm4
movq %r14, %rdi
jmp 0x31e9
movzbl 0x1a(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x20185(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1b(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x1c(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movzwl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r14, %rdi
callq 0x21b0
movswl 0x12(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x14(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movswl 0x16(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x18(%r15), %eax
jmp 0x3350
movzbl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x200ef(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x11(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x12(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movzwl 0x14(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r14, %rdi
callq 0x21b0
movswl 0x18(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x1a(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
cmpw $0x2, 0x16(%r15)
jb 0x335f
xorl %r12d, %r12d
movswl 0x1c(%r15,%r12,4), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x1e(%r15,%r12,4), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
movzwl 0x16(%r15), %eax
leaq 0x1(%r12), %rcx
addq $0x2, %r12
cmpq %rax, %r12
movq %rcx, %r12
jb 0x3014
jmp 0x335f
movzbl 0x22(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x20023(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x23(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x24(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movzwl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r14, %rdi
callq 0x21b0
movswl 0x12(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x14(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movswl 0x1a(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x1c(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movswl 0x1e(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movswl 0x20(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2sd %eax, %xmm3
movswl 0x16(%r15), %eax
xorps %xmm4, %xmm4
cvtsi2sd %eax, %xmm4
movswl 0x18(%r15), %eax
xorps %xmm5, %xmm5
cvtsi2sd %eax, %xmm5
movq %r14, %rdi
callq 0x2220
jmp 0x335f
movzbl 0x1a(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x1ff4e(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1b(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x1c(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movzwl 0x14(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r14, %rdi
callq 0x21b0
movswl 0x10(%r15), %eax
movzwl 0x16(%r15), %ecx
shrl %ecx
addl %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
addl %ecx, %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movswl 0x10(%r15), %eax
movzwl 0x16(%r15), %ecx
shrl %ecx
addl %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
addl %ecx, %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
xorps %xmm2, %xmm2
cvtsi2sd %ecx, %xmm2
xorps %xmm3, %xmm3
movq %r14, %rdi
movsd 0x1fea7(%rip), %xmm4    # 0x23090
callq 0x2140
jmp 0x335f
movzbl 0x1a(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x1fe81(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1b(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x1c(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movswl 0x12(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x14(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movzwl 0x16(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movzwl 0x18(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2sd %eax, %xmm3
movq %r14, %rdi
callq 0x2150
jmp 0x3764
movzbl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x1fdf8(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x11(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x12(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movzwl 0x14(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movq %r14, %rdi
callq 0x21b0
movswl 0x18(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x1a(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
cmpw $0x2, 0x16(%r15)
jb 0x333f
xorl %r12d, %r12d
movswl 0x1c(%r15,%r12,4), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x1e(%r15,%r12,4), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
movzwl 0x16(%r15), %eax
leaq 0x1(%r12), %rcx
addq $0x2, %r12
cmpq %rax, %r12
movq %rcx, %r12
jb 0x3307
movswl 0x18(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x1a(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2130
movq %r14, %rdi
callq 0x21c0
jmp 0x376c
callq 0x2080
movq %rax, %r12
movq %rax, %rdi
callq 0x2320
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
movzwl 0x16(%r15), %ecx
addl %eax, %ecx
xorps %xmm1, %xmm1
cvtsi2sd %ecx, %xmm1
movq %r12, %rdi
callq 0x2090
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r12, %rdi
callq 0x2110
movswl 0x10(%r15), %eax
movzwl 0x14(%r15), %ecx
addl %eax, %ecx
xorps %xmm0, %xmm0
cvtsi2sd %ecx, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r12, %rdi
callq 0x2110
movswl 0x10(%r15), %eax
movzwl 0x14(%r15), %ecx
addl %eax, %ecx
xorps %xmm0, %xmm0
cvtsi2sd %ecx, %xmm0
movswl 0x12(%r15), %eax
movzwl 0x16(%r15), %ecx
addl %eax, %ecx
xorps %xmm1, %xmm1
cvtsi2sd %ecx, %xmm1
movq %r12, %rdi
callq 0x2110
movzbl 0x24(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movzbl 0x25(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movss 0x1fc50(%rip), %xmm4    # 0x23088
divss %xmm4, %xmm0
cvtss2sd %xmm0, %xmm0
divss %xmm4, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x26(%r15), %eax
cvtsi2ss %eax, %xmm2
movzbl 0x27(%r15), %eax
cvtsi2ss %eax, %xmm3
divss %xmm4, %xmm2
cvtss2sd %xmm2, %xmm2
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
movq %r12, %rdi
movl $0x3, %esi
callq 0x2160
movzbl 0x1c(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movzbl 0x1d(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movss 0x1fbf1(%rip), %xmm4    # 0x23088
divss %xmm4, %xmm0
cvtss2sd %xmm0, %xmm0
divss %xmm4, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1e(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
movzbl 0x1f(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2ss %eax, %xmm3
divss %xmm4, %xmm2
cvtss2sd %xmm2, %xmm2
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
movq %r12, %rdi
movl $0x2, %esi
callq 0x2160
movzbl 0x18(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movzbl 0x19(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movss 0x1fb8c(%rip), %xmm4    # 0x23088
divss %xmm4, %xmm0
cvtss2sd %xmm0, %xmm0
divss %xmm4, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1a(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
movzbl 0x1b(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2ss %eax, %xmm3
divss %xmm4, %xmm2
cvtss2sd %xmm2, %xmm2
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
movq %r12, %rdi
movl $0x1, %esi
callq 0x2160
movzbl 0x20(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movzbl 0x21(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movss 0x1fb27(%rip), %xmm2    # 0x23088
divss %xmm2, %xmm0
cvtss2sd %xmm0, %xmm0
divss %xmm2, %xmm1
movaps %xmm2, %xmm4
cvtss2sd %xmm1, %xmm1
movzbl 0x22(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
movzbl 0x23(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2ss %eax, %xmm3
divss %xmm4, %xmm2
cvtss2sd %xmm2, %xmm2
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
movq %r12, %rdi
xorl %esi, %esi
callq 0x2160
movq %r12, %rdi
callq 0x2040
movq %r14, %rdi
movq %r12, %rsi
callq 0x2300
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movzwl 0x14(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
movzwl 0x16(%r15), %eax
xorps %xmm3, %xmm3
cvtsi2sd %eax, %xmm3
movq %r14, %rdi
callq 0x2150
movq %r14, %rdi
callq 0x2270
movq %r12, %rdi
callq 0x22d0
jmp 0x376c
movzbl 0x20(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x1fa6e(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x21(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x22(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movswl 0x10(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movzwl 0x14(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2sd %eax, %xmm2
xorps %xmm3, %xmm3
cvtss2sd 0x18(%r15), %xmm3
xorps %xmm4, %xmm4
cvtss2sd 0x1c(%r15), %xmm4
movq %r14, %rdi
jmp 0x375f
movzbl 0x18(%r15), %eax
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss 0x1f9c4(%rip), %xmm3    # 0x23088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x19(%r15), %eax
xorps %xmm1, %xmm1
cvtsi2ss %eax, %xmm1
movzbl 0x1a(%r15), %eax
xorps %xmm2, %xmm2
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
movq %r14, %rdi
callq 0x22b0
movswl 0x10(%r15), %eax
movzwl 0x14(%r15), %ecx
shrl %ecx
addl %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
addl %ecx, %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
movq %r14, %rdi
callq 0x2210
movswl 0x10(%r15), %eax
movzwl 0x14(%r15), %ecx
shrl %ecx
addl %ecx, %eax
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
movswl 0x12(%r15), %eax
addl %ecx, %eax
xorps %xmm1, %xmm1
cvtsi2sd %eax, %xmm1
xorps %xmm2, %xmm2
cvtsi2sd %ecx, %xmm2
xorps %xmm3, %xmm3
movq %r14, %rdi
movsd 0x1f931(%rip), %xmm4    # 0x23090
callq 0x2140
movq %r14, %rdi
callq 0x2270
movq %rbx, %rdi
movq %r15, %rsi
callq 0xb31f
movq %rax, %r15
testq %rax, %rax
jne 0x29a2
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
leaq 0x1f948(%rip), %rdi     # 0x230dc
xorl %eax, %eax
callq 0x2050
movl $0x1, %edi
callq 0x21e0