408681:	50                   	push   %eax
408682:	8b 4d d8             	mov    -0x28(%ebp),%ecx
408685:	51                   	push   %ecx
408686:	8b 55 d4             	mov    -0x2c(%ebp),%edx
408689:	52                   	push   %edx
40868a:	8b 45 08             	mov    0x8(%ebp),%eax
40868d:	50                   	push   %eax
40868e:	e8 4d fd ff ff       	call   0x4083e0
408693:	83 c4 1c             	add    $0x1c,%esp
408696:	85 c0                	test   %eax,%eax
408698:	74 6a                	je     0x408704
40869a:	6a 60                	push   $0x60
40869c:	e8 df e1 ff ff       	call   0x406880
4086a1:	83 c4 04             	add    $0x4,%esp
4086a4:	89 45 fc             	mov    %eax,-0x4(%ebp)
4086a7:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4086ab:	74 4b                	je     0x4086f8
4086ad:	6a 20                	push   $0x20
4086af:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4086b2:	51                   	push   %ecx
4086b3:	8b 55 fc             	mov    -0x4(%ebp),%edx
4086b6:	52                   	push   %edx
4086b7:	e8 e4 e2 ff ff       	call   0x4069a0
4086bc:	83 c4 0c             	add    $0xc,%esp
4086bf:	6a 20                	push   $0x20
4086c1:	8b 45 ec             	mov    -0x14(%ebp),%eax
4086c4:	50                   	push   %eax
4086c5:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4086c8:	83 c1 20             	add    $0x20,%ecx
4086cb:	51                   	push   %ecx
4086cc:	e8 cf e2 ff ff       	call   0x4069a0
4086d1:	83 c4 0c             	add    $0xc,%esp
4086d4:	6a 20                	push   $0x20
4086d6:	8b 55 f0             	mov    -0x10(%ebp),%edx
4086d9:	52                   	push   %edx
4086da:	8b 45 fc             	mov    -0x4(%ebp),%eax
4086dd:	83 c0 40             	add    $0x40,%eax
4086e0:	50                   	push   %eax
4086e1:	e8 ba e2 ff ff       	call   0x4069a0
4086e6:	83 c4 0c             	add    $0xc,%esp
4086e9:	8b 4d 20             	mov    0x20(%ebp),%ecx
4086ec:	8b 55 fc             	mov    -0x4(%ebp),%edx
4086ef:	89 11                	mov    %edx,(%ecx)
4086f1:	c7 45 f4 01 00 00 00 	movl   $0x1,-0xc(%ebp)
4086f8:	8b 45 f0             	mov    -0x10(%ebp),%eax
4086fb:	50                   	push   %eax
4086fc:	e8 af e1 ff ff       	call   0x4068b0
408701:	83 c4 04             	add    $0x4,%esp
408704:	8b 4d ec             	mov    -0x14(%ebp),%ecx
408707:	51                   	push   %ecx
408708:	e8 a3 e1 ff ff       	call   0x4068b0
40870d:	83 c4 04             	add    $0x4,%esp
408710:	8b 55 e8             	mov    -0x18(%ebp),%edx
408713:	52                   	push   %edx
408714:	e8 97 e1 ff ff       	call   0x4068b0
408719:	83 c4 04             	add    $0x4,%esp
40871c:	8b 45 f8             	mov    -0x8(%ebp),%eax
40871f:	50                   	push   %eax
408720:	e8 8b e1 ff ff       	call   0x4068b0
408725:	83 c4 04             	add    $0x4,%esp
408728:	8b 45 f4             	mov    -0xc(%ebp),%eax
40872b:	5f                   	pop    %edi
40872c:	5e                   	pop    %esi
40872d:	8b e5                	mov    %ebp,%esp
40872f:	5d                   	pop    %ebp
408730:	c3                   	ret
408731:	cc                   	int3
408732:	cc                   	int3
408733:	cc                   	int3
408734:	cc                   	int3
408735:	cc                   	int3
408736:	cc                   	int3
408737:	cc                   	int3
408738:	cc                   	int3
408739:	cc                   	int3
40873a:	cc                   	int3
40873b:	cc                   	int3
40873c:	cc                   	int3
40873d:	cc                   	int3
40873e:	cc                   	int3
40873f:	cc                   	int3
408740:	55                   	push   %ebp
408741:	8b ec                	mov    %esp,%ebp
408743:	83 ec 10             	sub    $0x10,%esp
408746:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
40874d:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
408751:	74 12                	je     0x408765
408753:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
408757:	74 0c                	je     0x408765
408759:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
40875d:	74 06                	je     0x408765
40875f:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
408763:	75 05                	jne    0x40876a
408765:	8b 45 f8             	mov    -0x8(%ebp),%eax
408768:	eb 69                	jmp    0x4087d3
40876a:	e8 91 cc ff ff       	call   0x405400
40876f:	8b 40 10             	mov    0x10(%eax),%eax
408772:	89 45 f0             	mov    %eax,-0x10(%ebp)
408775:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408778:	51                   	push   %ecx
408779:	e8 02 e1 ff ff       	call   0x406880
40877e:	83 c4 04             	add    $0x4,%esp
408781:	89 45 fc             	mov    %eax,-0x4(%ebp)
408784:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
408788:	74 46                	je     0x4087d0
40878a:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
408791:	8d 55 f4             	lea    -0xc(%ebp),%edx
408794:	52                   	push   %edx
408795:	8b 45 18             	mov    0x18(%ebp),%eax
408798:	50                   	push   %eax
408799:	8b 4d 14             	mov    0x14(%ebp),%ecx
40879c:	51                   	push   %ecx
40879d:	8b 55 fc             	mov    -0x4(%ebp),%edx
4087a0:	52                   	push   %edx
4087a1:	6a 00                	push   $0x0
4087a3:	6a 00                	push   $0x0
4087a5:	8b 45 08             	mov    0x8(%ebp),%eax
4087a8:	50                   	push   %eax
4087a9:	e8 32 fc ff ff       	call   0x4083e0
4087ae:	83 c4 1c             	add    $0x1c,%esp
4087b1:	85 c0                	test   %eax,%eax
4087b3:	74 0f                	je     0x4087c4
4087b5:	8b 4d 1c             	mov    0x1c(%ebp),%ecx
4087b8:	8b 55 f4             	mov    -0xc(%ebp),%edx
4087bb:	89 11                	mov    %edx,(%ecx)
4087bd:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
4087c4:	8b 45 fc             	mov    -0x4(%ebp),%eax
4087c7:	50                   	push   %eax
4087c8:	e8 e3 e0 ff ff       	call   0x4068b0
4087cd:	83 c4 04             	add    $0x4,%esp
4087d0:	8b 45 f8             	mov    -0x8(%ebp),%eax
4087d3:	8b e5                	mov    %ebp,%esp
4087d5:	5d                   	pop    %ebp
4087d6:	c3                   	ret
4087d7:	cc                   	int3
4087d8:	cc                   	int3
4087d9:	cc                   	int3
4087da:	cc                   	int3
4087db:	cc                   	int3
4087dc:	cc                   	int3
4087dd:	cc                   	int3
4087de:	cc                   	int3
4087df:	cc                   	int3
4087e0:	55                   	push   %ebp
4087e1:	8b ec                	mov    %esp,%ebp
4087e3:	83 ec 50             	sub    $0x50,%esp
4087e6:	56                   	push   %esi
4087e7:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
4087ee:	83 7d 08 ff          	cmpl   $0xffffffff,0x8(%ebp)
4087f2:	74 12                	je     0x408806
4087f4:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
4087f8:	74 0c                	je     0x408806
4087fa:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
4087fe:	74 06                	je     0x408806
408800:	83 7d 1c 00          	cmpl   $0x0,0x1c(%ebp)
408804:	75 08                	jne    0x40880e
408806:	8b 45 e4             	mov    -0x1c(%ebp),%eax
408809:	e9 8d 02 00 00       	jmp    0x408a9b
40880e:	6a 40                	push   $0x40
408810:	e8 6b e0 ff ff       	call   0x406880
408815:	83 c4 04             	add    $0x4,%esp
408818:	89 45 f0             	mov    %eax,-0x10(%ebp)
40881b:	83 7d f0 00          	cmpl   $0x0,-0x10(%ebp)
40881f:	0f 84 73 02 00 00    	je     0x408a98
408825:	68 00 01 00 00       	push   $0x100
40882a:	8b 45 14             	mov    0x14(%ebp),%eax
40882d:	50                   	push   %eax
40882e:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408831:	51                   	push   %ecx
408832:	e8 09 12 00 00       	call   0x409a40
408837:	83 c4 0c             	add    $0xc,%esp
40883a:	8b 55 18             	mov    0x18(%ebp),%edx
40883d:	52                   	push   %edx
40883e:	8b 45 f0             	mov    -0x10(%ebp),%eax
408841:	50                   	push   %eax
408842:	e8 69 16 00 00       	call   0x409eb0
408847:	83 c4 08             	add    $0x8,%esp
40884a:	6a 70                	push   $0x70
40884c:	e8 2f e0 ff ff       	call   0x406880
408851:	83 c4 04             	add    $0x4,%esp
408854:	89 45 f4             	mov    %eax,-0xc(%ebp)
408857:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
40885b:	0f 84 2b 02 00 00    	je     0x408a8c
408861:	8b 4d 14             	mov    0x14(%ebp),%ecx
408864:	51                   	push   %ecx
408865:	8b 55 f4             	mov    -0xc(%ebp),%edx
408868:	52                   	push   %edx
408869:	e8 d2 7b 00 00       	call   0x410440
40886e:	83 c4 08             	add    $0x8,%esp
408871:	85 c0                	test   %eax,%eax
408873:	0f 84 07 02 00 00    	je     0x408a80
408879:	e8 82 cb ff ff       	call   0x405400
40887e:	8b 40 10             	mov    0x10(%eax),%eax
408881:	50                   	push   %eax
408882:	e8 f9 df ff ff       	call   0x406880
408887:	83 c4 04             	add    $0x4,%esp
40888a:	89 45 f8             	mov    %eax,-0x8(%ebp)
40888d:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
408891:	0f 84 e9 01 00 00    	je     0x408a80
408897:	e8 64 cb ff ff       	call   0x405400
40889c:	8b 48 10             	mov    0x10(%eax),%ecx
40889f:	51                   	push   %ecx
4088a0:	e8 db df ff ff       	call   0x406880
4088a5:	83 c4 04             	add    $0x4,%esp
4088a8:	89 45 e8             	mov    %eax,-0x18(%ebp)
4088ab:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
4088af:	0f 84 bf 01 00 00    	je     0x408a74
4088b5:	c7 45 e0 00 00 00 00 	movl   $0x0,-0x20(%ebp)
4088bc:	0f 57 c0             	xorps  %xmm0,%xmm0
4088bf:	66 0f 13 45 d0       	movlpd %xmm0,-0x30(%ebp)
4088c4:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
4088cb:	8b 55 d0             	mov    -0x30(%ebp),%edx
4088ce:	3b 55 0c             	cmp    0xc(%ebp),%edx
4088d1:	75 0c                	jne    0x4088df
4088d3:	8b 45 d4             	mov    -0x2c(%ebp),%eax
4088d6:	3b 45 10             	cmp    0x10(%ebp),%eax
4088d9:	0f 84 2d 01 00 00    	je     0x408a0c
4088df:	e8 1c cb ff ff       	call   0x405400
4088e4:	8b 48 10             	mov    0x10(%eax),%ecx
4088e7:	33 d2                	xor    %edx,%edx
4088e9:	8b 45 0c             	mov    0xc(%ebp),%eax
4088ec:	2b 45 d0             	sub    -0x30(%ebp),%eax
4088ef:	8b 75 10             	mov    0x10(%ebp),%esi
4088f2:	1b 75 d4             	sbb    -0x2c(%ebp),%esi
4088f5:	89 4d c0             	mov    %ecx,-0x40(%ebp)
4088f8:	89 55 c4             	mov    %edx,-0x3c(%ebp)
4088fb:	89 45 b8             	mov    %eax,-0x48(%ebp)
4088fe:	89 75 bc             	mov    %esi,-0x44(%ebp)
408901:	8b 4d c4             	mov    -0x3c(%ebp),%ecx
408904:	3b 4d bc             	cmp    -0x44(%ebp),%ecx
408907:	7f 1c                	jg     0x408925
408909:	7c 08                	jl     0x408913
40890b:	8b 55 c0             	mov    -0x40(%ebp),%edx
40890e:	3b 55 b8             	cmp    -0x48(%ebp),%edx
408911:	73 12                	jae    0x408925
408913:	e8 e8 ca ff ff       	call   0x405400
408918:	8b 40 10             	mov    0x10(%eax),%eax
40891b:	33 c9                	xor    %ecx,%ecx
40891d:	89 45 c8             	mov    %eax,-0x38(%ebp)
408920:	89 4d cc             	mov    %ecx,-0x34(%ebp)
408923:	eb 12                	jmp    0x408937
408925:	8b 55 0c             	mov    0xc(%ebp),%edx
408928:	2b 55 d0             	sub    -0x30(%ebp),%edx
40892b:	8b 45 10             	mov    0x10(%ebp),%eax
40892e:	1b 45 d4             	sbb    -0x2c(%ebp),%eax
408931:	89 55 c8             	mov    %edx,-0x38(%ebp)
408934:	89 45 cc             	mov    %eax,-0x34(%ebp)
408937:	8b 4d c8             	mov    -0x38(%ebp),%ecx
40893a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40893d:	6a 00                	push   $0x0
40893f:	8d 55 dc             	lea    -0x24(%ebp),%edx
408942:	52                   	push   %edx
408943:	8b 45 fc             	mov    -0x4(%ebp),%eax
408946:	50                   	push   %eax
408947:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40894a:	51                   	push   %ecx
40894b:	8b 55 08             	mov    0x8(%ebp),%edx
40894e:	52                   	push   %edx
40894f:	e8 6c 9c ff ff       	call   0x4025c0
408954:	8b 80 d8 00 00 00    	mov    0xd8(%eax),%eax
40895a:	ff d0                	call   *%eax
40895c:	85 c0                	test   %eax,%eax
40895e:	0f 84 9b 00 00 00    	je     0x4089ff
408964:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408967:	51                   	push   %ecx
408968:	8b 55 f8             	mov    -0x8(%ebp),%edx
40896b:	52                   	push   %edx
40896c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40896f:	50                   	push   %eax
408970:	e8 3b 76 00 00       	call   0x40ffb0
408975:	83 c4 0c             	add    $0xc,%esp
408978:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40897b:	51                   	push   %ecx
40897c:	8b 55 e8             	mov    -0x18(%ebp),%edx
40897f:	52                   	push   %edx
408980:	8b 45 f8             	mov    -0x8(%ebp),%eax
408983:	50                   	push   %eax
408984:	8b 4d f0             	mov    -0x10(%ebp),%ecx
408987:	51                   	push   %ecx
408988:	e8 03 16 00 00       	call   0x409f90
40898d:	83 c4 10             	add    $0x10,%esp
408990:	8b 55 d0             	mov    -0x30(%ebp),%edx
408993:	89 55 b0             	mov    %edx,-0x50(%ebp)
408996:	8b 45 d4             	mov    -0x2c(%ebp),%eax
408999:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40899c:	6a 00                	push   $0x0
40899e:	6a 00                	push   $0x0
4089a0:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
4089a3:	51                   	push   %ecx
4089a4:	8b 55 b0             	mov    -0x50(%ebp),%edx
4089a7:	52                   	push   %edx
4089a8:	8b 45 08             	mov    0x8(%ebp),%eax
4089ab:	50                   	push   %eax
4089ac:	e8 0f 9c ff ff       	call   0x4025c0
4089b1:	8b 88 e4 00 00 00    	mov    0xe4(%eax),%ecx
4089b7:	ff d1                	call   *%ecx
4089b9:	85 c0                	test   %eax,%eax
4089bb:	74 42                	je     0x4089ff
4089bd:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
4089c4:	6a 00                	push   $0x0
4089c6:	8d 55 d8             	lea    -0x28(%ebp),%edx
4089c9:	52                   	push   %edx
4089ca:	8b 45 fc             	mov    -0x4(%ebp),%eax
4089cd:	50                   	push   %eax
4089ce:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4089d1:	51                   	push   %ecx
4089d2:	8b 55 08             	mov    0x8(%ebp),%edx
4089d5:	52                   	push   %edx
4089d6:	e8 e5 9b ff ff       	call   0x4025c0
4089db:	8b 80 d4 00 00 00    	mov    0xd4(%eax),%eax
4089e1:	ff d0                	call   *%eax
4089e3:	85 c0                	test   %eax,%eax
4089e5:	74 18                	je     0x4089ff
4089e7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4089ea:	33 d2                	xor    %edx,%edx
4089ec:	03 4d d0             	add    -0x30(%ebp),%ecx
4089ef:	13 55 d4             	adc    -0x2c(%ebp),%edx
4089f2:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4089f5:	89 55 d4             	mov    %edx,-0x2c(%ebp)
4089f8:	c7 45 e0 01 00 00 00 	movl   $0x1,-0x20(%ebp)
4089ff:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
408a03:	75 02                	jne    0x408a07
408a05:	eb 05                	jmp    0x408a0c
408a07:	e9 bf fe ff ff       	jmp    0x4088cb
408a0c:	8b 45 d0             	mov    -0x30(%ebp),%eax
408a0f:	3b 45 0c             	cmp    0xc(%ebp),%eax
408a12:	75 54                	jne    0x408a68
408a14:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
408a17:	3b 4d 10             	cmp    0x10(%ebp),%ecx
408a1a:	75 4c                	jne    0x408a68
408a1c:	6a 20                	push   $0x20
408a1e:	e8 5d de ff ff       	call   0x406880
408a23:	83 c4 04             	add    $0x4,%esp
408a26:	89 45 ec             	mov    %eax,-0x14(%ebp)
408a29:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
408a2d:	74 39                	je     0x408a68
408a2f:	8b 55 ec             	mov    -0x14(%ebp),%edx
408a32:	52                   	push   %edx
408a33:	8b 45 14             	mov    0x14(%ebp),%eax
408a36:	50                   	push   %eax
408a37:	8b 4d f4             	mov    -0xc(%ebp),%ecx
408a3a:	51                   	push   %ecx
408a3b:	e8 a0 7a 00 00       	call   0x4104e0
408a40:	83 c4 0c             	add    $0xc,%esp
408a43:	85 c0                	test   %eax,%eax
408a45:	74 0f                	je     0x408a56
408a47:	8b 55 1c             	mov    0x1c(%ebp),%edx
408a4a:	8b 45 ec             	mov    -0x14(%ebp),%eax
408a4d:	89 02                	mov    %eax,(%edx)
408a4f:	c7 45 e4 01 00 00 00 	movl   $0x1,-0x1c(%ebp)