41a7be:	5d                   	pop    %ebp
41a7bf:	c3                   	ret
41a7c0:	8b 02                	mov    (%edx),%eax
41a7c2:	8b 4d 08             	mov    0x8(%ebp),%ecx
41a7c5:	88 08                	mov    %cl,(%eax)
41a7c7:	ff 02                	incl   (%edx)
41a7c9:	0f b6 c1             	movzbl %cl,%eax
41a7cc:	5d                   	pop    %ebp
41a7cd:	c3                   	ret
41a7ce:	8b 0d 28 ba 43 00    	mov    0x43ba28,%ecx
41a7d4:	33 c0                	xor    %eax,%eax
41a7d6:	83 c9 01             	or     $0x1,%ecx
41a7d9:	39 0d c4 9f 83 02    	cmp    %ecx,0x2839fc4
41a7df:	0f 94 c0             	sete   %al
41a7e2:	c3                   	ret
41a7e3:	8b ff                	mov    %edi,%edi
41a7e5:	55                   	push   %ebp
41a7e6:	8b ec                	mov    %esp,%ebp
41a7e8:	56                   	push   %esi
41a7e9:	8b 75 08             	mov    0x8(%ebp),%esi
41a7ec:	56                   	push   %esi
41a7ed:	e8 8d ff ff ff       	call   0x41a77f
41a7f2:	50                   	push   %eax
41a7f3:	e8 f1 9f 00 00       	call   0x4247e9
41a7f8:	59                   	pop    %ecx
41a7f9:	59                   	pop    %ecx
41a7fa:	85 c0                	test   %eax,%eax
41a7fc:	75 07                	jne    0x41a805
41a7fe:	32 c0                	xor    %al,%al
41a800:	e9 90 00 00 00       	jmp    0x41a895
41a805:	53                   	push   %ebx
41a806:	57                   	push   %edi
41a807:	6a 01                	push   $0x1
41a809:	e8 17 16 ff ff       	call   0x40be25
41a80e:	59                   	pop    %ecx
41a80f:	6a 02                	push   $0x2
41a811:	5b                   	pop    %ebx
41a812:	3b f0                	cmp    %eax,%esi
41a814:	75 07                	jne    0x41a81d
41a816:	bf c8 9f 83 02       	mov    $0x2839fc8,%edi
41a81b:	eb 10                	jmp    0x41a82d
41a81d:	53                   	push   %ebx
41a81e:	e8 02 16 ff ff       	call   0x40be25
41a823:	59                   	pop    %ecx
41a824:	3b f0                	cmp    %eax,%esi
41a826:	75 69                	jne    0x41a891
41a828:	bf cc 9f 83 02       	mov    $0x2839fcc,%edi
41a82d:	ff 05 44 9a 83 02    	incl   0x2839a44
41a833:	8d 4e 0c             	lea    0xc(%esi),%ecx
41a836:	8b 01                	mov    (%ecx),%eax
41a838:	a9 c0 04 00 00       	test   $0x4c0,%eax
41a83d:	75 52                	jne    0x41a891
41a83f:	b8 82 02 00 00       	mov    $0x282,%eax
41a844:	f0 09 01             	lock or %eax,(%ecx)
41a847:	8b 07                	mov    (%edi),%eax
41a849:	85 c0                	test   %eax,%eax
41a84b:	75 2b                	jne    0x41a878
41a84d:	68 00 10 00 00       	push   $0x1000
41a852:	e8 f3 a4 ff ff       	call   0x414d4a
41a857:	6a 00                	push   $0x0
41a859:	89 07                	mov    %eax,(%edi)
41a85b:	e8 b0 a4 ff ff       	call   0x414d10
41a860:	8b 07                	mov    (%edi),%eax
41a862:	59                   	pop    %ecx
41a863:	59                   	pop    %ecx
41a864:	85 c0                	test   %eax,%eax
41a866:	75 10                	jne    0x41a878
41a868:	8d 4e 14             	lea    0x14(%esi),%ecx
41a86b:	89 5e 08             	mov    %ebx,0x8(%esi)
41a86e:	89 4e 04             	mov    %ecx,0x4(%esi)
41a871:	89 0e                	mov    %ecx,(%esi)
41a873:	89 5e 18             	mov    %ebx,0x18(%esi)
41a876:	eb 15                	jmp    0x41a88d
41a878:	89 46 04             	mov    %eax,0x4(%esi)
41a87b:	8b 07                	mov    (%edi),%eax
41a87d:	89 06                	mov    %eax,(%esi)
41a87f:	c7 46 08 00 10 00 00 	movl   $0x1000,0x8(%esi)
41a886:	c7 46 18 00 10 00 00 	movl   $0x1000,0x18(%esi)
41a88d:	b0 01                	mov    $0x1,%al
41a88f:	eb 02                	jmp    0x41a893
41a891:	32 c0                	xor    %al,%al
41a893:	5f                   	pop    %edi
41a894:	5b                   	pop    %ebx
41a895:	5e                   	pop    %esi
41a896:	5d                   	pop    %ebp
41a897:	c3                   	ret
41a898:	8b ff                	mov    %edi,%edi
41a89a:	55                   	push   %ebp
41a89b:	8b ec                	mov    %esp,%ebp
41a89d:	80 7d 08 00          	cmpb   $0x0,0x8(%ebp)
41a8a1:	74 2c                	je     0x41a8cf
41a8a3:	56                   	push   %esi
41a8a4:	8b 75 0c             	mov    0xc(%ebp),%esi
41a8a7:	57                   	push   %edi
41a8a8:	8d 7e 0c             	lea    0xc(%esi),%edi
41a8ab:	8b 07                	mov    (%edi),%eax
41a8ad:	c1 e8 09             	shr    $0x9,%eax
41a8b0:	a8 01                	test   $0x1,%al
41a8b2:	74 19                	je     0x41a8cd
41a8b4:	56                   	push   %esi
41a8b5:	e8 6e ec ff ff       	call   0x419528
41a8ba:	59                   	pop    %ecx
41a8bb:	b8 7f fd ff ff       	mov    $0xfffffd7f,%eax
41a8c0:	f0 21 07             	lock and %eax,(%edi)
41a8c3:	33 c0                	xor    %eax,%eax
41a8c5:	89 46 18             	mov    %eax,0x18(%esi)
41a8c8:	89 46 04             	mov    %eax,0x4(%esi)
41a8cb:	89 06                	mov    %eax,(%esi)
41a8cd:	5f                   	pop    %edi
41a8ce:	5e                   	pop    %esi
41a8cf:	5d                   	pop    %ebp
41a8d0:	c3                   	ret
41a8d1:	8b ff                	mov    %edi,%edi
41a8d3:	55                   	push   %ebp
41a8d4:	8b ec                	mov    %esp,%ebp
41a8d6:	51                   	push   %ecx
41a8d7:	51                   	push   %ecx
41a8d8:	66 8b 45 08          	mov    0x8(%ebp),%ax
41a8dc:	b9 ff ff 00 00       	mov    $0xffff,%ecx
41a8e1:	66 3b c1             	cmp    %cx,%ax
41a8e4:	75 04                	jne    0x41a8ea
41a8e6:	33 c0                	xor    %eax,%eax
41a8e8:	eb 42                	jmp    0x41a92c
41a8ea:	b9 00 01 00 00       	mov    $0x100,%ecx
41a8ef:	66 3b c1             	cmp    %cx,%ax
41a8f2:	73 0e                	jae    0x41a902
41a8f4:	0f b7 c8             	movzwl %ax,%ecx
41a8f7:	a1 24 bb 43 00       	mov    0x43bb24,%eax
41a8fc:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
41a900:	eb 24                	jmp    0x41a926
41a902:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
41a906:	33 c0                	xor    %eax,%eax
41a908:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
41a90c:	8d 45 fc             	lea    -0x4(%ebp),%eax
41a90f:	50                   	push   %eax
41a910:	6a 01                	push   $0x1
41a912:	8d 45 f8             	lea    -0x8(%ebp),%eax
41a915:	50                   	push   %eax
41a916:	6a 01                	push   $0x1
41a918:	ff 15 34 71 42 00    	call   *0x427134
41a91e:	85 c0                	test   %eax,%eax
41a920:	74 c4                	je     0x41a8e6
41a922:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
41a926:	0f b7 4d 0c          	movzwl 0xc(%ebp),%ecx
41a92a:	23 c1                	and    %ecx,%eax
41a92c:	8b e5                	mov    %ebp,%esp
41a92e:	5d                   	pop    %ebp
41a92f:	c3                   	ret
41a930:	8b ff                	mov    %edi,%edi
41a932:	55                   	push   %ebp
41a933:	8b ec                	mov    %esp,%ebp
41a935:	83 ec 24             	sub    $0x24,%esp
41a938:	a1 28 ba 43 00       	mov    0x43ba28,%eax
41a93d:	33 c5                	xor    %ebp,%eax
41a93f:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a942:	53                   	push   %ebx
41a943:	ff 75 10             	push   0x10(%ebp)
41a946:	8b 5d 08             	mov    0x8(%ebp),%ebx
41a949:	8d 4d e0             	lea    -0x20(%ebp),%ecx
41a94c:	e8 77 1e ff ff       	call   0x40c7c8
41a951:	8d 43 01             	lea    0x1(%ebx),%eax
41a954:	3d 00 01 00 00       	cmp    $0x100,%eax
41a959:	77 0b                	ja     0x41a966
41a95b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41a95e:	8b 00                	mov    (%eax),%eax
41a960:	0f b7 04 58          	movzwl (%eax,%ebx,2),%eax
41a964:	eb 7a                	jmp    0x41a9e0
41a966:	8b c3                	mov    %ebx,%eax
41a968:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
41a96b:	c1 f8 08             	sar    $0x8,%eax
41a96e:	89 45 dc             	mov    %eax,-0x24(%ebp)
41a971:	51                   	push   %ecx
41a972:	0f b6 c0             	movzbl %al,%eax
41a975:	50                   	push   %eax
41a976:	e8 4f 3f 00 00       	call   0x41e8ca
41a97b:	59                   	pop    %ecx
41a97c:	59                   	pop    %ecx
41a97d:	85 c0                	test   %eax,%eax
41a97f:	74 13                	je     0x41a994
41a981:	8b 45 dc             	mov    -0x24(%ebp),%eax
41a984:	88 45 f0             	mov    %al,-0x10(%ebp)
41a987:	33 c0                	xor    %eax,%eax
41a989:	6a 02                	push   $0x2
41a98b:	88 5d f1             	mov    %bl,-0xf(%ebp)
41a98e:	88 45 f2             	mov    %al,-0xe(%ebp)
41a991:	59                   	pop    %ecx
41a992:	eb 0b                	jmp    0x41a99f
41a994:	33 c0                	xor    %eax,%eax
41a996:	88 5d f0             	mov    %bl,-0x10(%ebp)
41a999:	33 c9                	xor    %ecx,%ecx
41a99b:	88 45 f1             	mov    %al,-0xf(%ebp)
41a99e:	41                   	inc    %ecx
41a99f:	89 45 f4             	mov    %eax,-0xc(%ebp)
41a9a2:	66 89 45 f8          	mov    %ax,-0x8(%ebp)
41a9a6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
41a9a9:	6a 01                	push   $0x1
41a9ab:	ff 70 08             	push   0x8(%eax)
41a9ae:	8d 45 f4             	lea    -0xc(%ebp),%eax
41a9b1:	50                   	push   %eax
41a9b2:	51                   	push   %ecx
41a9b3:	8d 45 f0             	lea    -0x10(%ebp),%eax
41a9b6:	50                   	push   %eax
41a9b7:	8d 45 e4             	lea    -0x1c(%ebp),%eax
41a9ba:	6a 01                	push   $0x1
41a9bc:	50                   	push   %eax
41a9bd:	e8 8f 17 00 00       	call   0x41c151
41a9c2:	83 c4 1c             	add    $0x1c,%esp
41a9c5:	85 c0                	test   %eax,%eax
41a9c7:	75 13                	jne    0x41a9dc
41a9c9:	38 45 ec             	cmp    %al,-0x14(%ebp)
41a9cc:	74 0a                	je     0x41a9d8
41a9ce:	8b 45 e0             	mov    -0x20(%ebp),%eax
41a9d1:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
41a9d8:	33 c0                	xor    %eax,%eax
41a9da:	eb 17                	jmp    0x41a9f3
41a9dc:	0f b7 45 f4          	movzwl -0xc(%ebp),%eax
41a9e0:	23 45 0c             	and    0xc(%ebp),%eax
41a9e3:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
41a9e7:	74 0a                	je     0x41a9f3
41a9e9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
41a9ec:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
41a9f3:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41a9f6:	33 cd                	xor    %ebp,%ecx
41a9f8:	5b                   	pop    %ebx
41a9f9:	e8 62 c6 fe ff       	call   0x407060
41a9fe:	8b e5                	mov    %ebp,%esp
41aa00:	5d                   	pop    %ebp
41aa01:	c3                   	ret
41aa02:	e8 38 a1 00 00       	call   0x424b3f
41aa07:	25 00 03 00 00       	and    $0x300,%eax
41aa0c:	c3                   	ret
41aa0d:	6a 0a                	push   $0xa
41aa0f:	e8 be b7 00 00       	call   0x4261d2
41aa14:	a3 00 a1 83 02       	mov    %eax,0x283a100
41aa19:	33 c0                	xor    %eax,%eax
41aa1b:	c3                   	ret
41aa1c:	cc                   	int3
41aa1d:	cc                   	int3
41aa1e:	cc                   	int3
41aa1f:	cc                   	int3
41aa20:	55                   	push   %ebp
41aa21:	8b ec                	mov    %esp,%ebp
41aa23:	83 ec 08             	sub    $0x8,%esp
41aa26:	83 e4 f0             	and    $0xfffffff0,%esp
41aa29:	dd 1c 24             	fstpl  (%esp)
41aa2c:	f3 0f 7e 04 24       	movq   (%esp),%xmm0
41aa31:	e8 08 00 00 00       	call   0x41aa3e
41aa36:	c9                   	leave
41aa37:	c3                   	ret
41aa38:	66 0f 12 44 24 04    	movlpd 0x4(%esp),%xmm0
41aa3e:	66 0f 12 25 00 d3 42 	movlpd 0x42d300,%xmm4
41aa45:	00
41aa46:	66 0f 12 1d 10 d3 42 	movlpd 0x42d310,%xmm3
41aa4d:	00
41aa4e:	66 0f 57 ed          	xorpd  %xmm5,%xmm5
41aa52:	66 0f 12 15 08 d3 42 	movlpd 0x42d308,%xmm2
41aa59:	00
41aa5a:	f2 0f 10 c8          	movsd  %xmm0,%xmm1
41aa5e:	66 0f 73 d0 2c       	psrlq  $0x2c,%xmm0
41aa63:	66 0f 7e c2          	movd   %xmm0,%edx
41aa67:	f2 0f 10 f9          	movsd  %xmm1,%xmm7
41aa6b:	b9 00 20 00 00       	mov    $0x2000,%ecx
41aa70:	66 0f c4 e9 02       	pinsrw $0x2,%ecx,%xmm5
41aa75:	f2 0f 10 c1          	movsd  %xmm1,%xmm0
41aa79:	b8 ff ff 07 00       	mov    $0x7ffff,%eax
41aa7e:	23 c2                	and    %edx,%eax
41aa80:	2d 00 fb 03 00       	sub    $0x3fb00,%eax
41aa85:	3d bb 03 00 00       	cmp    $0x3bb,%eax
41aa8a:	0f 83 d6 00 00 00    	jae    0x41ab66
41aa90:	f2 0f 59 c9          	mulsd  %xmm1,%xmm1
41aa94:	81 e2 ff ff 00 00    	and    $0xffff,%edx
41aa9a:	f2 0f 5c d9          	subsd  %xmm1,%xmm3
41aa9e:	f2 0f 51 db          	sqrtsd %xmm3,%xmm3
41aaa2:	66 0f 54 d7          	andpd  %xmm7,%xmm2
41aaa6:	83 e2 fc             	and    $0xfffffffc,%edx
41aaa9:	81 ea 00 fb 00 00    	sub    $0xfb00,%edx
41aaaf:	66 0f 12 0c 55 40 04 	movlpd 0x430440(,%edx,2),%xmm1
41aab6:	43 00
41aab8:	66 0f 56 d5          	orpd   %xmm5,%xmm2
41aabc:	66 0f 28 24 95 40 f5 	movapd 0x42f540(,%edx,4),%xmm4
41aac3:	42 00
41aac5:	f2 0f 10 f7          	movsd  %xmm7,%xmm6
41aac9:	f2 0f 58 fa          	addsd  %xmm2,%xmm7
41aacd:	f2 0f 5c c2          	subsd  %xmm2,%xmm0
41aad1:	f2 0f 59 f8          	mulsd  %xmm0,%xmm7
41aad5:	f2 0f 59 f1          	mulsd  %xmm1,%xmm6
41aad9:	f2 0f 59 da          	mulsd  %xmm2,%xmm3
41aadd:	f2 0f 10 ce          	movsd  %xmm6,%xmm1
41aae1:	f2 0f 58 f3          	addsd  %xmm3,%xmm6
41aae5:	f2 0f 5e fe          	divsd  %xmm6,%xmm7
41aae9:	66 0f 12 05 b8 d2 42 	movlpd 0x42d2b8,%xmm0
41aaf0:	00
41aaf1:	66 0f 12 2d a8 d2 42 	movlpd 0x42d2a8,%xmm5
41aaf8:	00
41aaf9:	f2 0f 5c cb          	subsd  %xmm3,%xmm1
41aafd:	66 0f 73 d2 3f       	psrlq  $0x3f,%xmm2
41ab02:	f2 0f 10 d9          	movsd  %xmm1,%xmm3
41ab06:	66 0f 73 f2 3f       	psllq  $0x3f,%xmm2
41ab0b:	f2 0f 59 c9          	mulsd  %xmm1,%xmm1
41ab0f:	66 0f 70 d2 44       	pshufd $0x44,%xmm2,%xmm2
41ab14:	66 0f 12 35 b0 d2 42 	movlpd 0x42d2b0,%xmm6
41ab1b:	00
41ab1c:	f2 0f 59 d9          	mulsd  %xmm1,%xmm3
41ab20:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
41ab24:	83 ec 10             	sub    $0x10,%esp
41ab27:	66 0f 57 e2          	xorpd  %xmm2,%xmm4
41ab2b:	f2 0f 59 eb          	mulsd  %xmm3,%xmm5
41ab2f:	66 0f 5c 25 40 d2 42 	subpd  0x42d240,%xmm4
41ab36:	00
41ab37:	f2 0f 59 d9          	mulsd  %xmm1,%xmm3
41ab3b:	f2 0f 58 c6          	addsd  %xmm6,%xmm0
41ab3f:	f2 0f 59 c3          	mulsd  %xmm3,%xmm0
41ab43:	f2 0f 5c ec          	subsd  %xmm4,%xmm5
41ab47:	66 0f 70 e4 ee       	pshufd $0xee,%xmm4,%xmm4
41ab4c:	f2 0f 58 c5          	addsd  %xmm5,%xmm0
41ab50:	f2 0f 5c c7          	subsd  %xmm7,%xmm0
41ab54:	f2 0f 5c c4          	subsd  %xmm4,%xmm0
41ab58:	66 0f 13 44 24 04    	movlpd %xmm0,0x4(%esp)
41ab5e:	dd 44 24 04          	fldl   0x4(%esp)
41ab62:	83 c4 10             	add    $0x10,%esp
41ab65:	c3                   	ret
41ab66:	2d bb 03 00 00       	sub    $0x3bb,%eax
41ab6b:	83 f8 41             	cmp    $0x41,%eax
41ab6e:	0f 83 2d 01 00 00    	jae    0x41aca1
41ab74:	66 0f 73 d7 26       	psrlq  $0x26,%xmm7
41ab79:	66 0f 73 f7 26       	psllq  $0x26,%xmm7
41ab7e:	66 0f d7 c0          	pmovmskb %xmm0,%eax
41ab82:	66 0f 55 e0          	andnpd %xmm0,%xmm4
41ab86:	f2 0f 5c cf          	subsd  %xmm7,%xmm1
41ab8a:	f2 0f 10 f7          	movsd  %xmm7,%xmm6
41ab8e:	f2 0f 59 ff          	mulsd  %xmm7,%xmm7
41ab92:	f2 0f 58 c6          	addsd  %xmm6,%xmm0
41ab96:	66 0f 56 ec          	orpd   %xmm4,%xmm5
41ab9a:	f2 0f 5c df          	subsd  %xmm7,%xmm3
41ab9e:	f2 0f 59 c1          	mulsd  %xmm1,%xmm0
41aba2:	f2 0f 10 e3          	movsd  %xmm3,%xmm4
41aba6:	f2 0f 5c d8          	subsd  %xmm0,%xmm3
41abaa:	f2 0f 51 db          	sqrtsd %xmm3,%xmm3
41abae:	25 80 00 00 00       	and    $0x80,%eax
41abb3:	c1 e8 07             	shr    $0x7,%eax
41abb6:	f7 d8                	neg    %eax
41abb8:	f2 0f 10 fb          	movsd  %xmm3,%xmm7
41abbc:	66 0f 54 d3          	andpd  %xmm3,%xmm2
41abc0:	66 0f 73 f3 02       	psllq  $0x2,%xmm3
41abc5:	66 0f c5 d3 03       	pextrw $0x3,%xmm3,%edx
41abca:	66 0f 56 d5          	orpd   %xmm5,%xmm2
41abce:	66 0f 6e d8          	movd   %eax,%xmm3
41abd2:	66 0f 70 db 00       	pshufd $0x0,%xmm3,%xmm3
41abd7:	81 ea c0 fe 00 00    	sub    $0xfec0,%edx
41abdd:	03 d2                	add    %edx,%edx