// File: /workspace/github_c_makefile_star2_O2/TurkeyMcMac[P]ts3d/src/d3d.c
// Function: d3d_draw
void d3d_draw(
	d3d_camera *cam,
	d3d_vec_s cam_pos,
	d3d_scalar cam_facing,
	const d3d_board *board,
	size_t n_sprites,
	const d3d_sprite_s sprites[])
{
	if (cam_pos.x > (d3d_scalar)0.0 && cam_pos.y > (d3d_scalar)0.0
	 && cam_pos.x < board->width && cam_pos.y < board->height) {
		// Canonicalize camera direction:
		cam_facing = fmod(cam_facing, 2 * PI);
		if (cam_facing < (d3d_scalar)0.0) cam_facing += 2 * PI;
		for (size_t x = 0; x < cam->width; ++x) {
			draw_column(cam, cam_pos, cam_facing, board, x);
		}
		draw_sprites(cam, cam_pos, cam_facing, n_sprites, sprites);
	} else {
		empty_camera_pixels(cam);
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xe8, %rsp
movq %rcx, 0x48(%rsp)
movapd %xmm1, %xmm3
movq %rdi, %r14
xorpd %xmm1, %xmm1
movapd %xmm0, 0x90(%rsp)
ucomisd %xmm1, %xmm0
jbe 0x3277
ucomisd %xmm1, %xmm3
jbe 0x3277
movq %rsi, %r12
movsd (%rsi), %xmm0
unpcklps 0x85e5(%rip), %xmm0     # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x85ed(%rip), %xmm0     # 0xb040
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
ucomisd 0x90(%rsp), %xmm1
jbe 0x3277
movsd 0x8(%r12), %xmm0
unpcklps 0x85b4(%rip), %xmm0     # xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]
subpd 0x85bc(%rip), %xmm0     # 0xb040
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
ucomisd %xmm3, %xmm1
jbe 0x3277
movq %rdx, 0x68(%rsp)
movsd 0x8621(%rip), %xmm1     # 0xb0c8
movapd %xmm2, %xmm0
movapd %xmm3, 0x20(%rsp)
callq 0x21c0
movsd 0x860a(%rip), %xmm3     # 0xb0c8
addsd %xmm0, %xmm3
xorpd %xmm2, %xmm2
movapd %xmm0, %xmm1
cmpltsd %xmm2, %xmm1
andpd %xmm1, %xmm3
andnpd %xmm0, %xmm1
orpd %xmm3, %xmm1
movapd %xmm1, 0xd0(%rsp)
leaq 0x80(%r14), %rax
movq %rax, 0x70(%rsp)
movapd 0x90(%rsp), %xmm0
unpcklpd 0x20(%rsp), %xmm0       # xmm0 = xmm0[0],mem[0]
movapd %xmm0, 0xb0(%rsp)
xorl %r8d, %r8d
movsd 0x85ad(%rip), %xmm5     # 0xb0c0
movq 0x10(%r14), %rax
cmpq %rax, %r8
jae 0x3290
movq %r8, 0x78(%rsp)
movq %r8, %xmm0
movq 0x84fe(%rip), %xmm2     # 0xb030
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
movapd 0x8502(%rip), %xmm3     # 0xb040
subpd %xmm3, %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
addsd %xmm0, %xmm1
movq %rax, %xmm0
punpckldq %xmm2, %xmm0    # xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]
subpd %xmm3, %xmm0
movapd %xmm0, %xmm2
unpckhpd %xmm0, %xmm2            # xmm2 = xmm2[1],xmm0[1]
addsd %xmm0, %xmm2
divsd %xmm2, %xmm1
movapd %xmm5, %xmm0
subsd %xmm1, %xmm0
mulsd (%r14), %xmm0
addsd 0xd0(%rsp), %xmm0
movsd %xmm0, (%rsp)
callq 0x2190
movapd %xmm0, 0x10(%rsp)
movsd (%rsp), %xmm0
callq 0x2530
movapd 0x10(%rsp), %xmm5
xorpd %xmm3, %xmm3
unpcklpd %xmm0, %xmm5            # xmm5 = xmm5[0],xmm0[0]
mulpd 0x846f(%rip), %xmm5     # 0xb020
movq (%r12), %rax
movq %rax, 0xc0(%rsp)
movapd %xmm5, %xmm6
unpckhpd %xmm5, %xmm6            # xmm6 = xmm6[1],xmm5[1]
movapd 0x90(%rsp), %xmm4
movapd 0x20(%rsp), %xmm7
movapd %xmm5, 0x10(%rsp)
movapd %xmm6, 0x50(%rsp)
ucomisd %xmm5, %xmm3
movapd %xmm4, (%rsp)
movapd %xmm7, 0x30(%rsp)
jbe 0x2c2e
movapd %xmm4, %xmm0
callq 0x2490
movapd 0x30(%rsp), %xmm7
movapd 0x50(%rsp), %xmm6
movapd 0x10(%rsp), %xmm5
movapd (%rsp), %xmm4
xorpd %xmm3, %xmm3
movapd %xmm4, %xmm8
subsd %xmm0, %xmm8
xorpd 0x8428(%rip), %xmm8     # 0xb050
pushq $0x2
popq %r15
jmp 0x2c6f
xorpd %xmm8, %xmm8
ucomisd %xmm8, %xmm5
pushq $0x2
popq %r15
jbe 0x2c6f
movapd %xmm4, %xmm0
callq 0x20b0
movapd 0x30(%rsp), %xmm7
movapd 0x50(%rsp), %xmm6
movapd 0x10(%rsp), %xmm5
movapd (%rsp), %xmm4
xorpd %xmm3, %xmm3
movapd %xmm0, %xmm8
subsd %xmm4, %xmm8
xorl %r15d, %r15d
ucomisd %xmm6, %xmm3
jbe 0x2cc5
movapd %xmm7, %xmm0
movapd %xmm8, 0xa0(%rsp)
callq 0x2490
movapd 0xa0(%rsp), %xmm8
movapd 0x30(%rsp), %xmm7
movapd 0x50(%rsp), %xmm6
movapd 0x10(%rsp), %xmm5
movapd (%rsp), %xmm4
xorpd %xmm3, %xmm3
movapd %xmm0, %xmm1
movapd %xmm7, %xmm0
subsd %xmm1, %xmm0
xorpd 0x838f(%rip), %xmm0     # 0xb050
pushq $0x3
jmp 0x2d10
xorpd %xmm0, %xmm0
ucomisd %xmm0, %xmm6
pushq $0x3
popq %rbx
jbe 0x2d11
movapd %xmm7, %xmm0
movapd %xmm8, 0xa0(%rsp)
callq 0x20b0
movapd 0xa0(%rsp), %xmm8
movapd 0x30(%rsp), %xmm7
movapd 0x50(%rsp), %xmm6
movapd 0x10(%rsp), %xmm5
movapd (%rsp), %xmm4
xorpd %xmm3, %xmm3
subsd %xmm7, %xmm0
pushq $0x1
popq %rbx
ucomisd %xmm3, %xmm5
jne 0x2d23
jp 0x2d23
movapd %xmm0, %xmm2
divsd %xmm6, %xmm2
jmp 0x2d4e
ucomisd %xmm3, %xmm6
movapd %xmm8, %xmm1
unpcklpd %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
divpd %xmm5, %xmm1
jne 0x2d3c
jnp 0x2ead
movapd %xmm1, %xmm2
unpckhpd %xmm1, %xmm2            # xmm2 = xmm2[1],xmm1[1]
ucomisd %xmm1, %xmm2
ja 0x2ead
addsd %xmm0, %xmm7
mulsd %xmm5, %xmm2
addsd %xmm4, %xmm2
unpcklpd %xmm7, %xmm2            # xmm2 = xmm2[0],xmm7[0]
movapd %xmm2, %xmm4
movapd %xmm4, (%rsp)
xorl %ebp, %ebp
ucomisd %xmm3, %xmm6
seta %bpl
xorl %edi, %edi
ucomisd %xmm3, %xmm5
seta %dil
movapd %xmm4, %xmm0
callq 0x3821
movq %rax, %r13
movq %rax, 0x88(%rsp)
movaps (%rsp), %xmm0
movhlps %xmm0, %xmm0            # xmm0 = xmm0[1,1]
movaps %xmm0, 0x30(%rsp)
movl %ebp, %edi
callq 0x3821
movq %rax, 0x80(%rsp)
movq 0xc0(%rsp), %r8
cmpq %r8, %r13
jae 0x2ec6
movq 0x8(%r12), %rdx
cmpq %rdx, %rax
jae 0x2ec6
movl %ebx, %esi
leaq 0x82de(%rip), %rcx      # 0xb0b0
movl (%rcx,%rsi,4), %ecx
imulq %rdx, %r13
addq %rax, %r13
movq 0x10(%r12,%r13,8), %rax
movq (%rax,%rsi,8), %r13
testq %r13, %r13
jne 0x2ed3
leaq 0x8303(%rip), %rax      # 0xb0f8
movslq (%rax,%rsi,4), %rdi
addq %rax, %rdi
leaq 0x88(%rsp), %rax
pushq $0x1
popq %rsi
jmpq *%rdi
leaq 0x80(%rsp), %rax
jmp 0x2e1e
leaq 0x80(%rsp), %rax
pushq $-0x1
popq %rsi
addq %rsi, (%rax)
movq 0x88(%rsp), %rax
cmpq %r8, %rax
jae 0x2ec6
movq 0x80(%rsp), %rsi
cmpq %rdx, %rsi
jae 0x2ec6
imulq %rdx, %rax
addq %rax, %rsi
movq 0x10(%r12,%rsi,8), %rax
movq (%rax,%rcx,8), %r13
testq %r13, %r13
jne 0x2ed1
movapd 0x10(%rsp), %xmm5
movapd %xmm5, %xmm7
movapd (%rsp), %xmm4
movapd %xmm4, %xmm0
cmpl %r15d, %ebx
xorpd %xmm3, %xmm3
movapd 0x50(%rsp), %xmm6
je 0x2e84
movapd %xmm6, %xmm7
movapd 0x30(%rsp), %xmm0
andpd 0x81c4(%rip), %xmm7     # 0xb050
orpd 0x820c(%rip), %xmm7     # 0xb0a0
addsd %xmm0, %xmm7
jne 0x2be0
movapd %xmm7, %xmm4
movapd 0x30(%rsp), %xmm7
jmp 0x2be0
addsd %xmm8, %xmm4
mulsd %xmm6, %xmm1
addsd %xmm7, %xmm1
unpcklpd %xmm1, %xmm4            # xmm4 = xmm4[0],xmm1[0]
movl %r15d, %ebx
jmp 0x2d62
movq 0x20(%r14), %r13
movapd (%rsp), %xmm0
jmp 0x2eda
movl %ebx, %ecx
movapd (%rsp), %xmm0
movl %ecx, %ebx
subpd 0xb0(%rsp), %xmm0
movapd %xmm0, %xmm1
unpckhpd %xmm0, %xmm1            # xmm1 = xmm1[1],xmm0[1]
movapd %xmm0, 0x50(%rsp)
callq 0x21a0
movq 0x78(%r14), %rax
movq 0x78(%rsp), %rcx
movapd %xmm0, 0x10(%rsp)
movsd %xmm0, (%rax,%rcx,8)
cmpl $0x2, %ebx
je 0x2f48
cmpl $0x1, %ebx
je 0x2f36
testl %ebx, %ebx
movapd (%rsp), %xmm0
jne 0x2f61
movapd 0x30(%rsp), %xmm0
callq 0x20b0
movapd %xmm0, %xmm14
subsd 0x30(%rsp), %xmm14
jmp 0x2f71
movapd (%rsp), %xmm0
callq 0x2490
movapd (%rsp), %xmm14
jmp 0x2f5a
movapd 0x30(%rsp), %xmm0
callq 0x2490
movapd 0x30(%rsp), %xmm14
subsd %xmm0, %xmm14
jmp 0x2f71
callq 0x20b0
movapd %xmm0, %xmm14
subsd (%rsp), %xmm14
movapd 0x10(%rsp), %xmm0
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
movapd 0x50(%rsp), %xmm15
divpd %xmm0, %xmm15
xorl %ebx, %ebx
movq 0x70(%rsp), %rdi
movsd 0x812a(%rip), %xmm5     # 0xb0c0
movsd 0x814a(%rip), %xmm6     # 0xb0e8
movapd 0x806a(%rip), %xmm7     # 0xb010
xorpd %xmm8, %xmm8
movq 0x78(%rsp), %r8
movsd 0x8137(%rip), %xmm9     # 0xb0f0
movdqa 0x809e(%rip), %xmm10    # 0xb060
movdqa 0x80a5(%rip), %xmm11    # 0xb070
movdqa 0x80ac(%rip), %xmm12    # 0xb080
movapd 0x80b3(%rip), %xmm13    # 0xb090
movapd %xmm14, (%rsp)
movapd %xmm15, 0x50(%rsp)
movq 0x18(%r14), %rbp
cmpq %rbp, %rbx
jae 0x326f
movq 0x70(%r14), %rax
movsd (%rax,%rbx,8), %xmm1
movapd %xmm1, %xmm4
mulsd 0x10(%rsp), %xmm4
addsd %xmm5, %xmm4
ucomisd %xmm8, %xmm4
jbe 0x30db
ucomisd %xmm4, %xmm9
jbe 0x30db
movdqu (%r13), %xmm1
movdqa %xmm1, %xmm2
pand %xmm10, %xmm2
por %xmm11, %xmm2
movdqa %xmm1, %xmm3
psrlq $0x20, %xmm3
por %xmm12, %xmm3
subpd %xmm13, %xmm3
addpd %xmm2, %xmm3
movapd %xmm9, %xmm2
subsd %xmm4, %xmm2
movapd %xmm14, %xmm0
unpcklpd %xmm2, %xmm0            # xmm0 = xmm0[0],xmm2[0]
mulpd %xmm3, %xmm0
movq %r13, %r15
movapd %xmm0, %xmm2
subsd %xmm6, %xmm2
cvttsd2si %xmm2, %rcx
cvttsd2si %xmm0, %rdx
movq %rdx, %rax
sarq $0x3f, %rax
andq %rcx, %rax
orq %rdx, %rax
movq %xmm1, %rcx
cmpq %rax, %rcx
jbe 0x3253
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
cvttsd2si %xmm0, %rdx
subsd %xmm6, %xmm0
cvttsd2si %xmm0, %rsi
movq %rdx, %rcx
sarq $0x3f, %rcx
andq %rsi, %rcx
orq %rdx, %rcx
pshufd $0xee, %xmm1, %xmm0     # xmm0 = xmm1[2,3,2,3]
movq %xmm0, %rdx
cmpq %rcx, %rdx
jbe 0x3253
imulq %rax, %rdx
addq %rcx, %rdx
leaq (%r15,%rdx), %rax
addq $0x10, %rax
jmp 0x325b
andpd %xmm7, %xmm1
movapd %xmm5, %xmm0
divsd %xmm1, %xmm0
unpcklpd %xmm0, %xmm0            # xmm0 = xmm0[0,0]
mulpd %xmm15, %xmm0
addpd 0xb0(%rsp), %xmm0
cvttsd2si %xmm0, %rcx
movq %rcx, %rdx
sarq $0x3f, %rdx
movapd %xmm0, %xmm1
subsd %xmm6, %xmm1
cvttsd2si %xmm1, %rax
andq %rdx, %rax
orq %rcx, %rax
cmpq %rax, (%r12)
jbe 0x3253
movapd %xmm0, %xmm2
unpckhpd %xmm0, %xmm2            # xmm2 = xmm2[1],xmm0[1]
cvttsd2si %xmm2, %rdx
movq %rdx, %rsi
sarq $0x3f, %rsi
movapd %xmm2, %xmm1
subsd %xmm6, %xmm1
cvttsd2si %xmm1, %rcx
andq %rsi, %rcx
orq %rdx, %rcx
movq 0x8(%r12), %rdx
cmpq %rcx, %rdx
jbe 0x3253
imulq %rax, %rdx
addq %rcx, %rdx
ucomisd %xmm9, %xmm4
movq 0x10(%r12,%rdx,8), %rax
movl $0x0, %ecx
adcl $0x4, %ecx
movq (%rax,%rcx,8), %r15
testq %r15, %r15
je 0x3253
movapd %xmm0, 0x30(%rsp)
movapd %xmm2, 0xc0(%rsp)
callq 0x2490
movapd %xmm0, 0xa0(%rsp)
movapd 0xc0(%rsp), %xmm0
callq 0x2490
movapd 0x50(%rsp), %xmm15
movapd (%rsp), %xmm14
movapd 0x7ed2(%rip), %xmm13    # 0xb090
movdqa 0x7eb9(%rip), %xmm12    # 0xb080
movdqa 0x7ea0(%rip), %xmm11    # 0xb070
movdqa 0x7e87(%rip), %xmm10    # 0xb060
movsd 0x7f0e(%rip), %xmm9     # 0xb0f0
movq 0x78(%rsp), %r8
xorpd %xmm8, %xmm8
movapd 0x7e1c(%rip), %xmm7     # 0xb010
movsd 0x7eec(%rip), %xmm6     # 0xb0e8
movsd 0x7ebc(%rip), %xmm5     # 0xb0c0
movq 0x70(%rsp), %rdi
movapd 0xa0(%rsp), %xmm1
unpcklpd %xmm0, %xmm1            # xmm1 = xmm1[0],xmm0[0]
movapd 0x30(%rsp), %xmm3
subpd %xmm1, %xmm3
movdqu (%r15), %xmm1
movdqa %xmm1, %xmm2
pand %xmm10, %xmm2
por %xmm11, %xmm2
movdqa %xmm1, %xmm0
psrlq $0x20, %xmm0
por %xmm12, %xmm0
subpd %xmm13, %xmm0
addpd %xmm2, %xmm0
mulpd %xmm3, %xmm0
jmp 0x3068
movq 0x20(%r14), %rax
addq $0x10, %rax
movb (%rax), %al
imulq %r8, %rbp
addq %rdi, %rbp
movb %al, (%rbx,%rbp)
incq %rbx
jmp 0x2fea
incq %r8
jmp 0x2b13
movq %r14, %rdi
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x28c1
movq 0x68(%rsp), %rbx
cmpq %rbx, 0x68(%r14)
jne 0x32ab
movq 0x48(%rsp), %rax
cmpq %rax, 0x60(%r14)
movq 0x68(%rsp), %rbx
je 0x32f8
movq 0x58(%r14), %r12
cmpq %rbx, %r12
movapd 0x20(%rsp), %xmm2
jae 0x32f0
movq %rbx, %rax
shrq $0x3c, %rax
jne 0x33df
movq %rbx, %rsi
shlq $0x4, %rsi
movq 0x50(%r14), %rdi
callq 0x2480
testq %rax, %rax
je 0x33d5
movq %rax, 0x50(%r14)
movq %rbx, 0x58(%r14)
movq %rbx, %r12
jmp 0x33d9
movq %rbx, %r12
jmp 0x33df
pushq $0x1
popq %r15
pushq $-0x10
popq %rax
movq %rax, (%rsp)
xorl %r12d, %r12d
movapd 0x20(%rsp), %xmm4
cmpq %rbx, %r12
je 0x33cd
movq %r12, %rbp
sarq $0x3f, %rbp
andq %r12, %rbp
movq 0x50(%r14), %rax
movq %r12, %rcx
shlq $0x4, %rcx
movq 0x8(%rax,%rcx), %r13
imulq $0x30, %r13, %rax
movq 0x48(%rsp), %rcx
movsd (%rcx,%rax), %xmm0
movsd 0x8(%rcx,%rax), %xmm1
subsd 0x90(%rsp), %xmm0
subsd %xmm4, %xmm1
callq 0x21a0
movq 0x50(%r14), %rsi
movq (%rsp), %rax
addq %rsi, %rax
movq %r15, %rbx
decq %rbx
testq %rbx, %rbx
jle 0x3377
ucomisd (%rax), %xmm0
leaq -0x10(%rax), %rax
jb 0x3363
jmp 0x337a
movq %rbp, %rbx
movq %r12, %rdx
subq %rbx, %rdx
shlq $0x4, %rbx
leaq (%rsi,%rbx), %rdi
addq $0x10, %rdi
addq %rbx, %rsi
shlq $0x4, %rdx
movsd %xmm0, 0x10(%rsp)
callq 0x22c0
movq 0x50(%r14), %rax
movsd 0x10(%rsp), %xmm0
movsd %xmm0, (%rax,%rbx)
movq %r13, 0x8(%rax,%rbx)
incq %r12
incq %r15
addq $0x10, (%rsp)
movapd 0x20(%rsp), %xmm4
movq 0x68(%rsp), %rbx
jmp 0x330c
movq %rbx, %r12
jmp 0x3458
movq 0x58(%r14), %r12
movapd 0x20(%rsp), %xmm2
movq 0x48(%rsp), %rax
leaq 0x8(%rax), %rbx
pushq $0x8
popq %r13
xorl %ebp, %ebp
movq 0x50(%r14), %r15
cmpq %rbp, %r12
je 0x3430
movsd -0x8(%rbx), %xmm0
movsd (%rbx), %xmm1
subsd 0x90(%rsp), %xmm0
subsd %xmm2, %xmm1
callq 0x21a0
movapd 0x20(%rsp), %xmm2
movsd %xmm0, -0x8(%r15,%r13)
movq %rbp, (%r15,%r13)
incq %rbp
addq $0x30, %rbx
addq $0x10, %r13
jmp 0x33ee
leaq 0x461(%rip), %rcx       # 0x3898
pushq $0x10
popq %rdx
movq %r15, %rdi
movq %r12, %rsi
callq 0x2340
movapd 0x20(%rsp), %xmm4
movq 0x48(%rsp), %rax
movq %rax, 0x60(%r14)
movq %r12, 0x68(%r14)
xorpd %xmm3, %xmm3
testq %r12, %r12
je 0x3785
decq %r12
movq 0x50(%r14), %rax
movq %r12, %rcx
shlq $0x4, %rcx
imulq $0x30, 0x8(%rax,%rcx), %r15
movq 0x48(%rsp), %rdx
ucomisd 0x10(%rdx,%r15), %xmm3
jae 0x345c
movsd (%rax,%rcx), %xmm2
ucomisd %xmm3, %xmm2
jne 0x3494
jnp 0x345c
addq 0x48(%rsp), %r15
ucomisd 0x18(%r15), %xmm3
jae 0x345c
movsd (%r15), %xmm1
movsd 0x8(%r15), %xmm0
subsd %xmm4, %xmm0
subsd 0x90(%rsp), %xmm1
movsd %xmm2, 0x10(%rsp)
callq 0x2050
movsd %xmm0, (%rsp)
movsd 0x10(%r15), %xmm0
divsd 0x10(%rsp), %xmm0
callq 0x21f0
movapd %xmm0, %xmm6
addsd %xmm0, %xmm6
movsd (%r14), %xmm0
addsd %xmm6, %xmm0
mulsd 0x7bcd(%rip), %xmm0     # 0xb0c0
movapd 0xd0(%rsp), %xmm7
subsd (%rsp), %xmm7
ucomisd 0x7bc7(%rip), %xmm7     # 0xb0d0
jbe 0x3515
addsd 0x7bcd(%rip), %xmm7     # 0xb0e0
jmp 0x3533
movsd 0x7bbb(%rip), %xmm1     # 0xb0d8
ucomisd %xmm7, %xmm1
jbe 0x3533
movsd 0x7bb5(%rip), %xmm1     # 0xb0e0
subsd %xmm7, %xmm1
movapd %xmm1, %xmm7
movapd 0x20(%rsp), %xmm4
movapd 0x7acf(%rip), %xmm2     # 0xb010
xorpd %xmm3, %xmm3
movsd 0x10(%rsp), %xmm5
movapd %xmm7, %xmm1
andpd %xmm2, %xmm1
ucomisd %xmm0, %xmm1
ja 0x345c
movsd 0x18(%r15), %xmm0
divsd %xmm5, %xmm0
movsd %xmm6, (%rsp)
movapd %xmm7, 0xb0(%rsp)
callq 0x21f0
movsd (%rsp), %xmm8
movsd 0x10(%rsp), %xmm7
movsd 0x7b5a(%rip), %xmm6     # 0xb0e8
addsd %xmm0, %xmm0
divsd 0x8(%r14), %xmm0
movsd 0x18(%r14), %xmm2
movsd 0x7a8a(%rip), %xmm5     # 0xb030
unpcklps %xmm5, %xmm2            # xmm2 = xmm2[0],xmm5[0],xmm2[1],xmm5[1]
movapd 0x7a8f(%rip), %xmm4     # 0xb040
subpd %xmm4, %xmm2
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd (%r14), %xmm2
divsd %xmm2, %xmm8
movsd 0x10(%r14), %xmm3
unpcklps %xmm5, %xmm3            # xmm3 = xmm3[0],xmm5[0],xmm3[1],xmm5[1]
subpd %xmm4, %xmm3
movapd %xmm3, %xmm4
unpckhpd %xmm3, %xmm4            # xmm4 = xmm4[1],xmm3[1]
addsd %xmm3, %xmm4
mulsd %xmm4, %xmm8
movapd 0xb0(%rsp), %xmm3
divsd %xmm2, %xmm3
mulsd %xmm4, %xmm3
subsd %xmm8, %xmm4
movsd 0x7ab5(%rip), %xmm2     # 0xb0c0
mulsd %xmm2, %xmm4
addsd %xmm4, %xmm3
movapd %xmm5, %xmm4
movapd 0x7a21(%rip), %xmm5     # 0xb040
cvttsd2si %xmm3, %rax
subsd %xmm0, %xmm1
mulsd %xmm2, %xmm1
cvttsd2si %xmm1, %rcx
movq 0x70(%rsp), %rdx
addq %rcx, %rdx
movq %rdx, (%rsp)
movq %rax, %rsi
xorl %edi, %edi
movq %rdi, %xmm2
punpckldq %xmm4, %xmm2    # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm5, %xmm2
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
addsd %xmm2, %xmm1
ucomisd %xmm1, %xmm8
jbe 0x377a
leaq (%rdi,%rax), %r8
cmpq 0x10(%r14), %r8
jae 0x376f
movq 0x78(%r14), %r9
ucomisd (%r9,%r8,8), %xmm7
jae 0x376f
divsd %xmm8, %xmm1
movq 0x20(%r15), %r8
movq (%r8), %r9
movq %r9, %xmm2
punpckldq %xmm4, %xmm2    # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm5, %xmm2
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
addsd %xmm2, %xmm3
mulsd %xmm1, %xmm3
cvttsd2si %xmm3, %r10
movq %r10, %r11
subsd %xmm6, %xmm3
cvttsd2si %xmm3, %r8
sarq $0x3f, %r11
andq %r11, %r8
orq %r10, %r8
cmpq %r8, %r9
jbe 0x376f
xorl %r9d, %r9d
movq %r9, %xmm2
punpckldq %xmm4, %xmm2    # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm5, %xmm2
movapd %xmm2, %xmm1
unpckhpd %xmm2, %xmm1            # xmm1 = xmm1[1],xmm2[1]
addsd %xmm2, %xmm1
ucomisd %xmm1, %xmm0
jbe 0x376f
leaq (%rcx,%r9), %r11
movq 0x18(%r14), %r10
cmpq %r10, %r11
jae 0x3767
divsd %xmm0, %xmm1
movq 0x20(%r15), %r11
movq 0x8(%r11), %rbx
movq %rbx, %xmm2
punpckldq %xmm4, %xmm2    # xmm2 = xmm2[0],xmm4[0],xmm2[1],xmm4[1]
subpd %xmm5, %xmm2
movapd %xmm2, %xmm3
unpckhpd %xmm2, %xmm3            # xmm3 = xmm3[1],xmm2[1]
addsd %xmm2, %xmm3
mulsd %xmm1, %xmm3
cvttsd2si %xmm3, %rdx
movq %rdx, %rbp
subsd %xmm6, %xmm3
cvttsd2si %xmm3, %r13
sarq $0x3f, %rbp
andq %rbp, %r13
orq %rdx, %r13
cmpq %r13, %rbx
jbe 0x3767
imulq %r8, %rbx
addq %r13, %rbx
movb 0x10(%r11,%rbx), %r11b
cmpb 0x28(%r15), %r11b
je 0x3767
imulq %rsi, %r10
addq (%rsp), %r10
movb %r11b, (%r9,%r10)
incq %r9
jmp 0x36d4
incq %rdi
incq %rsi
jmp 0x3642
movapd 0x20(%rsp), %xmm4
jmp 0x3458
addq $0xe8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq