5046bc:	8b 4b 14             	mov    0x14(%ebx),%ecx
5046bf:	8b 53 08             	mov    0x8(%ebx),%edx
5046c2:	ff 57 1c             	call   *0x1c(%edi)
5046c5:	89 43 0c             	mov    %eax,0xc(%ebx)
5046c8:	8b 43 18             	mov    0x18(%ebx),%eax
5046cb:	89 45 f4             	mov    %eax,-0xc(%ebp)
5046ce:	8d 43 18             	lea    0x18(%ebx),%eax
5046d1:	8b 55 14             	mov    0x14(%ebp),%edx
5046d4:	52                   	push   %edx
5046d5:	8b 4b 0c             	mov    0xc(%ebx),%ecx
5046d8:	51                   	push   %ecx
5046d9:	50                   	push   %eax
5046da:	8b c6                	mov    %esi,%eax
5046dc:	8b 53 10             	mov    0x10(%ebx),%edx
5046df:	52                   	push   %edx
5046e0:	8b b8 bc 01 00 00    	mov    0x1bc(%eax),%edi
5046e6:	8b 55 fc             	mov    -0x4(%ebp),%edx
5046e9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5046ec:	ff 57 04             	call   *0x4(%edi)
5046ef:	8b 43 18             	mov    0x18(%ebx),%eax
5046f2:	3b 45 f4             	cmp    -0xc(%ebp),%eax
5046f5:	76 28                	jbe    0x50471f
5046f7:	2b 45 f4             	sub    -0xc(%ebp),%eax
5046fa:	89 45 f0             	mov    %eax,-0x10(%ebp)
5046fd:	8b c6                	mov    %esi,%eax
5046ff:	8b 55 f0             	mov    -0x10(%ebp),%edx
504702:	52                   	push   %edx
504703:	8b 55 f4             	mov    -0xc(%ebp),%edx
504706:	8b b0 c4 01 00 00    	mov    0x1c4(%eax),%esi
50470c:	c1 e2 02             	shl    $0x2,%edx
50470f:	03 53 0c             	add    0xc(%ebx),%edx
504712:	33 c9                	xor    %ecx,%ecx
504714:	ff 56 04             	call   *0x4(%esi)
504717:	8b 45 0c             	mov    0xc(%ebp),%eax
50471a:	8b 55 f0             	mov    -0x10(%ebp),%edx
50471d:	01 10                	add    %edx,(%eax)
50471f:	8b 43 10             	mov    0x10(%ebx),%eax
504722:	3b 43 18             	cmp    0x18(%ebx),%eax
504725:	77 08                	ja     0x50472f
504727:	01 43 14             	add    %eax,0x14(%ebx)
50472a:	33 d2                	xor    %edx,%edx
50472c:	89 53 18             	mov    %edx,0x18(%ebx)
50472f:	5f                   	pop    %edi
504730:	5e                   	pop    %esi
504731:	5b                   	pop    %ebx
504732:	8b e5                	mov    %ebp,%esp
504734:	5d                   	pop    %ebp
504735:	c2 10 00             	ret    $0x10
504738:	55                   	push   %ebp
504739:	8b ec                	mov    %esp,%ebp
50473b:	51                   	push   %ecx
50473c:	53                   	push   %ebx
50473d:	56                   	push   %esi
50473e:	57                   	push   %edi
50473f:	89 45 fc             	mov    %eax,-0x4(%ebp)
504742:	8b 45 fc             	mov    -0x4(%ebp),%eax
504745:	8b 98 a8 01 00 00    	mov    0x1a8(%eax),%ebx
50474b:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
50474f:	75 18                	jne    0x504769
504751:	8b 43 10             	mov    0x10(%ebx),%eax
504754:	50                   	push   %eax
504755:	6a 00                	push   $0x0
504757:	8b 45 fc             	mov    -0x4(%ebp),%eax
50475a:	8b 4b 14             	mov    0x14(%ebx),%ecx
50475d:	8b 53 08             	mov    0x8(%ebx),%edx
504760:	8b 70 04             	mov    0x4(%eax),%esi
504763:	ff 56 1c             	call   *0x1c(%esi)
504766:	89 43 0c             	mov    %eax,0xc(%ebx)
504769:	8b 45 0c             	mov    0xc(%ebp),%eax
50476c:	8b 73 10             	mov    0x10(%ebx),%esi
50476f:	8b 53 18             	mov    0x18(%ebx),%edx
504772:	ff 30                	push   (%eax)
504774:	8b 45 08             	mov    0x8(%ebp),%eax
504777:	59                   	pop    %ecx
504778:	2b c1                	sub    %ecx,%eax
50477a:	2b f2                	sub    %edx,%esi
50477c:	3b c6                	cmp    %esi,%eax
50477e:	73 02                	jae    0x504782
504780:	8b f0                	mov    %eax,%esi
504782:	8b 45 fc             	mov    -0x4(%ebp),%eax
504785:	8b 40 70             	mov    0x70(%eax),%eax
504788:	2b 43 14             	sub    0x14(%ebx),%eax
50478b:	3b c6                	cmp    %esi,%eax
50478d:	73 02                	jae    0x504791
50478f:	8b f0                	mov    %eax,%esi
504791:	56                   	push   %esi
504792:	8b 45 0c             	mov    0xc(%ebp),%eax
504795:	c1 e2 02             	shl    $0x2,%edx
504798:	8b 08                	mov    (%eax),%ecx
50479a:	8b 45 fc             	mov    -0x4(%ebp),%eax
50479d:	c1 e1 02             	shl    $0x2,%ecx
5047a0:	03 4d 10             	add    0x10(%ebp),%ecx
5047a3:	03 53 0c             	add    0xc(%ebx),%edx
5047a6:	8b b8 c4 01 00 00    	mov    0x1c4(%eax),%edi
5047ac:	ff 57 04             	call   *0x4(%edi)
5047af:	8b 45 0c             	mov    0xc(%ebp),%eax
5047b2:	01 30                	add    %esi,(%eax)
5047b4:	01 73 18             	add    %esi,0x18(%ebx)
5047b7:	8b 43 10             	mov    0x10(%ebx),%eax
5047ba:	3b 43 18             	cmp    0x18(%ebx),%eax
5047bd:	77 08                	ja     0x5047c7
5047bf:	01 43 14             	add    %eax,0x14(%ebx)
5047c2:	33 d2                	xor    %edx,%edx
5047c4:	89 53 18             	mov    %edx,0x18(%ebx)
5047c7:	5f                   	pop    %edi
5047c8:	5e                   	pop    %esi
5047c9:	5b                   	pop    %ebx
5047ca:	59                   	pop    %ecx
5047cb:	5d                   	pop    %ebp
5047cc:	c2 10 00             	ret    $0x10
5047cf:	90                   	nop
5047d0:	53                   	push   %ebx
5047d1:	56                   	push   %esi
5047d2:	8b f0                	mov    %eax,%esi
5047d4:	57                   	push   %edi
5047d5:	8b c6                	mov    %esi,%eax
5047d7:	51                   	push   %ecx
5047d8:	89 14 24             	mov    %edx,(%esp)
5047db:	ba 01 00 00 00       	mov    $0x1,%edx
5047e0:	8b 58 04             	mov    0x4(%eax),%ebx
5047e3:	b9 1c 00 00 00       	mov    $0x1c,%ecx
5047e8:	ff 13                	call   *(%ebx)
5047ea:	8b d8                	mov    %eax,%ebx
5047ec:	33 c0                	xor    %eax,%eax
5047ee:	89 9e a8 01 00 00    	mov    %ebx,0x1a8(%esi)
5047f4:	33 d2                	xor    %edx,%edx
5047f6:	c7 03 70 45 50 00    	movl   $0x504570,(%ebx)
5047fc:	89 43 08             	mov    %eax,0x8(%ebx)
5047ff:	89 53 0c             	mov    %edx,0xc(%ebx)
504802:	83 7e 50 00          	cmpl   $0x0,0x50(%esi)
504806:	74 54                	je     0x50485c
504808:	8b be 30 01 00 00    	mov    0x130(%esi),%edi
50480e:	89 7b 10             	mov    %edi,0x10(%ebx)
504811:	83 3c 24 00          	cmpl   $0x0,(%esp)
504815:	74 2a                	je     0x504841
504817:	8b 46 6c             	mov    0x6c(%esi),%eax
50481a:	f7 6e 74             	imull  0x74(%esi)
50481d:	50                   	push   %eax
50481e:	8b d7                	mov    %edi,%edx
504820:	8b 46 70             	mov    0x70(%esi),%eax
504823:	e8 54 33 00 00       	call   0x507b7c
504828:	50                   	push   %eax
504829:	8b c6                	mov    %esi,%eax
50482b:	8b 53 10             	mov    0x10(%ebx),%edx
50482e:	33 c9                	xor    %ecx,%ecx
504830:	52                   	push   %edx
504831:	ba 01 00 00 00       	mov    $0x1,%edx
504836:	8b 70 04             	mov    0x4(%eax),%esi
504839:	ff 56 10             	call   *0x10(%esi)
50483c:	89 43 08             	mov    %eax,0x8(%ebx)
50483f:	eb 1b                	jmp    0x50485c
504841:	8b 43 10             	mov    0x10(%ebx),%eax
504844:	ba 01 00 00 00       	mov    $0x1,%edx
504849:	50                   	push   %eax
50484a:	8b c6                	mov    %esi,%eax
50484c:	8b 4e 6c             	mov    0x6c(%esi),%ecx
50484f:	0f af 4e 74          	imul   0x74(%esi),%ecx
504853:	8b 70 04             	mov    0x4(%eax),%esi
504856:	ff 56 08             	call   *0x8(%esi)
504859:	89 43 0c             	mov    %eax,0xc(%ebx)
50485c:	5a                   	pop    %edx
50485d:	5f                   	pop    %edi
50485e:	5e                   	pop    %esi
50485f:	5b                   	pop    %ebx
504860:	c3                   	ret
504861:	8d 40 00             	lea    0x0(%eax),%eax
504864:	53                   	push   %ebx
504865:	56                   	push   %esi
504866:	57                   	push   %edi
504867:	55                   	push   %ebp
504868:	83 c4 d0             	add    $0xffffffd0,%esp
50486b:	33 d2                	xor    %edx,%edx
50486d:	33 c9                	xor    %ecx,%ecx
50486f:	89 04 24             	mov    %eax,(%esp)
504872:	8b 04 24             	mov    (%esp),%eax
504875:	8b 80 b8 01 00 00    	mov    0x1b8(%eax),%eax
50487b:	89 54 24 0c          	mov    %edx,0xc(%esp)
50487f:	89 4c 24 10          	mov    %ecx,0x10(%esp)
504883:	33 d2                	xor    %edx,%edx
504885:	89 54 24 04          	mov    %edx,0x4(%esp)
504889:	83 c0 04             	add    $0x4,%eax
50488c:	8b 0c 24             	mov    (%esp),%ecx
50488f:	8b 91 d4 00 00 00    	mov    0xd4(%ecx),%edx
504895:	89 54 24 08          	mov    %edx,0x8(%esp)
504899:	89 44 24 20          	mov    %eax,0x20(%esp)
50489d:	e9 fd 01 00 00       	jmp    0x504a9f
5048a2:	8b 4c 24 08          	mov    0x8(%esp),%ecx
5048a6:	8b 41 24             	mov    0x24(%ecx),%eax
5048a9:	48                   	dec    %eax
5048aa:	74 0f                	je     0x5048bb
5048ac:	48                   	dec    %eax
5048ad:	74 1f                	je     0x5048ce
5048af:	83 e8 02             	sub    $0x2,%eax
5048b2:	74 2a                	je     0x5048de
5048b4:	83 e8 04             	sub    $0x4,%eax
5048b7:	74 35                	je     0x5048ee
5048b9:	eb 7a                	jmp    0x504935
5048bb:	c7 44 24 10 dc 5f 50 	movl   $0x505fdc,0x10(%esp)
5048c2:	00
5048c3:	33 d2                	xor    %edx,%edx
5048c5:	89 54 24 0c          	mov    %edx,0xc(%esp)
5048c9:	e9 84 00 00 00       	jmp    0x504952
5048ce:	c7 44 24 10 00 5e 50 	movl   $0x505e00,0x10(%esp)
5048d5:	00
5048d6:	33 c9                	xor    %ecx,%ecx
5048d8:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5048dc:	eb 74                	jmp    0x504952
5048de:	c7 44 24 10 6c 5a 50 	movl   $0x505a6c,0x10(%esp)
5048e5:	00
5048e6:	33 c0                	xor    %eax,%eax
5048e8:	89 44 24 0c          	mov    %eax,0xc(%esp)
5048ec:	eb 64                	jmp    0x504952
5048ee:	8b 14 24             	mov    (%esp),%edx
5048f1:	8b 4a 44             	mov    0x44(%edx),%ecx
5048f4:	49                   	dec    %ecx
5048f5:	74 05                	je     0x5048fc
5048f7:	49                   	dec    %ecx
5048f8:	74 14                	je     0x50490e
5048fa:	eb 24                	jmp    0x504920
5048fc:	c7 44 24 10 60 56 50 	movl   $0x505660,0x10(%esp)
504903:	00
504904:	c7 44 24 0c 01 00 00 	movl   $0x1,0xc(%esp)
50490b:	00
50490c:	eb 44                	jmp    0x504952
50490e:	c7 44 24 10 30 52 50 	movl   $0x505230,0x10(%esp)
504915:	00
504916:	c7 44 24 0c 02 00 00 	movl   $0x2,0xc(%esp)
50491d:	00
50491e:	eb 32                	jmp    0x504952
504920:	8b 04 24             	mov    (%esp),%eax
504923:	8b 10                	mov    (%eax),%edx
504925:	c7 42 14 2f 00 00 00 	movl   $0x2f,0x14(%edx)
50492c:	8b 04 24             	mov    (%esp),%eax
50492f:	8b 10                	mov    (%eax),%edx
504931:	ff 12                	call   *(%edx)
504933:	eb 1d                	jmp    0x504952
504935:	8b 0c 24             	mov    (%esp),%ecx
504938:	8b 01                	mov    (%ecx),%eax
50493a:	c7 40 14 06 00 00 00 	movl   $0x6,0x14(%eax)
504941:	8b 54 24 08          	mov    0x8(%esp),%edx
504945:	8b 4a 24             	mov    0x24(%edx),%ecx
504948:	89 48 18             	mov    %ecx,0x18(%eax)
50494b:	8b 04 24             	mov    (%esp),%eax
50494e:	8b 10                	mov    (%eax),%edx
504950:	ff 12                	call   *(%edx)
504952:	8b 4c 24 20          	mov    0x20(%esp),%ecx
504956:	8b 44 24 10          	mov    0x10(%esp),%eax
50495a:	89 01                	mov    %eax,(%ecx)
50495c:	8b 54 24 08          	mov    0x8(%esp),%edx
504960:	83 7a 30 00          	cmpl   $0x0,0x30(%edx)
504964:	0f 84 27 01 00 00    	je     0x504a91
50496a:	8b 4c 24 20          	mov    0x20(%esp),%ecx
50496e:	8b 41 28             	mov    0x28(%ecx),%eax
504971:	3b 44 24 0c          	cmp    0xc(%esp),%eax
504975:	0f 84 16 01 00 00    	je     0x504a91
50497b:	8b 54 24 08          	mov    0x8(%esp),%edx
50497f:	8b 4a 4c             	mov    0x4c(%edx),%ecx
504982:	89 4c 24 14          	mov    %ecx,0x14(%esp)
504986:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
50498b:	0f 84 00 01 00 00    	je     0x504a91
504991:	8b 44 24 20          	mov    0x20(%esp),%eax
504995:	8b 54 24 0c          	mov    0xc(%esp),%edx
504999:	89 50 28             	mov    %edx,0x28(%eax)
50499c:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
5049a0:	83 e9 01             	sub    $0x1,%ecx
5049a3:	72 0a                	jb     0x5049af
5049a5:	74 2d                	je     0x5049d4
5049a7:	49                   	dec    %ecx
5049a8:	74 6b                	je     0x504a15
5049aa:	e9 cf 00 00 00       	jmp    0x504a7e
5049af:	8b 44 24 08          	mov    0x8(%esp),%eax
5049b3:	8b 50 50             	mov    0x50(%eax),%edx
5049b6:	33 c0                	xor    %eax,%eax
5049b8:	8b ca                	mov    %edx,%ecx
5049ba:	8b 54 24 14          	mov    0x14(%esp),%edx
5049be:	0f b7 1a             	movzwl (%edx),%ebx
5049c1:	89 19                	mov    %ebx,(%ecx)
5049c3:	40                   	inc    %eax
5049c4:	83 c1 04             	add    $0x4,%ecx
5049c7:	83 c2 02             	add    $0x2,%edx
5049ca:	83 f8 40             	cmp    $0x40,%eax
5049cd:	7c ef                	jl     0x5049be
5049cf:	e9 bd 00 00 00       	jmp    0x504a91
5049d4:	8b 44 24 08          	mov    0x8(%esp),%eax
5049d8:	8b 50 50             	mov    0x50(%eax),%edx
5049db:	33 c0                	xor    %eax,%eax
5049dd:	89 54 24 24          	mov    %edx,0x24(%esp)
5049e1:	b9 a4 d8 68 00       	mov    $0x68d8a4,%ecx
5049e6:	8b 54 24 14          	mov    0x14(%esp),%edx
5049ea:	0f b7 1a             	movzwl (%edx),%ebx
5049ed:	0f bf 31             	movswl (%ecx),%esi
5049f0:	0f af de             	imul   %esi,%ebx
5049f3:	81 c3 00 08 00 00    	add    $0x800,%ebx
5049f9:	8b 74 24 24          	mov    0x24(%esp),%esi
5049fd:	c1 fb 0c             	sar    $0xc,%ebx
504a00:	83 c1 02             	add    $0x2,%ecx
504a03:	89 1e                	mov    %ebx,(%esi)
504a05:	83 c2 02             	add    $0x2,%edx
504a08:	83 44 24 24 04       	addl   $0x4,0x24(%esp)
504a0d:	40                   	inc    %eax
504a0e:	83 f8 40             	cmp    $0x40,%eax
504a11:	7c d7                	jl     0x5049ea
504a13:	eb 7c                	jmp    0x504a91
504a15:	8b 44 24 08          	mov    0x8(%esp),%eax
504a19:	8b 50 50             	mov    0x50(%eax),%edx
504a1c:	33 c0                	xor    %eax,%eax
504a1e:	89 54 24 18          	mov    %edx,0x18(%esp)
504a22:	33 d2                	xor    %edx,%edx
504a24:	89 54 24 1c          	mov    %edx,0x1c(%esp)
504a28:	c7 44 24 28 24 d9 68 	movl   $0x68d924,0x28(%esp)
504a2f:	00
504a30:	33 ff                	xor    %edi,%edi
504a32:	8b 54 24 18          	mov    0x18(%esp),%edx
504a36:	8d 1c 82             	lea    (%edx,%eax,4),%ebx
504a39:	b9 24 d9 68 00       	mov    $0x68d924,%ecx
504a3e:	8b 54 24 28          	mov    0x28(%esp),%edx
504a42:	8b f2                	mov    %edx,%esi
504a44:	8b 54 24 14          	mov    0x14(%esp),%edx
504a48:	8d 14 42             	lea    (%edx,%eax,2),%edx
504a4b:	0f b7 2a             	movzwl (%edx),%ebp
504a4e:	89 6c 24 2c          	mov    %ebp,0x2c(%esp)
504a52:	83 c2 02             	add    $0x2,%edx
504a55:	db 44 24 2c          	fildl  0x2c(%esp)
504a59:	40                   	inc    %eax
504a5a:	47                   	inc    %edi
504a5b:	dc 0e                	fmull  (%esi)
504a5d:	dc 09                	fmull  (%ecx)
504a5f:	83 c1 08             	add    $0x8,%ecx
504a62:	d9 1b                	fstps  (%ebx)
504a64:	83 c3 04             	add    $0x4,%ebx
504a67:	83 ff 08             	cmp    $0x8,%edi
504a6a:	7c df                	jl     0x504a4b
504a6c:	ff 44 24 1c          	incl   0x1c(%esp)
504a70:	83 44 24 28 08       	addl   $0x8,0x28(%esp)
504a75:	83 7c 24 1c 08       	cmpl   $0x8,0x1c(%esp)
504a7a:	7c b4                	jl     0x504a30
504a7c:	eb 13                	jmp    0x504a91
504a7e:	8b 04 24             	mov    (%esp),%eax
504a81:	8b 10                	mov    (%eax),%edx
504a83:	c7 42 14 2f 00 00 00 	movl   $0x2f,0x14(%edx)
504a8a:	8b 04 24             	mov    (%esp),%eax
504a8d:	8b 10                	mov    (%eax),%edx
504a8f:	ff 12                	call   *(%edx)
504a91:	83 44 24 20 04       	addl   $0x4,0x20(%esp)
504a96:	ff 44 24 04          	incl   0x4(%esp)
504a9a:	83 44 24 08 54       	addl   $0x54,0x8(%esp)
504a9f:	8b 0c 24             	mov    (%esp),%ecx
504aa2:	8b 41 20             	mov    0x20(%ecx),%eax
504aa5:	3b 44 24 04          	cmp    0x4(%esp),%eax
504aa9:	0f 8f f3 fd ff ff    	jg     0x5048a2