408615:	85 f6                	test   %esi,%esi
408617:	75 08                	jne    0x408621
408619:	89 01                	mov    %eax,(%ecx)
40861b:	8b d0                	mov    %eax,%edx
40861d:	8b f0                	mov    %eax,%esi
40861f:	eb 08                	jmp    0x408629
408621:	6a 02                	push   $0x2
408623:	89 31                	mov    %esi,(%ecx)
408625:	0f b7 36             	movzwl (%esi),%esi
408628:	5a                   	pop    %edx
408629:	51                   	push   %ecx
40862a:	ff 75 0c             	push   0xc(%ebp)
40862d:	89 71 08             	mov    %esi,0x8(%ecx)
408630:	50                   	push   %eax
408631:	50                   	push   %eax
408632:	57                   	push   %edi
408633:	89 51 0c             	mov    %edx,0xc(%ecx)
408636:	ff 35 0c d0 40 00    	push   0x40d00c
40863c:	ff 35 08 d0 40 00    	push   0x40d008
408642:	ff 15 cc e1 40 00    	call   *0x40e1cc
408648:	5f                   	pop    %edi
408649:	5e                   	pop    %esi
40864a:	5d                   	pop    %ebp
40864b:	c2 0c 00             	ret    $0xc
40864e:	8b ff                	mov    %edi,%edi
408650:	55                   	push   %ebp
408651:	8b ec                	mov    %esp,%ebp
408653:	83 ec 24             	sub    $0x24,%esp
408656:	a1 50 d1 40 00       	mov    0x40d150,%eax
40865b:	33 c5                	xor    %ebp,%eax
40865d:	89 45 fc             	mov    %eax,-0x4(%ebp)
408660:	83 65 f0 00          	andl   $0x0,-0x10(%ebp)
408664:	8d 45 08             	lea    0x8(%ebp),%eax
408667:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
40866b:	89 45 ec             	mov    %eax,-0x14(%ebp)
40866e:	8d 45 dc             	lea    -0x24(%ebp),%eax
408671:	50                   	push   %eax
408672:	6a 02                	push   $0x2
408674:	51                   	push   %ecx
408675:	c7 45 f4 04 00 00 00 	movl   $0x4,-0xc(%ebp)
40867c:	e8 7d ff ff ff       	call   0x4085fe
408681:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408684:	33 cd                	xor    %ebp,%ecx
408686:	e8 d5 17 00 00       	call   0x409e60
40868b:	c9                   	leave
40868c:	c2 04 00             	ret    $0x4
40868f:	8b ff                	mov    %edi,%edi
408691:	55                   	push   %ebp
408692:	8b ec                	mov    %esp,%ebp
408694:	83 ec 64             	sub    $0x64,%esp
408697:	a1 50 d1 40 00       	mov    0x40d150,%eax
40869c:	33 c5                	xor    %ebp,%eax
40869e:	89 45 fc             	mov    %eax,-0x4(%ebp)
4086a1:	8b 55 0c             	mov    0xc(%ebp),%edx
4086a4:	8b 45 08             	mov    0x8(%ebp),%eax
4086a7:	53                   	push   %ebx
4086a8:	56                   	push   %esi
4086a9:	57                   	push   %edi
4086aa:	33 db                	xor    %ebx,%ebx
4086ac:	89 45 ac             	mov    %eax,-0x54(%ebp)
4086af:	89 5d b0             	mov    %ebx,-0x50(%ebp)
4086b2:	c7 45 b4 10 00 00 00 	movl   $0x10,-0x4c(%ebp)
4086b9:	89 5d b8             	mov    %ebx,-0x48(%ebp)
4086bc:	6a 0a                	push   $0xa
4086be:	5e                   	pop    %esi
4086bf:	85 d2                	test   %edx,%edx
4086c1:	74 1d                	je     0x4086e0
4086c3:	8b ca                	mov    %edx,%ecx
4086c5:	8d 79 02             	lea    0x2(%ecx),%edi
4086c8:	66 8b 01             	mov    (%ecx),%ax
4086cb:	83 c1 02             	add    $0x2,%ecx
4086ce:	66 3b c3             	cmp    %bx,%ax
4086d1:	75 f5                	jne    0x4086c8
4086d3:	2b cf                	sub    %edi,%ecx
4086d5:	d1 f9                	sar    $1,%ecx
4086d7:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
4086de:	eb 02                	jmp    0x4086e2
4086e0:	8b ce                	mov    %esi,%ecx
4086e2:	bf b0 1d 40 00       	mov    $0x401db0,%edi
4086e7:	85 d2                	test   %edx,%edx
4086e9:	75 02                	jne    0x4086ed
4086eb:	8b d7                	mov    %edi,%edx
4086ed:	8d 45 10             	lea    0x10(%ebp),%eax
4086f0:	89 55 bc             	mov    %edx,-0x44(%ebp)
4086f3:	8b 55 18             	mov    0x18(%ebp),%edx
4086f6:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
4086f9:	89 45 cc             	mov    %eax,-0x34(%ebp)
4086fc:	8d 45 14             	lea    0x14(%ebp),%eax
4086ff:	89 5d c0             	mov    %ebx,-0x40(%ebp)
408702:	89 5d c8             	mov    %ebx,-0x38(%ebp)
408705:	89 5d d0             	mov    %ebx,-0x30(%ebp)
408708:	89 5d d8             	mov    %ebx,-0x28(%ebp)
40870b:	89 45 dc             	mov    %eax,-0x24(%ebp)
40870e:	89 5d e0             	mov    %ebx,-0x20(%ebp)
408711:	89 5d e8             	mov    %ebx,-0x18(%ebp)
408714:	6a 04                	push   $0x4
408716:	59                   	pop    %ecx
408717:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40871a:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
40871d:	85 d2                	test   %edx,%edx
40871f:	74 1f                	je     0x408740
408721:	8b ca                	mov    %edx,%ecx
408723:	8d 71 02             	lea    0x2(%ecx),%esi
408726:	66 8b 01             	mov    (%ecx),%ax
408729:	83 c1 02             	add    $0x2,%ecx
40872c:	66 3b c3             	cmp    %bx,%ax
40872f:	75 f5                	jne    0x408726
408731:	2b ce                	sub    %esi,%ecx
408733:	d1 f9                	sar    $1,%ecx
408735:	8d 34 4d 02 00 00 00 	lea    0x2(,%ecx,2),%esi
40873c:	85 d2                	test   %edx,%edx
40873e:	75 02                	jne    0x408742
408740:	8b d7                	mov    %edi,%edx
408742:	8d 45 9c             	lea    -0x64(%ebp),%eax
408745:	89 55 ec             	mov    %edx,-0x14(%ebp)
408748:	50                   	push   %eax
408749:	6a 06                	push   $0x6
40874b:	51                   	push   %ecx
40874c:	ba 50 1e 40 00       	mov    $0x401e50,%edx
408751:	89 5d f0             	mov    %ebx,-0x10(%ebp)
408754:	89 75 f4             	mov    %esi,-0xc(%ebp)
408757:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40875a:	e8 9f fe ff ff       	call   0x4085fe
40875f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408762:	5f                   	pop    %edi
408763:	5e                   	pop    %esi
408764:	33 cd                	xor    %ebp,%ecx
408766:	5b                   	pop    %ebx
408767:	e8 f4 16 00 00       	call   0x409e60
40876c:	c9                   	leave
40876d:	c2 14 00             	ret    $0x14
408770:	8b ff                	mov    %edi,%edi
408772:	55                   	push   %ebp
408773:	8b ec                	mov    %esp,%ebp
408775:	8b 45 10             	mov    0x10(%ebp),%eax
408778:	8d 55 14             	lea    0x14(%ebp),%edx
40877b:	6a 00                	push   $0x0
40877d:	6a 04                	push   $0x4
40877f:	52                   	push   %edx
408780:	6a 10                	push   $0x10
408782:	50                   	push   %eax
408783:	51                   	push   %ecx
408784:	68 1c 1f 40 00       	push   $0x401f1c
408789:	6a 2b                	push   $0x2b
40878b:	ff 75 0c             	push   0xc(%ebp)
40878e:	ff 75 08             	push   0x8(%ebp)
408791:	ff 15 dc e1 40 00    	call   *0x40e1dc
408797:	83 c4 28             	add    $0x28,%esp
40879a:	5d                   	pop    %ebp
40879b:	c2 10 00             	ret    $0x10
40879e:	6a 70                	push   $0x70
4087a0:	b8 a1 b2 40 00       	mov    $0x40b2a1,%eax
4087a5:	e8 36 24 00 00       	call   0x40abe0
4087aa:	8b d9                	mov    %ecx,%ebx
4087ac:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4087af:	8b 75 08             	mov    0x8(%ebp),%esi
4087b2:	8d 4b 20             	lea    0x20(%ebx),%ecx
4087b5:	8b fb                	mov    %ebx,%edi
4087b7:	8b 55 0c             	mov    0xc(%ebp),%edx
4087ba:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4087bb:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4087bc:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4087bd:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4087be:	8b 75 10             	mov    0x10(%ebp),%esi
4087c1:	8d 7b 10             	lea    0x10(%ebx),%edi
4087c4:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4087c5:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4087c6:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4087c7:	a5                   	movsl  %ds:(%esi),%es:(%edi)
4087c8:	33 ff                	xor    %edi,%edi
4087ca:	c7 41 14 07 00 00 00 	movl   $0x7,0x14(%ecx)
4087d1:	33 c0                	xor    %eax,%eax
4087d3:	89 79 10             	mov    %edi,0x10(%ecx)
4087d6:	66 89 01             	mov    %ax,(%ecx)
4087d9:	8d 72 02             	lea    0x2(%edx),%esi
4087dc:	66 8b 02             	mov    (%edx),%ax
4087df:	83 c2 02             	add    $0x2,%edx
4087e2:	66 3b c7             	cmp    %di,%ax
4087e5:	75 f5                	jne    0x4087dc
4087e7:	2b d6                	sub    %esi,%edx
4087e9:	d1 fa                	sar    $1,%edx
4087eb:	52                   	push   %edx
4087ec:	ff 75 0c             	push   0xc(%ebp)
4087ef:	e8 df 09 00 00       	call   0x4091d3
4087f4:	89 7d fc             	mov    %edi,-0x4(%ebp)
4087f7:	8d 43 3c             	lea    0x3c(%ebx),%eax
4087fa:	89 7b 38             	mov    %edi,0x38(%ebx)
4087fd:	89 38                	mov    %edi,(%eax)
4087ff:	89 7b 40             	mov    %edi,0x40(%ebx)
408802:	89 7b 44             	mov    %edi,0x44(%ebx)
408805:	89 7b 48             	mov    %edi,0x48(%ebx)
408808:	89 7b 4c             	mov    %edi,0x4c(%ebx)
40880b:	50                   	push   %eax
40880c:	68 2c 1f 40 00       	push   $0x401f2c
408811:	68 01 04 00 00       	push   $0x401
408816:	57                   	push   %edi
408817:	ff 75 08             	push   0x8(%ebp)
40881a:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
40881e:	ff 15 20 e0 40 00    	call   *0x40e020
408824:	8b f0                	mov    %eax,%esi
408826:	85 f6                	test   %esi,%esi
408828:	78 40                	js     0x40886a
40882a:	51                   	push   %ecx
40882b:	51                   	push   %ecx
40882c:	53                   	push   %ebx
40882d:	51                   	push   %ecx
40882e:	8b cb                	mov    %ebx,%ecx
408830:	e8 ef 09 00 00       	call   0x409224
408835:	51                   	push   %ecx
408836:	51                   	push   %ecx
408837:	53                   	push   %ebx
408838:	51                   	push   %ecx
408839:	8b cb                	mov    %ebx,%ecx
40883b:	e8 49 0a 00 00       	call   0x409289
408840:	51                   	push   %ecx
408841:	51                   	push   %ecx
408842:	53                   	push   %ebx
408843:	51                   	push   %ecx
408844:	8b cb                	mov    %ebx,%ecx
408846:	e8 a3 0a 00 00       	call   0x4092ee
40884b:	51                   	push   %ecx
40884c:	51                   	push   %ecx
40884d:	53                   	push   %ebx
40884e:	51                   	push   %ecx
40884f:	8b cb                	mov    %ebx,%ecx
408851:	e8 fd 0a 00 00       	call   0x409353
408856:	8b cb                	mov    %ebx,%ecx
408858:	e8 cb 06 00 00       	call   0x408f28
40885d:	89 43 38             	mov    %eax,0x38(%ebx)
408860:	8b c3                	mov    %ebx,%eax
408862:	e8 53 23 00 00       	call   0x40abba
408867:	c2 0c 00             	ret    $0xc
40886a:	8b 0d 00 d0 40 00    	mov    0x40d000,%ecx
408870:	81 f9 00 d0 40 00    	cmp    $0x40d000,%ecx
408876:	74 18                	je     0x408890
408878:	80 79 19 02          	cmpb   $0x2,0x19(%ecx)
40887c:	72 12                	jb     0x408890
40887e:	56                   	push   %esi
40887f:	ff 75 08             	push   0x8(%ebp)
408882:	ff 71 14             	push   0x14(%ecx)
408885:	ff 71 10             	push   0x10(%ecx)
408888:	6a 0c                	push   $0xc
40888a:	59                   	pop    %ecx
40888b:	e8 e0 fe ff ff       	call   0x408770
408890:	56                   	push   %esi
408891:	8d 4d 84             	lea    -0x7c(%ebp),%ecx
408894:	e8 d5 b5 ff ff       	call   0x403e6e
408899:	68 a4 c6 40 00       	push   $0x40c6a4
40889e:	8d 45 84             	lea    -0x7c(%ebp),%eax
4088a1:	50                   	push   %eax
4088a2:	e8 93 22 00 00       	call   0x40ab3a
4088a7:	cc                   	int3
4088a8:	8b ff                	mov    %edi,%edi
4088aa:	53                   	push   %ebx
4088ab:	8b dc                	mov    %esp,%ebx
4088ad:	51                   	push   %ecx
4088ae:	51                   	push   %ecx
4088af:	83 e4 f8             	and    $0xfffffff8,%esp
4088b2:	83 c4 04             	add    $0x4,%esp
4088b5:	55                   	push   %ebp
4088b6:	8b 6b 04             	mov    0x4(%ebx),%ebp
4088b9:	89 6c 24 04          	mov    %ebp,0x4(%esp)
4088bd:	8b ec                	mov    %esp,%ebp
4088bf:	83 ec 10             	sub    $0x10,%esp
4088c2:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
4088c9:	56                   	push   %esi
4088ca:	57                   	push   %edi
4088cb:	8b f9                	mov    %ecx,%edi
4088cd:	8b 47 0c             	mov    0xc(%edi),%eax
4088d0:	8b 37                	mov    (%edi),%esi
4088d2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4088d5:	8b 10                	mov    (%eax),%edx
4088d7:	8b 47 04             	mov    0x4(%edi),%eax
4088da:	89 45 f4             	mov    %eax,-0xc(%ebp)
4088dd:	8b 47 08             	mov    0x8(%edi),%eax
4088e0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4088e3:	74 1f                	je     0x408904
4088e5:	8d 46 20             	lea    0x20(%esi),%eax
4088e8:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
4088ec:	72 02                	jb     0x4088f0
4088ee:	8b 00                	mov    (%eax),%eax
4088f0:	6a 00                	push   $0x0
4088f2:	52                   	push   %edx
4088f3:	6a 65                	push   $0x65
4088f5:	50                   	push   %eax
4088f6:	8d 46 10             	lea    0x10(%esi),%eax
4088f9:	50                   	push   %eax
4088fa:	e8 90 fd ff ff       	call   0x40868f
4088ff:	8b 45 fc             	mov    -0x4(%ebp),%eax
408902:	8b 10                	mov    (%eax),%edx
408904:	8b 4e 3c             	mov    0x3c(%esi),%ecx
408907:	52                   	push   %edx
408908:	8b 01                	mov    (%ecx),%eax
40890a:	8b 70 0c             	mov    0xc(%eax),%esi
40890d:	8b 45 f8             	mov    -0x8(%ebp),%eax
408910:	ff 30                	push   (%eax)
408912:	8b 45 f4             	mov    -0xc(%ebp),%eax
408915:	ff 30                	push   (%eax)
408917:	51                   	push   %ecx
408918:	8b ce                	mov    %esi,%ecx
40891a:	ff 15 f0 e1 40 00    	call   *0x40e1f0
408920:	ff d6                	call   *%esi
408922:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
408929:	8b f0                	mov    %eax,%esi
40892b:	74 0b                	je     0x408938
40892d:	56                   	push   %esi
40892e:	ba 60 1e 40 00       	mov    $0x401e60,%edx
408933:	e8 16 fd ff ff       	call   0x40864e
408938:	85 f6                	test   %esi,%esi
40893a:	79 23                	jns    0x40895f
40893c:	a1 00 d0 40 00       	mov    0x40d000,%eax
408941:	3d 00 d0 40 00       	cmp    $0x40d000,%eax
408946:	74 17                	je     0x40895f
408948:	80 78 19 03          	cmpb   $0x3,0x19(%eax)
40894c:	72 11                	jb     0x40895f
40894e:	56                   	push   %esi
40894f:	ff 37                	push   (%edi)
408951:	ff 70 14             	push   0x14(%eax)
408954:	ff 70 10             	push   0x10(%eax)
408957:	6a 0d                	push   $0xd
408959:	59                   	pop    %ecx
40895a:	e8 11 fe ff ff       	call   0x408770
40895f:	5f                   	pop    %edi
408960:	5e                   	pop    %esi
408961:	8b e5                	mov    %ebp,%esp
408963:	5d                   	pop    %ebp
408964:	8b e3                	mov    %ebx,%esp
408966:	5b                   	pop    %ebx
408967:	c3                   	ret
408968:	f6 05 40 d7 40 00 01 	testb  $0x1,0x40d740
40896f:	56                   	push   %esi
408970:	57                   	push   %edi
408971:	8b f9                	mov    %ecx,%edi
408973:	8b 37                	mov    (%edi),%esi
408975:	74 1b                	je     0x408992
408977:	8d 46 20             	lea    0x20(%esi),%eax
40897a:	83 78 14 08          	cmpl   $0x8,0x14(%eax)
40897e:	72 02                	jb     0x408982
408980:	8b 00                	mov    (%eax),%eax
408982:	6a 00                	push   $0x0
408984:	6a 00                	push   $0x0
408986:	6a 66                	push   $0x66
408988:	50                   	push   %eax
408989:	8d 46 10             	lea    0x10(%esi),%eax
40898c:	50                   	push   %eax
40898d:	e8 fd fc ff ff       	call   0x40868f
408992:	8b 46 3c             	mov    0x3c(%esi),%eax
408995:	50                   	push   %eax
408996:	8b 08                	mov    (%eax),%ecx
408998:	8b 71 10             	mov    0x10(%ecx),%esi