50e951:	8b ec                	mov    %esp,%ebp
50e953:	83 ec 14             	sub    $0x14,%esp
50e956:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50e95b:	33 c5                	xor    %ebp,%eax
50e95d:	89 45 fc             	mov    %eax,-0x4(%ebp)
50e960:	53                   	push   %ebx
50e961:	56                   	push   %esi
50e962:	8b 75 08             	mov    0x8(%ebp),%esi
50e965:	33 db                	xor    %ebx,%ebx
50e967:	57                   	push   %edi
50e968:	8b 7d 0c             	mov    0xc(%ebp),%edi
50e96b:	89 5d f0             	mov    %ebx,-0x10(%ebp)
50e96e:	8b 56 3c             	mov    0x3c(%esi),%edx
50e971:	39 1a                	cmp    %ebx,(%edx)
50e973:	75 2a                	jne    0x50e99f
50e975:	8b 86 90 00 00 00    	mov    0x90(%esi),%eax
50e97b:	8b 0e                	mov    (%esi),%ecx
50e97d:	83 c8 1e             	or     $0x1e,%eax
50e980:	53                   	push   %ebx
50e981:	25 7f 7f 08 01       	and    $0x1087f7f,%eax
50e986:	50                   	push   %eax
50e987:	8b 41 18             	mov    0x18(%ecx),%eax
50e98a:	52                   	push   %edx
50e98b:	53                   	push   %ebx
50e98c:	51                   	push   %ecx
50e98d:	ff d0                	call   *%eax
50e98f:	8b d8                	mov    %eax,%ebx
50e991:	83 c4 14             	add    $0x14,%esp
50e994:	89 5d f0             	mov    %ebx,-0x10(%ebp)
50e997:	85 db                	test   %ebx,%ebx
50e999:	0f 85 15 01 00 00    	jne    0x50eab4
50e99f:	8b 46 24             	mov    0x24(%esi),%eax
50e9a2:	8b 4e 18             	mov    0x18(%esi),%ecx
50e9a5:	3b c1                	cmp    %ecx,%eax
50e9a7:	73 47                	jae    0x50e9f0
50e9a9:	83 7f 10 00          	cmpl   $0x0,0x10(%edi)
50e9ad:	75 05                	jne    0x50e9b4
50e9af:	39 47 18             	cmp    %eax,0x18(%edi)
50e9b2:	76 3c                	jbe    0x50e9f0
50e9b4:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
50e9ba:	6a 00                	push   $0x0
50e9bc:	99                   	cltd
50e9bd:	51                   	push   %ecx
50e9be:	52                   	push   %edx
50e9bf:	50                   	push   %eax
50e9c0:	e8 3b 31 0d 00       	call   0x5e1b00
50e9c5:	89 45 f4             	mov    %eax,-0xc(%ebp)
50e9c8:	8b 46 3c             	mov    0x3c(%esi),%eax
50e9cb:	89 55 f8             	mov    %edx,-0x8(%ebp)
50e9ce:	8b 08                	mov    (%eax),%ecx
50e9d0:	85 c9                	test   %ecx,%ecx
50e9d2:	74 0f                	je     0x50e9e3
50e9d4:	8d 55 f4             	lea    -0xc(%ebp),%edx
50e9d7:	52                   	push   %edx
50e9d8:	6a 05                	push   $0x5
50e9da:	50                   	push   %eax
50e9db:	8b 41 28             	mov    0x28(%ecx),%eax
50e9de:	ff d0                	call   *%eax
50e9e0:	83 c4 0c             	add    $0xc,%esp
50e9e3:	8b 46 18             	mov    0x18(%esi),%eax
50e9e6:	89 46 24             	mov    %eax,0x24(%esi)
50e9e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
50e9f0:	85 ff                	test   %edi,%edi
50e9f2:	0f 84 ba 00 00 00    	je     0x50eab2
50e9f8:	8b 5f 18             	mov    0x18(%edi),%ebx
50e9fb:	3b 5e 18             	cmp    0x18(%esi),%ebx
50e9fe:	0f 87 a0 00 00 00    	ja     0x50eaa4
50ea04:	f6 47 1c 10          	testb  $0x10,0x1c(%edi)
50ea08:	0f 85 96 00 00 00    	jne    0x50eaa4
50ea0e:	8b 86 98 00 00 00    	mov    0x98(%esi),%eax
50ea14:	8d 4b ff             	lea    -0x1(%ebx),%ecx
50ea17:	99                   	cltd
50ea18:	52                   	push   %edx
50ea19:	50                   	push   %eax
50ea1a:	6a 00                	push   $0x0
50ea1c:	51                   	push   %ecx
50ea1d:	e8 de 30 0d 00       	call   0x5e1b00
50ea22:	89 45 ec             	mov    %eax,-0x14(%ebp)
50ea25:	89 55 f0             	mov    %edx,-0x10(%ebp)
50ea28:	83 fb 01             	cmp    $0x1,%ebx
50ea2b:	75 21                	jne    0x50ea4e
50ea2d:	8b 4f 14             	mov    0x14(%edi),%ecx
50ea30:	8b 47 04             	mov    0x4(%edi),%eax
50ea33:	8b 49 68             	mov    0x68(%ecx),%ecx
50ea36:	0f c9                	bswap  %ecx
50ea38:	41                   	inc    %ecx
50ea39:	0f c9                	bswap  %ecx
50ea3b:	89 48 18             	mov    %ecx,0x18(%eax)
50ea3e:	8b 47 04             	mov    0x4(%edi),%eax
50ea41:	89 48 5c             	mov    %ecx,0x5c(%eax)
50ea44:	8b 47 04             	mov    0x4(%edi),%eax
50ea47:	c7 40 60 00 2e 3f d9 	movl   $0xd93f2e00,0x60(%eax)
50ea4e:	ff 75 f0             	push   -0x10(%ebp)
50ea51:	8b 46 3c             	mov    0x3c(%esi),%eax
50ea54:	ff 75 ec             	push   -0x14(%ebp)
50ea57:	8b 57 04             	mov    0x4(%edi),%edx
50ea5a:	ff b6 98 00 00 00    	push   0x98(%esi)
50ea60:	8b 08                	mov    (%eax),%ecx
50ea62:	52                   	push   %edx
50ea63:	50                   	push   %eax
50ea64:	89 55 f8             	mov    %edx,-0x8(%ebp)
50ea67:	8b 41 0c             	mov    0xc(%ecx),%eax
50ea6a:	ff d0                	call   *%eax
50ea6c:	83 c4 14             	add    $0x14,%esp
50ea6f:	89 45 f0             	mov    %eax,-0x10(%ebp)
50ea72:	83 fb 01             	cmp    $0x1,%ebx
50ea75:	75 0b                	jne    0x50ea82
50ea77:	8b 45 f8             	mov    -0x8(%ebp),%eax
50ea7a:	0f 10 40 18          	movups 0x18(%eax),%xmm0
50ea7e:	0f 11 46 68          	movups %xmm0,0x68(%esi)
50ea82:	3b 5e 20             	cmp    0x20(%esi),%ebx
50ea85:	76 03                	jbe    0x50ea8a
50ea87:	89 5e 20             	mov    %ebx,0x20(%esi)
50ea8a:	ff 86 c0 00 00 00    	incl   0xc0(%esi)
50ea90:	8b 46 58             	mov    0x58(%esi),%eax
50ea93:	85 c0                	test   %eax,%eax
50ea95:	74 0d                	je     0x50eaa4
50ea97:	ff 77 04             	push   0x4(%edi)
50ea9a:	53                   	push   %ebx
50ea9b:	50                   	push   %eax
50ea9c:	e8 3f 57 fe ff       	call   0x4f41e0
50eaa1:	83 c4 0c             	add    $0xc,%esp
50eaa4:	8b 5d f0             	mov    -0x10(%ebp),%ebx
50eaa7:	8b 7f 10             	mov    0x10(%edi),%edi
50eaaa:	85 db                	test   %ebx,%ebx
50eaac:	0f 84 3e ff ff ff    	je     0x50e9f0
50eab2:	8b c3                	mov    %ebx,%eax
50eab4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50eab7:	5f                   	pop    %edi
50eab8:	5e                   	pop    %esi
50eab9:	33 cd                	xor    %ebp,%ecx
50eabb:	5b                   	pop    %ebx
50eabc:	e8 19 2a 0d 00       	call   0x5e14da
50eac1:	8b e5                	mov    %ebp,%esp
50eac3:	5d                   	pop    %ebp
50eac4:	c3                   	ret
50eac5:	cc                   	int3
50eac6:	cc                   	int3
50eac7:	cc                   	int3
50eac8:	cc                   	int3
50eac9:	cc                   	int3
50eaca:	cc                   	int3
50eacb:	cc                   	int3
50eacc:	cc                   	int3
50eacd:	cc                   	int3
50eace:	cc                   	int3
50eacf:	cc                   	int3
50ead0:	55                   	push   %ebp
50ead1:	8b ec                	mov    %esp,%ebp
50ead3:	83 ec 08             	sub    $0x8,%esp
50ead6:	56                   	push   %esi
50ead7:	8b 75 10             	mov    0x10(%ebp),%esi
50eada:	57                   	push   %edi
50eadb:	8b 7d 0c             	mov    0xc(%ebp),%edi
50eade:	56                   	push   %esi
50eadf:	57                   	push   %edi
50eae0:	e8 db 09 00 00       	call   0x50f4c0
50eae5:	83 c4 08             	add    $0x8,%esp
50eae8:	85 c0                	test   %eax,%eax
50eaea:	0f 84 b9 00 00 00    	je     0x50eba9
50eaf0:	56                   	push   %esi
50eaf1:	57                   	push   %edi
50eaf2:	e8 c9 00 00 00       	call   0x50ebc0
50eaf7:	83 c4 08             	add    $0x8,%esp
50eafa:	85 c0                	test   %eax,%eax
50eafc:	0f 84 a7 00 00 00    	je     0x50eba9
50eb02:	68 d4 78 6b 00       	push   $0x6b78d4
50eb07:	57                   	push   %edi
50eb08:	e8 23 f1 02 00       	call   0x53dc30
50eb0d:	83 c4 08             	add    $0x8,%esp
50eb10:	85 c0                	test   %eax,%eax
50eb12:	75 21                	jne    0x50eb35
50eb14:	ff 75 08             	push   0x8(%ebp)
50eb17:	e8 a4 2c 02 00       	call   0x5317c0
50eb1c:	83 c4 04             	add    $0x4,%esp
50eb1f:	85 c0                	test   %eax,%eax
50eb21:	74 12                	je     0x50eb35
50eb23:	56                   	push   %esi
50eb24:	ff 75 08             	push   0x8(%ebp)
50eb27:	e8 74 85 00 00       	call   0x5170a0
50eb2c:	83 c4 08             	add    $0x8,%esp
50eb2f:	5f                   	pop    %edi
50eb30:	5e                   	pop    %esi
50eb31:	8b e5                	mov    %ebp,%esp
50eb33:	5d                   	pop    %ebp
50eb34:	c3                   	ret
50eb35:	85 ff                	test   %edi,%edi
50eb37:	75 04                	jne    0x50eb3d
50eb39:	33 c9                	xor    %ecx,%ecx
50eb3b:	eb 14                	jmp    0x50eb51
50eb3d:	8b cf                	mov    %edi,%ecx
50eb3f:	8d 51 01             	lea    0x1(%ecx),%edx
50eb42:	8a 01                	mov    (%ecx),%al
50eb44:	41                   	inc    %ecx
50eb45:	84 c0                	test   %al,%al
50eb47:	75 f9                	jne    0x50eb42
50eb49:	2b ca                	sub    %edx,%ecx
50eb4b:	81 e1 ff ff ff 3f    	and    $0x3fffffff,%ecx
50eb51:	6a 01                	push   $0x1
50eb53:	51                   	push   %ecx
50eb54:	8d 45 f8             	lea    -0x8(%ebp),%eax
50eb57:	50                   	push   %eax
50eb58:	57                   	push   %edi
50eb59:	e8 02 a5 00 00       	call   0x519060
50eb5e:	83 c4 10             	add    $0x10,%esp
50eb61:	85 c0                	test   %eax,%eax
50eb63:	7e 4c                	jle    0x50ebb1
50eb65:	f2 0f 10 45 f8       	movsd  -0x8(%ebp),%xmm0
50eb6a:	66 0f 2f 05 40 c5 6b 	comisd 0x6bc540,%xmm0
50eb71:	00
50eb72:	c6 46 29 01          	movb   $0x1,0x29(%esi)
50eb76:	f2 0f 11 46 20       	movsd  %xmm0,0x20(%esi)
50eb7b:	72 2c                	jb     0x50eba9
50eb7d:	f2 0f 10 0d b8 c5 6b 	movsd  0x6bc5b8,%xmm1
50eb84:	00
50eb85:	66 0f 2f c8          	comisd %xmm0,%xmm1
50eb89:	76 1e                	jbe    0x50eba9
50eb8b:	f2 0f 59 05 c0 c5 6b 	mulsd  0x6bc5c0,%xmm0
50eb92:	00
50eb93:	f2 0f 58 05 f8 9b 6a 	addsd  0x6a9bf8,%xmm0
50eb9a:	00
50eb9b:	e8 eb 2b 0d 00       	call   0x5e178b
50eba0:	89 06                	mov    %eax,(%esi)
50eba2:	89 56 04             	mov    %edx,0x4(%esi)
50eba5:	c6 46 28 01          	movb   $0x1,0x28(%esi)
50eba9:	5f                   	pop    %edi
50ebaa:	33 c0                	xor    %eax,%eax
50ebac:	5e                   	pop    %esi
50ebad:	8b e5                	mov    %ebp,%esp
50ebaf:	5d                   	pop    %ebp
50ebb0:	c3                   	ret
50ebb1:	5f                   	pop    %edi
50ebb2:	b8 01 00 00 00       	mov    $0x1,%eax
50ebb7:	5e                   	pop    %esi
50ebb8:	8b e5                	mov    %ebp,%esp
50ebba:	5d                   	pop    %ebp
50ebbb:	c3                   	ret
50ebbc:	cc                   	int3
50ebbd:	cc                   	int3
50ebbe:	cc                   	int3
50ebbf:	cc                   	int3
50ebc0:	55                   	push   %ebp
50ebc1:	8b ec                	mov    %esp,%ebp
50ebc3:	83 ec 10             	sub    $0x10,%esp
50ebc6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50ebcb:	33 c5                	xor    %ebp,%eax
50ebcd:	89 45 fc             	mov    %eax,-0x4(%ebp)
50ebd0:	56                   	push   %esi
50ebd1:	8b 75 08             	mov    0x8(%ebp),%esi
50ebd4:	8d 45 f0             	lea    -0x10(%ebp),%eax
50ebd7:	57                   	push   %edi
50ebd8:	8b 7d 0c             	mov    0xc(%ebp),%edi
50ebdb:	0f 57 c9             	xorps  %xmm1,%xmm1
50ebde:	50                   	push   %eax
50ebdf:	8d 45 f4             	lea    -0xc(%ebp),%eax
50ebe2:	50                   	push   %eax
50ebe3:	68 bc 78 6b 00       	push   $0x6b78bc
50ebe8:	56                   	push   %esi
50ebe9:	e8 02 70 ff ff       	call   0x505bf0
50ebee:	83 c4 10             	add    $0x10,%esp
50ebf1:	83 f8 02             	cmp    $0x2,%eax
50ebf4:	74 15                	je     0x50ec0b
50ebf6:	5f                   	pop    %edi
50ebf7:	b8 01 00 00 00       	mov    $0x1,%eax
50ebfc:	5e                   	pop    %esi
50ebfd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50ec00:	33 cd                	xor    %ebp,%ecx
50ec02:	e8 d3 28 0d 00       	call   0x5e14da
50ec07:	8b e5                	mov    %ebp,%esp
50ec09:	5d                   	pop    %ebp
50ec0a:	c3                   	ret
50ec0b:	83 c6 05             	add    $0x5,%esi
50ec0e:	80 3e 3a             	cmpb   $0x3a,(%esi)
50ec11:	0f 85 89 00 00 00    	jne    0x50eca0
50ec17:	8d 45 f8             	lea    -0x8(%ebp),%eax
50ec1a:	46                   	inc    %esi
50ec1b:	50                   	push   %eax
50ec1c:	68 c4 78 6b 00       	push   $0x6b78c4
50ec21:	56                   	push   %esi
50ec22:	e8 c9 6f ff ff       	call   0x505bf0
50ec27:	83 c4 0c             	add    $0xc,%esp
50ec2a:	83 f8 01             	cmp    $0x1,%eax
50ec2d:	75 c7                	jne    0x50ebf6
50ec2f:	83 c6 02             	add    $0x2,%esi
50ec32:	80 3e 2e             	cmpb   $0x2e,(%esi)
50ec35:	75 70                	jne    0x50eca7
50ec37:	0f b6 46 01          	movzbl 0x1(%esi),%eax
50ec3b:	8d 4e 01             	lea    0x1(%esi),%ecx
50ec3e:	f6 80 40 1b 6b 00 04 	testb  $0x4,0x6b1b40(%eax)
50ec45:	74 60                	je     0x50eca7
50ec47:	f2 0f 10 15 00 9c 6a 	movsd  0x6a9c00,%xmm2
50ec4e:	00
50ec4f:	8b f1                	mov    %ecx,%esi
50ec51:	8a 0e                	mov    (%esi),%cl
50ec53:	0f b6 c1             	movzbl %cl,%eax
50ec56:	f6 80 40 1b 6b 00 04 	testb  $0x4,0x6b1b40(%eax)
50ec5d:	74 3b                	je     0x50ec9a
50ec5f:	f2 0f 10 1d 08 4d 69 	movsd  0x694d08,%xmm3
50ec66:	00
50ec67:	f2 0f 10 25 80 c5 6b 	movsd  0x6bc580,%xmm4
50ec6e:	00
50ec6f:	90                   	nop
50ec70:	0f be c1             	movsbl %cl,%eax
50ec73:	46                   	inc    %esi
50ec74:	f2 0f 59 cb          	mulsd  %xmm3,%xmm1
50ec78:	f2 0f 59 d3          	mulsd  %xmm3,%xmm2
50ec7c:	8a 0e                	mov    (%esi),%cl
50ec7e:	66 0f 6e c0          	movd   %eax,%xmm0
50ec82:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
50ec86:	0f b6 c1             	movzbl %cl,%eax
50ec89:	f6 80 40 1b 6b 00 04 	testb  $0x4,0x6b1b40(%eax)
50ec90:	f2 0f 58 c8          	addsd  %xmm0,%xmm1
50ec94:	f2 0f 5c cc          	subsd  %xmm4,%xmm1
50ec98:	75 d6                	jne    0x50ec70
50ec9a:	f2 0f 5e ca          	divsd  %xmm2,%xmm1
50ec9e:	eb 07                	jmp    0x50eca7
50eca0:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
50eca7:	66 0f 6e 45 f8       	movd   -0x8(%ebp),%xmm0
50ecac:	8b 45 f4             	mov    -0xc(%ebp),%eax
50ecaf:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
50ecb3:	89 47 14             	mov    %eax,0x14(%edi)
50ecb6:	8b 45 f0             	mov    -0x10(%ebp),%eax
50ecb9:	57                   	push   %edi
50ecba:	56                   	push   %esi
50ecbb:	66 c7 47 28 00 00    	movw   $0x0,0x28(%edi)
50ecc1:	c6 47 2b 01          	movb   $0x1,0x2b(%edi)
50ecc5:	f2 0f 58 c1          	addsd  %xmm1,%xmm0
50ecc9:	89 47 18             	mov    %eax,0x18(%edi)
50eccc:	f2 0f 11 47 20       	movsd  %xmm0,0x20(%edi)
50ecd1:	e8 da 06 00 00       	call   0x50f3b0
50ecd6:	83 c4 08             	add    $0x8,%esp
50ecd9:	85 c0                	test   %eax,%eax
50ecdb:	0f 85 15 ff ff ff    	jne    0x50ebf6
50ece1:	39 47 1c             	cmp    %eax,0x1c(%edi)
50ece4:	8b 4d fc             	mov    -0x4(%ebp),%ecx
50ece7:	0f 95 c0             	setne  %al
50ecea:	33 cd                	xor    %ebp,%ecx
50ecec:	88 47 2c             	mov    %al,0x2c(%edi)
50ecef:	33 c0                	xor    %eax,%eax
50ecf1:	5f                   	pop    %edi
50ecf2:	5e                   	pop    %esi
50ecf3:	e8 e2 27 0d 00       	call   0x5e14da
50ecf8:	8b e5                	mov    %ebp,%esp
50ecfa:	5d                   	pop    %ebp
50ecfb:	c3                   	ret
50ecfc:	cc                   	int3
50ecfd:	cc                   	int3
50ecfe:	cc                   	int3
50ecff:	cc                   	int3
50ed00:	55                   	push   %ebp