// File: /workspace/github_c_makefile_star2_O0/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:
subq $0x108, %rsp            # imm = 0x108
movq %rdi, 0x100(%rsp)
movq %rsi, 0xf8(%rsp)
movq $0x0, 0xf0(%rsp)
movq 0xf8(%rsp), %rdi
callq 0x13be0
movq %rax, 0xf0(%rsp)
cmpq $0x0, 0xf0(%rsp)
je 0x3e2c
movq 0xf0(%rsp), %rax
movl (%rax), %eax
movq %rax, 0x30(%rsp)
subq $0x10, %rax
ja 0x2bf1
movq 0x30(%rsp), %rax
leaq 0x424b0(%rip), %rcx     # 0x45098
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0xf0(%rsp), %rax
movl (%rax), %esi
leaq 0x424da(%rip), %rdi     # 0x450dc
movb $0x0, %al
callq 0x2050
movl $0x1, %edi
callq 0x21e0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xe8(%rsp)
movq 0x100(%rsp), %rdi
movq 0xe8(%rsp), %rax
movzbl 0x22(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x42440(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x23(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x24(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0xe8(%rsp), %rax
movzwl 0x10(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x21b0
movq 0x100(%rsp), %rdi
movq 0xe8(%rsp), %rax
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0xe8(%rsp), %rax
movswl 0x1a(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x1c(%rax), %ecx
cvtsi2sd %ecx, %xmm1
movswl 0x1e(%rax), %ecx
cvtsi2sd %ecx, %xmm2
movswl 0x20(%rax), %ecx
cvtsi2sd %ecx, %xmm3
movswl 0x16(%rax), %ecx
cvtsi2sd %ecx, %xmm4
movswl 0x18(%rax), %eax
cvtsi2sd %eax, %xmm5
callq 0x2220
movq 0x100(%rsp), %rdi
callq 0x21c0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xe0(%rsp)
callq 0x2080
movq %rax, 0xd8(%rsp)
movq 0xd8(%rsp), %rdi
callq 0x2320
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rcx
movswl 0x10(%rcx), %eax
cvtsi2sd %eax, %xmm0
movswl 0x12(%rcx), %eax
movzwl 0x16(%rcx), %ecx
addl %ecx, %eax
cvtsi2sd %eax, %xmm1
callq 0x2090
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2110
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rax
movswl 0x10(%rax), %ecx
movzwl 0x14(%rax), %edx
addl %edx, %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2110
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rcx
movswl 0x10(%rcx), %eax
movzwl 0x14(%rcx), %edx
addl %edx, %eax
cvtsi2sd %eax, %xmm0
movswl 0x12(%rcx), %eax
movzwl 0x16(%rcx), %ecx
addl %ecx, %eax
cvtsi2sd %eax, %xmm1
callq 0x2110
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rax
movzbl 0x24(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x42284(%rip), %xmm4    # 0x45088
movss %xmm4, 0x2c(%rsp)
divss %xmm4, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x25(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm4, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x26(%rax), %ecx
cvtsi2ss %ecx, %xmm2
divss %xmm4, %xmm2
cvtss2sd %xmm2, %xmm2
movzbl 0x27(%rax), %eax
cvtsi2ss %eax, %xmm3
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
movl $0x3, %esi
callq 0x2160
movss 0x2c(%rsp), %xmm4
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rax
movzbl 0x1c(%rax), %ecx
cvtsi2ss %ecx, %xmm0
divss %xmm4, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1d(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm4, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1e(%rax), %ecx
cvtsi2ss %ecx, %xmm2
divss %xmm4, %xmm2
cvtss2sd %xmm2, %xmm2
movzbl 0x1f(%rax), %eax
cvtsi2ss %eax, %xmm3
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
movl $0x2, %esi
callq 0x2160
movss 0x2c(%rsp), %xmm4
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rax
movzbl 0x18(%rax), %ecx
cvtsi2ss %ecx, %xmm0
divss %xmm4, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x19(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm4, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1a(%rax), %ecx
cvtsi2ss %ecx, %xmm2
divss %xmm4, %xmm2
cvtss2sd %xmm2, %xmm2
movzbl 0x1b(%rax), %eax
cvtsi2ss %eax, %xmm3
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
movl $0x1, %esi
callq 0x2160
movss 0x2c(%rsp), %xmm4
movq 0xd8(%rsp), %rdi
movq 0xe0(%rsp), %rax
movzbl 0x20(%rax), %ecx
cvtsi2ss %ecx, %xmm0
divss %xmm4, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x21(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm4, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x22(%rax), %ecx
cvtsi2ss %ecx, %xmm2
divss %xmm4, %xmm2
cvtss2sd %xmm2, %xmm2
movzbl 0x23(%rax), %eax
cvtsi2ss %eax, %xmm3
divss %xmm4, %xmm3
cvtss2sd %xmm3, %xmm3
xorl %esi, %esi
callq 0x2160
movq 0xd8(%rsp), %rdi
callq 0x2040
movq 0x100(%rsp), %rdi
movq 0xd8(%rsp), %rsi
callq 0x2300
movq 0x100(%rsp), %rdi
movq 0xe0(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm1
movzwl 0x14(%rax), %ecx
cvtsi2sd %ecx, %xmm2
movzwl 0x16(%rax), %eax
cvtsi2sd %eax, %xmm3
callq 0x2150
movq 0x100(%rsp), %rdi
callq 0x2270
movq 0xd8(%rsp), %rdi
callq 0x22d0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xd0(%rsp)
movq 0x100(%rsp), %rdi
movq 0xd0(%rsp), %rax
movzbl 0x20(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x42079(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x21(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x22(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0xd0(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0xd0(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm1
movzwl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm2
movq 0xd0(%rsp), %rax
movss 0x18(%rax), %xmm3
cvtss2sd %xmm3, %xmm3
movq 0xd0(%rsp), %rax
movss 0x1c(%rax), %xmm4
cvtss2sd %xmm4, %xmm4
callq 0x2140
movq 0x100(%rsp), %rdi
callq 0x2270
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xc8(%rsp)
movq 0x100(%rsp), %rdi
movq 0xc8(%rsp), %rax
movzbl 0x20(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x41f96(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x21(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x22(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0xc8(%rsp), %rax
movzwl 0x16(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x21b0
movq 0x100(%rsp), %rdi
movq 0xc8(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0xc8(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm1
movzwl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm2
movq 0xc8(%rsp), %rax
movss 0x18(%rax), %xmm3
cvtss2sd %xmm3, %xmm3
movq 0xc8(%rsp), %rax
movss 0x1c(%rax), %xmm4
cvtss2sd %xmm4, %xmm4
callq 0x2140
movq 0x100(%rsp), %rdi
callq 0x21c0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xc0(%rsp)
movq 0x100(%rsp), %rdi
movq 0xc0(%rsp), %rax
movzbl 0x1a(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x41e96(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1b(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1c(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0xc0(%rsp), %rax
movzwl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x21b0
movq 0x100(%rsp), %rdi
movq 0xc0(%rsp), %rax
movswl 0x10(%rax), %eax
movl %eax, 0x1c(%rsp)
movq 0xc0(%rsp), %rax
movzwl 0x16(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x1c(%rsp), %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm0
movq 0xc0(%rsp), %rax
movswl 0x12(%rax), %eax
movl %eax, 0x20(%rsp)
movq 0xc0(%rsp), %rax
movzwl 0x16(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x20(%rsp), %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0xc0(%rsp), %rax
movswl 0x10(%rax), %eax
movl %eax, 0x24(%rsp)
movq 0xc0(%rsp), %rax
movzwl 0x16(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x24(%rsp), %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm0
movq 0xc0(%rsp), %rax
movswl 0x12(%rax), %eax
movl %eax, 0x28(%rsp)
movq 0xc0(%rsp), %rax
movzwl 0x16(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x28(%rsp), %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm1
movq 0xc0(%rsp), %rax
movzwl 0x16(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cvtsi2sd %eax, %xmm2
xorps %xmm3, %xmm3
movsd 0x41d5c(%rip), %xmm4    # 0x45090
callq 0x2140
movq 0x100(%rsp), %rdi
callq 0x21c0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xb8(%rsp)
movq 0x100(%rsp), %rdi
movq 0xb8(%rsp), %rax
movzbl 0x18(%rax), %eax
cvtsi2ss %eax, %xmm0
movss 0x41d0d(%rip), %xmm1    # 0x45088
divss %xmm1, %xmm0
cvtss2sd %xmm0, %xmm0
movq 0xb8(%rsp), %rax
movzbl 0x19(%rax), %eax
cvtsi2ss %eax, %xmm1
movss 0x41ced(%rip), %xmm2    # 0x45088
divss %xmm2, %xmm1
cvtss2sd %xmm1, %xmm1
movq 0xb8(%rsp), %rax
movzbl 0x1a(%rax), %eax
cvtsi2ss %eax, %xmm2
movss 0x41ccd(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0xb8(%rsp), %rax
movswl 0x10(%rax), %eax
movl %eax, 0xc(%rsp)
movq 0xb8(%rsp), %rax
movzwl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0xc(%rsp), %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm0
movq 0xb8(%rsp), %rax
movswl 0x12(%rax), %eax
movl %eax, 0x10(%rsp)
movq 0xb8(%rsp), %rax
movzwl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x10(%rsp), %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0xb8(%rsp), %rax
movswl 0x10(%rax), %eax
movl %eax, 0x14(%rsp)
movq 0xb8(%rsp), %rax
movzwl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x14(%rsp), %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm0
movq 0xb8(%rsp), %rax
movswl 0x12(%rax), %eax
movl %eax, 0x18(%rsp)
movq 0xb8(%rsp), %rax
movzwl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl %eax, %ecx
movl 0x18(%rsp), %eax
addl %ecx, %eax
cvtsi2sd %eax, %xmm1
movq 0xb8(%rsp), %rax
movzwl 0x14(%rax), %eax
movl $0x2, %ecx
cltd
idivl %ecx
cvtsi2sd %eax, %xmm2
xorps %xmm3, %xmm3
movsd 0x41bd0(%rip), %xmm4    # 0x45090
callq 0x2140
movq 0x100(%rsp), %rdi
callq 0x2270
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xb0(%rsp)
movq 0x100(%rsp), %rdi
movq 0xb0(%rsp), %rax
movzbl 0x18(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x41b81(%rip), %xmm3    # 0x45088
movss %xmm3, 0x8(%rsp)
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x19(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1a(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0xb0(%rsp), %rax
movswl 0x20(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x22(%rax), %ecx
cvtsi2sd %ecx, %xmm1
movzwl 0x24(%rax), %ecx
cvtsi2sd %ecx, %xmm2
movzwl 0x26(%rax), %eax
cvtsi2sd %eax, %xmm3
callq 0x2150
movq 0x100(%rsp), %rdi
callq 0x2270
movq 0x4fd3d(%rip), %rdi     # 0x532c0
movq 0xb0(%rsp), %rax
movq %rax, %rsi
addq $0x30, %rsi
movl 0x2c(%rax), %edx
callq 0x2030
movss 0x8(%rsp), %xmm3
movq 0x100(%rsp), %rdi
movq 0xb0(%rsp), %rax
movzbl 0x1c(%rax), %ecx
cvtsi2ss %ecx, %xmm0
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1d(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1e(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0xb0(%rsp), %rax
movswl 0x20(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x22(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0x4fca7(%rip), %rsi     # 0x532c0
callq 0x2240
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xa8(%rsp)
movq 0x100(%rsp), %rdi
callq 0x2280
movq 0x100(%rsp), %rdi
movq 0xa8(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm1
movzwl 0x14(%rax), %ecx
cvtsi2sd %ecx, %xmm2
movzwl 0x16(%rax), %eax
cvtsi2sd %eax, %xmm3
callq 0x2150
movq 0x100(%rsp), %rdi
callq 0x2260
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0xa0(%rsp)
movq 0x100(%rsp), %rdi
movq 0xa0(%rsp), %rax
movzbl 0x1a(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x419d1(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1b(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1c(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0xa0(%rsp), %rax
movzwl 0x10(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x21b0
movq 0x100(%rsp), %rdi
movq 0xa0(%rsp), %rax
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0xa0(%rsp), %rax
movswl 0x16(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x18(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
callq 0x21c0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0x98(%rsp)
movq 0x100(%rsp), %rdi
movq 0x98(%rsp), %rax
movzwl 0x12(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x21b0
movq 0x100(%rsp), %rdi
movq 0x98(%rsp), %rax
movzbl 0x1c(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x418de(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1d(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1e(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0x98(%rsp), %rax
movswl 0x14(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x16(%rax), %ecx
cvtsi2sd %ecx, %xmm1
movzwl 0x18(%rax), %ecx
cvtsi2sd %ecx, %xmm2
movzwl 0x1a(%rax), %eax
cvtsi2sd %eax, %xmm3
callq 0x2150
movq 0x100(%rsp), %rdi
callq 0x21c0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0x90(%rsp)
movq 0x100(%rsp), %rdi
movq 0x90(%rsp), %rax
movzbl 0x1a(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x4183a(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1b(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1c(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0x90(%rsp), %rax
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x14(%rax), %ecx
cvtsi2sd %ecx, %xmm1
movzwl 0x16(%rax), %ecx
cvtsi2sd %ecx, %xmm2
movzwl 0x18(%rax), %eax
cvtsi2sd %eax, %xmm3
callq 0x2150
movq 0x100(%rsp), %rdi
callq 0x2270
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0x88(%rsp)
movq 0x100(%rsp), %rdi
movq 0x88(%rsp), %rax
movzbl 0x1e(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x41796(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1f(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x20(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0x88(%rsp), %rax
movzwl 0x10(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x21b0
movq 0x100(%rsp), %rdi
movq 0x88(%rsp), %rax
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0x88(%rsp), %rax
movswl 0x16(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x18(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
movq 0x88(%rsp), %rax
movswl 0x1a(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x1c(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
movq 0x88(%rsp), %rax
movswl 0x12(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
callq 0x21c0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0x80(%rsp)
movq 0x100(%rsp), %rdi
movq 0x80(%rsp), %rax
movzbl 0x1c(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x41676(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x1d(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x1e(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0x80(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movq 0x100(%rsp), %rdi
movq 0x80(%rsp), %rax
movswl 0x14(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x16(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
movq 0x80(%rsp), %rax
movswl 0x18(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x1a(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
movq 0x80(%rsp), %rax
movswl 0x10(%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x12(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
callq 0x2270
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0x78(%rsp)
movq 0x100(%rsp), %rdi
movq 0x78(%rsp), %rax
movzbl 0x10(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x41579(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x11(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x12(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x78(%rsp), %rax
addq $0x16, %rax
movq %rax, 0x70(%rsp)
movq 0x100(%rsp), %rdi
movq 0x70(%rsp), %rax
movswl (%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x2(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movl $0x1, 0x6c(%rsp)
movl 0x6c(%rsp), %eax
movq 0x78(%rsp), %rcx
movzwl 0x14(%rcx), %ecx
cmpl %ecx, %eax
jge 0x3bb9
movq 0x100(%rsp), %rdi
movq 0x70(%rsp), %rax
movslq 0x6c(%rsp), %rcx
movswl (%rax,%rcx,4), %edx
cvtsi2sd %edx, %xmm0
movswl 0x2(%rax,%rcx,4), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movl 0x6c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x6c(%rsp)
jmp 0x3b73
movq 0x100(%rsp), %rdi
movq 0x70(%rsp), %rax
movswl (%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x2(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
callq 0x2270
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0x60(%rsp)
movq 0x100(%rsp), %rdi
movq 0x60(%rsp), %rax
movzbl 0x10(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x41472(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x11(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x12(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0x60(%rsp), %rax
movzwl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x21b0
movq 0x60(%rsp), %rax
addq $0x18, %rax
movq %rax, 0x58(%rsp)
movq 0x100(%rsp), %rdi
movq 0x58(%rsp), %rax
movswl (%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x2(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movl $0x1, 0x54(%rsp)
movl 0x54(%rsp), %eax
movq 0x60(%rsp), %rcx
movzwl 0x16(%rcx), %ecx
cmpl %ecx, %eax
jge 0x3cda
movq 0x100(%rsp), %rdi
movq 0x58(%rsp), %rax
movslq 0x54(%rsp), %rcx
movswl (%rax,%rcx,4), %edx
cvtsi2sd %edx, %xmm0
movswl 0x2(%rax,%rcx,4), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movl 0x54(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x54(%rsp)
jmp 0x3c94
movq 0x100(%rsp), %rdi
movq 0x58(%rsp), %rax
movswl (%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x2(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movq 0x100(%rsp), %rdi
callq 0x21c0
jmp 0x3e08
movq 0xf0(%rsp), %rax
movq %rax, 0x48(%rsp)
movq 0x100(%rsp), %rdi
movq 0x48(%rsp), %rax
movzbl 0x10(%rax), %ecx
cvtsi2ss %ecx, %xmm0
movss 0x41351(%rip), %xmm3    # 0x45088
divss %xmm3, %xmm0
cvtss2sd %xmm0, %xmm0
movzbl 0x11(%rax), %ecx
cvtsi2ss %ecx, %xmm1
divss %xmm3, %xmm1
cvtss2sd %xmm1, %xmm1
movzbl 0x12(%rax), %eax
cvtsi2ss %eax, %xmm2
divss %xmm3, %xmm2
cvtss2sd %xmm2, %xmm2
callq 0x22b0
movq 0x100(%rsp), %rdi
movq 0x48(%rsp), %rax
movzwl 0x14(%rax), %eax
cvtsi2sd %eax, %xmm0
callq 0x21b0
movq 0x48(%rsp), %rax
addq $0x18, %rax
movq %rax, 0x40(%rsp)
movq 0x100(%rsp), %rdi
movq 0x40(%rsp), %rax
movswl (%rax), %ecx
cvtsi2sd %ecx, %xmm0
movswl 0x2(%rax), %eax
cvtsi2sd %eax, %xmm1
callq 0x2210
movl $0x1, 0x3c(%rsp)
movl 0x3c(%rsp), %eax
movq 0x48(%rsp), %rcx
movzwl 0x16(%rcx), %ecx
cmpl %ecx, %eax
jge 0x3dfb
movq 0x100(%rsp), %rdi
movq 0x40(%rsp), %rax
movslq 0x3c(%rsp), %rcx
movswl (%rax,%rcx,4), %edx
cvtsi2sd %edx, %xmm0
movswl 0x2(%rax,%rcx,4), %eax
cvtsi2sd %eax, %xmm1
callq 0x2130
movl 0x3c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x3c(%rsp)
jmp 0x3db5
movq 0x100(%rsp), %rdi
callq 0x21c0
jmp 0x3e0a
movq 0xf8(%rsp), %rdi
movq 0xf0(%rsp), %rsi
callq 0x14100
movq %rax, 0xf0(%rsp)
jmp 0x2bb8
addq $0x108, %rsp            # imm = 0x108
retq
nopw %cs:(%rax,%rax)