407720:	83 c4 14             	add    $0x14,%esp
407723:	33 c0                	xor    %eax,%eax
407725:	e9 2c 01 00 00       	jmp    0x407856
40772a:	e8 12 33 00 00       	call   0x40aa41
40772f:	8b f0                	mov    %eax,%esi
407731:	89 75 e4             	mov    %esi,-0x1c(%ebp)
407734:	e8 9a f2 ff ff       	call   0x4069d3
407739:	83 4e 70 10          	orl    $0x10,0x70(%esi)
40773d:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407740:	6a 01                	push   $0x1
407742:	68 d8 00 00 00       	push   $0xd8
407747:	e8 59 04 00 00       	call   0x407ba5
40774c:	59                   	pop    %ecx
40774d:	59                   	pop    %ecx
40774e:	8b f8                	mov    %eax,%edi
407750:	89 7d dc             	mov    %edi,-0x24(%ebp)
407753:	3b fb                	cmp    %ebx,%edi
407755:	0f 84 ec 00 00 00    	je     0x407847
40775b:	6a 0c                	push   $0xc
40775d:	e8 82 21 00 00       	call   0x4098e4
407762:	59                   	pop    %ecx
407763:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40776a:	8b 4e 6c             	mov    0x6c(%esi),%ecx
40776d:	8b c7                	mov    %edi,%eax
40776f:	e8 fb f1 ff ff       	call   0x40696f
407774:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407777:	e8 a6 00 00 00       	call   0x407822
40777c:	ff 75 08             	push   0x8(%ebp)
40777f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407782:	8b d7                	mov    %edi,%edx
407784:	e8 5b fc ff ff       	call   0x4073e4
407789:	59                   	pop    %ecx
40778a:	89 45 e0             	mov    %eax,-0x20(%ebp)
40778d:	3b c3                	cmp    %ebx,%eax
40778f:	0f 84 a4 00 00 00    	je     0x407839
407795:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
407798:	74 1d                	je     0x4077b7
40779a:	68 a8 b7 42 00       	push   $0x42b7a8
40779f:	ff 75 0c             	push   0xc(%ebp)
4077a2:	e8 89 4a 00 00       	call   0x40c230
4077a7:	59                   	pop    %ecx
4077a8:	59                   	pop    %ecx
4077a9:	85 c0                	test   %eax,%eax
4077ab:	74 0a                	je     0x4077b7
4077ad:	c7 05 fc 07 43 00 01 	movl   $0x1,0x4307fc
4077b4:	00 00 00
4077b7:	6a 0c                	push   $0xc
4077b9:	e8 26 21 00 00       	call   0x4098e4
4077be:	59                   	pop    %ecx
4077bf:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
4077c6:	8d 5e 6c             	lea    0x6c(%esi),%ebx
4077c9:	8b c3                	mov    %ebx,%eax
4077cb:	e8 c5 f1 ff ff       	call   0x406995
4077d0:	57                   	push   %edi
4077d1:	e8 00 f1 ff ff       	call   0x4068d6
4077d6:	59                   	pop    %ecx
4077d7:	f6 46 70 02          	testb  $0x2,0x70(%esi)
4077db:	75 32                	jne    0x40780f
4077dd:	f6 05 a0 b7 42 00 01 	testb  $0x1,0x42b7a0
4077e4:	75 29                	jne    0x40780f
4077e6:	8b 3b                	mov    (%ebx),%edi
4077e8:	b8 88 b8 42 00       	mov    $0x42b888,%eax
4077ed:	e8 a3 f1 ff ff       	call   0x406995
4077f2:	6a 18                	push   $0x18
4077f4:	a1 88 b8 42 00       	mov    0x42b888,%eax
4077f9:	83 c0 0c             	add    $0xc,%eax
4077fc:	50                   	push   %eax
4077fd:	68 f4 0d 43 00       	push   $0x430df4
407802:	e8 f9 08 00 00       	call   0x408100
407807:	83 c4 0c             	add    $0xc,%esp
40780a:	e8 3a f2 ff ff       	call   0x406a49
40780f:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
407813:	e8 16 00 00 00       	call   0x40782e
407818:	eb 2d                	jmp    0x407847
40781a:	8b 7d dc             	mov    -0x24(%ebp),%edi
40781d:	8b 75 e4             	mov    -0x1c(%ebp),%esi
407820:	33 db                	xor    %ebx,%ebx
407822:	6a 0c                	push   $0xc
407824:	e8 e1 1f 00 00       	call   0x40980a
407829:	59                   	pop    %ecx
40782a:	c3                   	ret
40782b:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40782e:	6a 0c                	push   $0xc
407830:	e8 d5 1f 00 00       	call   0x40980a
407835:	59                   	pop    %ecx
407836:	c3                   	ret
407837:	eb 0e                	jmp    0x407847
407839:	57                   	push   %edi
40783a:	e8 97 f0 ff ff       	call   0x4068d6
40783f:	57                   	push   %edi
407840:	e8 b9 ee ff ff       	call   0x4066fe
407845:	59                   	pop    %ecx
407846:	59                   	pop    %ecx
407847:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40784e:	e8 0c 00 00 00       	call   0x40785f
407853:	8b 45 e0             	mov    -0x20(%ebp),%eax
407856:	e8 c6 2b 00 00       	call   0x40a421
40785b:	c3                   	ret
40785c:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40785f:	83 66 70 ef          	andl   $0xffffffef,0x70(%esi)
407863:	c3                   	ret
407864:	8b ff                	mov    %edi,%edi
407866:	55                   	push   %ebp
407867:	8b ec                	mov    %esp,%ebp
407869:	8b 45 08             	mov    0x8(%ebp),%eax
40786c:	56                   	push   %esi
40786d:	8b f1                	mov    %ecx,%esi
40786f:	c6 46 0c 00          	movb   $0x0,0xc(%esi)
407873:	85 c0                	test   %eax,%eax
407875:	75 63                	jne    0x4078da
407877:	e8 c5 31 00 00       	call   0x40aa41
40787c:	89 46 08             	mov    %eax,0x8(%esi)
40787f:	8b 48 6c             	mov    0x6c(%eax),%ecx
407882:	89 0e                	mov    %ecx,(%esi)
407884:	8b 48 68             	mov    0x68(%eax),%ecx
407887:	89 4e 04             	mov    %ecx,0x4(%esi)
40788a:	8b 0e                	mov    (%esi),%ecx
40788c:	3b 0d 88 b8 42 00    	cmp    0x42b888,%ecx
407892:	74 12                	je     0x4078a6
407894:	8b 0d a0 b7 42 00    	mov    0x42b7a0,%ecx
40789a:	85 48 70             	test   %ecx,0x70(%eax)
40789d:	75 07                	jne    0x4078a6
40789f:	e8 2f f1 ff ff       	call   0x4069d3
4078a4:	89 06                	mov    %eax,(%esi)
4078a6:	8b 46 04             	mov    0x4(%esi),%eax
4078a9:	3b 05 e8 bd 42 00    	cmp    0x42bde8,%eax
4078af:	74 16                	je     0x4078c7
4078b1:	8b 46 08             	mov    0x8(%esi),%eax
4078b4:	8b 0d a0 b7 42 00    	mov    0x42b7a0,%ecx
4078ba:	85 48 70             	test   %ecx,0x70(%eax)
4078bd:	75 08                	jne    0x4078c7
4078bf:	e8 60 7c 00 00       	call   0x40f524
4078c4:	89 46 04             	mov    %eax,0x4(%esi)
4078c7:	8b 46 08             	mov    0x8(%esi),%eax
4078ca:	f6 40 70 02          	testb  $0x2,0x70(%eax)
4078ce:	75 14                	jne    0x4078e4
4078d0:	83 48 70 02          	orl    $0x2,0x70(%eax)
4078d4:	c6 46 0c 01          	movb   $0x1,0xc(%esi)
4078d8:	eb 0a                	jmp    0x4078e4
4078da:	8b 08                	mov    (%eax),%ecx
4078dc:	89 0e                	mov    %ecx,(%esi)
4078de:	8b 40 04             	mov    0x4(%eax),%eax
4078e1:	89 46 04             	mov    %eax,0x4(%esi)
4078e4:	8b c6                	mov    %esi,%eax
4078e6:	5e                   	pop    %esi
4078e7:	5d                   	pop    %ebp
4078e8:	c2 04 00             	ret    $0x4
4078eb:	8b ff                	mov    %edi,%edi
4078ed:	55                   	push   %ebp
4078ee:	8b ec                	mov    %esp,%ebp
4078f0:	83 ec 10             	sub    $0x10,%esp
4078f3:	ff 75 08             	push   0x8(%ebp)
4078f6:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4078f9:	e8 66 ff ff ff       	call   0x407864
4078fe:	8b 45 18             	mov    0x18(%ebp),%eax
407901:	85 c0                	test   %eax,%eax
407903:	7e 18                	jle    0x40791d
407905:	8b 4d 14             	mov    0x14(%ebp),%ecx
407908:	8b d0                	mov    %eax,%edx
40790a:	4a                   	dec    %edx
40790b:	66 83 39 00          	cmpw   $0x0,(%ecx)
40790f:	74 09                	je     0x40791a
407911:	41                   	inc    %ecx
407912:	41                   	inc    %ecx
407913:	85 d2                	test   %edx,%edx
407915:	75 f3                	jne    0x40790a
407917:	83 ca ff             	or     $0xffffffff,%edx
40791a:	2b c2                	sub    %edx,%eax
40791c:	48                   	dec    %eax
40791d:	ff 75 20             	push   0x20(%ebp)
407920:	ff 75 1c             	push   0x1c(%ebp)
407923:	50                   	push   %eax
407924:	ff 75 14             	push   0x14(%ebp)
407927:	ff 75 10             	push   0x10(%ebp)
40792a:	ff 75 0c             	push   0xc(%ebp)
40792d:	ff 15 c8 a0 41 00    	call   *0x41a0c8
407933:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
407937:	74 07                	je     0x407940
407939:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40793c:	83 61 70 fd          	andl   $0xfffffffd,0x70(%ecx)
407940:	c9                   	leave
407941:	c3                   	ret
407942:	8b ff                	mov    %edi,%edi
407944:	55                   	push   %ebp
407945:	8b ec                	mov    %esp,%ebp
407947:	51                   	push   %ecx
407948:	53                   	push   %ebx
407949:	56                   	push   %esi
40794a:	8b f1                	mov    %ecx,%esi
40794c:	33 db                	xor    %ebx,%ebx
40794e:	3b f3                	cmp    %ebx,%esi
407950:	75 1e                	jne    0x407970
407952:	e8 7e e1 ff ff       	call   0x405ad5
407957:	6a 16                	push   $0x16
407959:	5e                   	pop    %esi
40795a:	53                   	push   %ebx
40795b:	53                   	push   %ebx
40795c:	53                   	push   %ebx
40795d:	53                   	push   %ebx
40795e:	53                   	push   %ebx
40795f:	89 30                	mov    %esi,(%eax)
407961:	e8 bf d8 ff ff       	call   0x405225
407966:	83 c4 14             	add    $0x14,%esp
407969:	8b c6                	mov    %esi,%eax
40796b:	e9 a9 00 00 00       	jmp    0x407a19
407970:	57                   	push   %edi
407971:	39 5d 08             	cmp    %ebx,0x8(%ebp)
407974:	77 1e                	ja     0x407994
407976:	e8 5a e1 ff ff       	call   0x405ad5
40797b:	6a 16                	push   $0x16
40797d:	5e                   	pop    %esi
40797e:	53                   	push   %ebx
40797f:	53                   	push   %ebx
407980:	53                   	push   %ebx
407981:	53                   	push   %ebx
407982:	53                   	push   %ebx
407983:	89 30                	mov    %esi,(%eax)
407985:	e8 9b d8 ff ff       	call   0x405225
40798a:	83 c4 14             	add    $0x14,%esp
40798d:	8b c6                	mov    %esi,%eax
40798f:	e9 84 00 00 00       	jmp    0x407a18
407994:	33 c9                	xor    %ecx,%ecx
407996:	39 5d 10             	cmp    %ebx,0x10(%ebp)
407999:	88 1e                	mov    %bl,(%esi)
40799b:	0f 95 c1             	setne  %cl
40799e:	41                   	inc    %ecx
40799f:	39 4d 08             	cmp    %ecx,0x8(%ebp)
4079a2:	77 09                	ja     0x4079ad
4079a4:	e8 2c e1 ff ff       	call   0x405ad5
4079a9:	6a 22                	push   $0x22
4079ab:	eb d0                	jmp    0x40797d
4079ad:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4079b0:	83 c1 fe             	add    $0xfffffffe,%ecx
4079b3:	83 f9 22             	cmp    $0x22,%ecx
4079b6:	77 be                	ja     0x407976
4079b8:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4079bb:	8b ce                	mov    %esi,%ecx
4079bd:	39 5d 10             	cmp    %ebx,0x10(%ebp)
4079c0:	74 0f                	je     0x4079d1
4079c2:	c6 06 2d             	movb   $0x2d,(%esi)
4079c5:	8d 4e 01             	lea    0x1(%esi),%ecx
4079c8:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
4079cf:	f7 d8                	neg    %eax
4079d1:	8b f9                	mov    %ecx,%edi
4079d3:	33 d2                	xor    %edx,%edx
4079d5:	f7 75 0c             	divl   0xc(%ebp)
4079d8:	83 fa 09             	cmp    $0x9,%edx
4079db:	76 05                	jbe    0x4079e2
4079dd:	80 c2 57             	add    $0x57,%dl
4079e0:	eb 03                	jmp    0x4079e5
4079e2:	80 c2 30             	add    $0x30,%dl
4079e5:	88 11                	mov    %dl,(%ecx)
4079e7:	41                   	inc    %ecx
4079e8:	ff 45 fc             	incl   -0x4(%ebp)
4079eb:	33 db                	xor    %ebx,%ebx
4079ed:	3b c3                	cmp    %ebx,%eax
4079ef:	76 08                	jbe    0x4079f9
4079f1:	8b 55 08             	mov    0x8(%ebp),%edx
4079f4:	39 55 fc             	cmp    %edx,-0x4(%ebp)
4079f7:	72 da                	jb     0x4079d3
4079f9:	8b 45 fc             	mov    -0x4(%ebp),%eax
4079fc:	3b 45 08             	cmp    0x8(%ebp),%eax
4079ff:	72 04                	jb     0x407a05
407a01:	88 1e                	mov    %bl,(%esi)
407a03:	eb 9f                	jmp    0x4079a4
407a05:	88 19                	mov    %bl,(%ecx)
407a07:	49                   	dec    %ecx
407a08:	8a 17                	mov    (%edi),%dl
407a0a:	8a 01                	mov    (%ecx),%al
407a0c:	88 11                	mov    %dl,(%ecx)
407a0e:	49                   	dec    %ecx
407a0f:	88 07                	mov    %al,(%edi)
407a11:	47                   	inc    %edi
407a12:	3b f9                	cmp    %ecx,%edi
407a14:	72 f2                	jb     0x407a08
407a16:	33 c0                	xor    %eax,%eax
407a18:	5f                   	pop    %edi
407a19:	5e                   	pop    %esi
407a1a:	5b                   	pop    %ebx
407a1b:	c9                   	leave
407a1c:	c2 0c 00             	ret    $0xc
407a1f:	8b ff                	mov    %edi,%edi
407a21:	55                   	push   %ebp
407a22:	8b ec                	mov    %esp,%ebp
407a24:	83 7d 14 0a          	cmpl   $0xa,0x14(%ebp)
407a28:	8b 45 08             	mov    0x8(%ebp),%eax
407a2b:	75 0a                	jne    0x407a37
407a2d:	85 c0                	test   %eax,%eax
407a2f:	7d 06                	jge    0x407a37
407a31:	6a 01                	push   $0x1
407a33:	6a 0a                	push   $0xa
407a35:	eb 05                	jmp    0x407a3c
407a37:	6a 00                	push   $0x0
407a39:	ff 75 14             	push   0x14(%ebp)
407a3c:	ff 75 10             	push   0x10(%ebp)
407a3f:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407a42:	e8 fb fe ff ff       	call   0x407942
407a47:	5d                   	pop    %ebp
407a48:	c3                   	ret
407a49:	8b ff                	mov    %edi,%edi
407a4b:	55                   	push   %ebp
407a4c:	8b ec                	mov    %esp,%ebp
407a4e:	83 ec 0c             	sub    $0xc,%esp
407a51:	53                   	push   %ebx
407a52:	33 db                	xor    %ebx,%ebx
407a54:	56                   	push   %esi
407a55:	3b fb                	cmp    %ebx,%edi
407a57:	75 1e                	jne    0x407a77
407a59:	e8 77 e0 ff ff       	call   0x405ad5
407a5e:	6a 16                	push   $0x16
407a60:	5e                   	pop    %esi
407a61:	89 30                	mov    %esi,(%eax)
407a63:	53                   	push   %ebx
407a64:	53                   	push   %ebx
407a65:	53                   	push   %ebx
407a66:	53                   	push   %ebx
407a67:	53                   	push   %ebx
407a68:	e8 b8 d7 ff ff       	call   0x405225
407a6d:	83 c4 14             	add    $0x14,%esp
407a70:	8b c6                	mov    %esi,%eax
407a72:	e9 c4 00 00 00       	jmp    0x407b3b
407a77:	39 5d 10             	cmp    %ebx,0x10(%ebp)
407a7a:	76 dd                	jbe    0x407a59
407a7c:	33 c0                	xor    %eax,%eax
407a7e:	39 5d 18             	cmp    %ebx,0x18(%ebp)
407a81:	88 1f                	mov    %bl,(%edi)
407a83:	0f 95 c0             	setne  %al
407a86:	40                   	inc    %eax
407a87:	39 45 10             	cmp    %eax,0x10(%ebp)
407a8a:	77 09                	ja     0x407a95
407a8c:	e8 44 e0 ff ff       	call   0x405ad5
407a91:	6a 22                	push   $0x22
407a93:	eb cb                	jmp    0x407a60
407a95:	8b 45 14             	mov    0x14(%ebp),%eax
407a98:	83 c0 fe             	add    $0xfffffffe,%eax
407a9b:	83 f8 22             	cmp    $0x22,%eax
407a9e:	77 b9                	ja     0x407a59
407aa0:	8b 55 08             	mov    0x8(%ebp),%edx
407aa3:	8b 45 0c             	mov    0xc(%ebp),%eax
407aa6:	89 5d fc             	mov    %ebx,-0x4(%ebp)
407aa9:	8b f7                	mov    %edi,%esi
407aab:	39 5d 18             	cmp    %ebx,0x18(%ebp)
407aae:	74 13                	je     0x407ac3
407ab0:	f7 da                	neg    %edx
407ab2:	13 c3                	adc    %ebx,%eax
407ab4:	c6 07 2d             	movb   $0x2d,(%edi)
407ab7:	8d 77 01             	lea    0x1(%edi),%esi
407aba:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
407ac1:	f7 d8                	neg    %eax
407ac3:	89 75 18             	mov    %esi,0x18(%ebp)