40470d:	85 d2                	test   %edx,%edx
40470f:	74 33                	je     0x404744
404711:	83 22 00             	andl   $0x0,(%edx)
404714:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
404718:	8b 4d 10             	mov    0x10(%ebp),%ecx
40471b:	74 10                	je     0x40472d
40471d:	e8 88 16 00 00       	call   0x405daa
404722:	85 c0                	test   %eax,%eax
404724:	75 07                	jne    0x40472d
404726:	b8 10 01 04 80       	mov    $0x80040110,%eax
40472b:	eb 17                	jmp    0x404744
40472d:	8b 45 08             	mov    0x8(%ebp),%eax
404730:	56                   	push   %esi
404731:	52                   	push   %edx
404732:	51                   	push   %ecx
404733:	8b 70 24             	mov    0x24(%eax),%esi
404736:	8b ce                	mov    %esi,%ecx
404738:	ff 75 0c             	push   0xc(%ebp)
40473b:	ff 15 20 f2 40 00    	call   *0x40f220
404741:	ff d6                	call   *%esi
404743:	5e                   	pop    %esi
404744:	5d                   	pop    %ebp
404745:	c2 10 00             	ret    $0x10
404748:	cc                   	int3
404749:	cc                   	int3
40474a:	cc                   	int3
40474b:	cc                   	int3
40474c:	cc                   	int3
40474d:	cc                   	int3
40474e:	cc                   	int3
40474f:	cc                   	int3
404750:	8b ff                	mov    %edi,%edi
404752:	55                   	push   %ebp
404753:	8b ec                	mov    %esp,%ebp
404755:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
404759:	56                   	push   %esi
40475a:	57                   	push   %edi
40475b:	8b 3d a4 c5 40 00    	mov    0x40c5a4,%edi
404761:	8b 07                	mov    (%edi),%eax
404763:	74 05                	je     0x40476a
404765:	8b 70 04             	mov    0x4(%eax),%esi
404768:	eb 03                	jmp    0x40476d
40476a:	8b 70 08             	mov    0x8(%eax),%esi
40476d:	8b ce                	mov    %esi,%ecx
40476f:	ff 15 20 f2 40 00    	call   *0x40f220
404775:	8b cf                	mov    %edi,%ecx
404777:	ff d6                	call   *%esi
404779:	5f                   	pop    %edi
40477a:	33 c0                	xor    %eax,%eax
40477c:	5e                   	pop    %esi
40477d:	5d                   	pop    %ebp
40477e:	c2 08 00             	ret    $0x8
404781:	8b ff                	mov    %edi,%edi
404783:	55                   	push   %ebp
404784:	8b ec                	mov    %esp,%ebp
404786:	56                   	push   %esi
404787:	8b 75 0c             	mov    0xc(%ebp),%esi
40478a:	85 f6                	test   %esi,%esi
40478c:	75 07                	jne    0x404795
40478e:	b8 03 40 00 80       	mov    $0x80004003,%eax
404793:	eb 3a                	jmp    0x4047cf
404795:	a1 6c c0 40 00       	mov    0x40c06c,%eax
40479a:	33 c9                	xor    %ecx,%ecx
40479c:	85 c0                	test   %eax,%eax
40479e:	75 0f                	jne    0x4047af
4047a0:	ff 75 08             	push   0x8(%ebp)
4047a3:	e8 b3 04 00 00       	call   0x404c5b
4047a8:	8b c8                	mov    %eax,%ecx
4047aa:	a1 6c c0 40 00       	mov    0x40c06c,%eax
4047af:	89 06                	mov    %eax,(%esi)
4047b1:	8b 15 6c c0 40 00    	mov    0x40c06c,%edx
4047b7:	85 d2                	test   %edx,%edx
4047b9:	74 12                	je     0x4047cd
4047bb:	8b 02                	mov    (%edx),%eax
4047bd:	52                   	push   %edx
4047be:	8b 70 04             	mov    0x4(%eax),%esi
4047c1:	8b ce                	mov    %esi,%ecx
4047c3:	ff 15 20 f2 40 00    	call   *0x40f220
4047c9:	ff d6                	call   *%esi
4047cb:	33 c9                	xor    %ecx,%ecx
4047cd:	8b c1                	mov    %ecx,%eax
4047cf:	5e                   	pop    %esi
4047d0:	5d                   	pop    %ebp
4047d1:	c2 08 00             	ret    $0x8
4047d4:	8b ff                	mov    %edi,%edi
4047d6:	55                   	push   %ebp
4047d7:	8b ec                	mov    %esp,%ebp
4047d9:	83 ec 10             	sub    $0x10,%esp
4047dc:	33 c0                	xor    %eax,%eax
4047de:	56                   	push   %esi
4047df:	57                   	push   %edi
4047e0:	8b 3d 6c c0 40 00    	mov    0x40c06c,%edi
4047e6:	85 ff                	test   %edi,%edi
4047e8:	74 0a                	je     0x4047f4
4047ea:	8b 35 74 c0 40 00    	mov    0x40c074,%esi
4047f0:	85 f6                	test   %esi,%esi
4047f2:	75 14                	jne    0x404808
4047f4:	ff 75 14             	push   0x14(%ebp)
4047f7:	e8 5f 04 00 00       	call   0x404c5b
4047fc:	8b 35 74 c0 40 00    	mov    0x40c074,%esi
404802:	8b 3d 6c c0 40 00    	mov    0x40c06c,%edi
404808:	85 ff                	test   %edi,%edi
40480a:	74 7b                	je     0x404887
40480c:	85 f6                	test   %esi,%esi
40480e:	74 5e                	je     0x40486e
404810:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
404814:	75 58                	jne    0x40486e
404816:	8b 45 0c             	mov    0xc(%ebp),%eax
404819:	8b 00                	mov    (%eax),%eax
40481b:	8b c8                	mov    %eax,%ecx
40481d:	89 45 f0             	mov    %eax,-0x10(%ebp)
404820:	e8 34 18 00 00       	call   0x406059
404825:	89 45 f4             	mov    %eax,-0xc(%ebp)
404828:	a1 78 c0 40 00       	mov    0x40c078,%eax
40482d:	83 e8 01             	sub    $0x1,%eax
404830:	89 45 fc             	mov    %eax,-0x4(%ebp)
404833:	78 39                	js     0x40486e
404835:	6b c8 0c             	imul   $0xc,%eax,%ecx
404838:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40483b:	8b 54 31 04          	mov    0x4(%ecx,%esi,1),%edx
40483f:	39 55 f4             	cmp    %edx,-0xc(%ebp)
404842:	75 1c                	jne    0x404860
404844:	8d 04 12             	lea    (%edx,%edx,1),%eax
404847:	50                   	push   %eax
404848:	ff 75 f0             	push   -0x10(%ebp)
40484b:	ff 34 31             	push   (%ecx,%esi,1)
40484e:	e8 88 5b 00 00       	call   0x40a3db
404853:	83 c4 0c             	add    $0xc,%esp
404856:	85 c0                	test   %eax,%eax
404858:	74 33                	je     0x40488d
40485a:	8b 45 fc             	mov    -0x4(%ebp),%eax
40485d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
404860:	48                   	dec    %eax
404861:	83 e9 0c             	sub    $0xc,%ecx
404864:	89 45 fc             	mov    %eax,-0x4(%ebp)
404867:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40486a:	85 c0                	test   %eax,%eax
40486c:	79 cd                	jns    0x40483b
40486e:	ff 75 18             	push   0x18(%ebp)
404871:	8b 37                	mov    (%edi),%esi
404873:	ff 75 10             	push   0x10(%ebp)
404876:	ff 75 0c             	push   0xc(%ebp)
404879:	8b 76 28             	mov    0x28(%esi),%esi
40487c:	8b ce                	mov    %esi,%ecx
40487e:	57                   	push   %edi
40487f:	ff 15 20 f2 40 00    	call   *0x40f220
404885:	ff d6                	call   *%esi
404887:	5f                   	pop    %edi
404888:	5e                   	pop    %esi
404889:	c9                   	leave
40488a:	c2 14 00             	ret    $0x14
40488d:	6b 45 fc 0c          	imul   $0xc,-0x4(%ebp),%eax
404891:	8b 4c 30 08          	mov    0x8(%eax,%esi,1),%ecx
404895:	8b 45 18             	mov    0x18(%ebp),%eax
404898:	89 08                	mov    %ecx,(%eax)
40489a:	33 c0                	xor    %eax,%eax
40489c:	eb e9                	jmp    0x404887
40489e:	8b ff                	mov    %edi,%edi
4048a0:	55                   	push   %ebp
4048a1:	8b ec                	mov    %esp,%ebp
4048a3:	6a ff                	push   $0xffffffff
4048a5:	68 9f a4 40 00       	push   $0x40a49f
4048aa:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4048b0:	50                   	push   %eax
4048b1:	56                   	push   %esi
4048b2:	a1 e4 c1 40 00       	mov    0x40c1e4,%eax
4048b7:	33 c5                	xor    %ebp,%eax
4048b9:	50                   	push   %eax
4048ba:	8d 45 f4             	lea    -0xc(%ebp),%eax
4048bd:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4048c3:	8b 09                	mov    (%ecx),%ecx
4048c5:	85 c9                	test   %ecx,%ecx
4048c7:	74 10                	je     0x4048d9
4048c9:	8b 01                	mov    (%ecx),%eax
4048cb:	51                   	push   %ecx
4048cc:	8b 70 08             	mov    0x8(%eax),%esi
4048cf:	8b ce                	mov    %esi,%ecx
4048d1:	ff 15 20 f2 40 00    	call   *0x40f220
4048d7:	ff d6                	call   *%esi
4048d9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
4048dc:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4048e3:	59                   	pop    %ecx
4048e4:	5e                   	pop    %esi
4048e5:	c9                   	leave
4048e6:	c3                   	ret
4048e7:	8b ff                	mov    %edi,%edi
4048e9:	55                   	push   %ebp
4048ea:	8b ec                	mov    %esp,%ebp
4048ec:	51                   	push   %ecx
4048ed:	51                   	push   %ecx
4048ee:	8b 01                	mov    (%ecx),%eax
4048f0:	57                   	push   %edi
4048f1:	85 c0                	test   %eax,%eax
4048f3:	75 09                	jne    0x4048fe
4048f5:	39 45 08             	cmp    %eax,0x8(%ebp)
4048f8:	75 7a                	jne    0x404974
4048fa:	b0 01                	mov    $0x1,%al
4048fc:	eb 78                	jmp    0x404976
4048fe:	8b 7d 08             	mov    0x8(%ebp),%edi
404901:	85 ff                	test   %edi,%edi
404903:	74 6f                	je     0x404974
404905:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404909:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40490c:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
404910:	53                   	push   %ebx
404911:	56                   	push   %esi
404912:	8b 30                	mov    (%eax),%esi
404914:	bb 24 25 40 00       	mov    $0x402524,%ebx
404919:	51                   	push   %ecx
40491a:	53                   	push   %ebx
40491b:	50                   	push   %eax
40491c:	8b 0e                	mov    (%esi),%ecx
40491e:	ff 15 20 f2 40 00    	call   *0x40f220
404924:	ff 16                	call   *(%esi)
404926:	8b 37                	mov    (%edi),%esi
404928:	8d 45 f8             	lea    -0x8(%ebp),%eax
40492b:	50                   	push   %eax
40492c:	53                   	push   %ebx
40492d:	57                   	push   %edi
40492e:	8b 0e                	mov    (%esi),%ecx
404930:	ff 15 20 f2 40 00    	call   *0x40f220
404936:	ff 16                	call   *(%esi)
404938:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40493b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40493e:	3b c1                	cmp    %ecx,%eax
404940:	0f 94 c3             	sete   %bl
404943:	85 c9                	test   %ecx,%ecx
404945:	74 13                	je     0x40495a
404947:	8b 01                	mov    (%ecx),%eax
404949:	51                   	push   %ecx
40494a:	8b 70 08             	mov    0x8(%eax),%esi
40494d:	8b ce                	mov    %esi,%ecx
40494f:	ff 15 20 f2 40 00    	call   *0x40f220
404955:	ff d6                	call   *%esi
404957:	8b 45 fc             	mov    -0x4(%ebp),%eax
40495a:	85 c0                	test   %eax,%eax
40495c:	74 10                	je     0x40496e
40495e:	8b 08                	mov    (%eax),%ecx
404960:	50                   	push   %eax
404961:	8b 71 08             	mov    0x8(%ecx),%esi
404964:	8b ce                	mov    %esi,%ecx
404966:	ff 15 20 f2 40 00    	call   *0x40f220
40496c:	ff d6                	call   *%esi
40496e:	5e                   	pop    %esi
40496f:	8a c3                	mov    %bl,%al
404971:	5b                   	pop    %ebx
404972:	eb 02                	jmp    0x404976
404974:	32 c0                	xor    %al,%al
404976:	5f                   	pop    %edi
404977:	c9                   	leave
404978:	c2 04 00             	ret    $0x4
40497b:	8b ff                	mov    %edi,%edi
40497d:	56                   	push   %esi
40497e:	8b f1                	mov    %ecx,%esi
404980:	80 7e 04 00          	cmpb   $0x0,0x4(%esi)
404984:	74 0c                	je     0x404992
404986:	ff 36                	push   (%esi)
404988:	ff 15 64 f0 40 00    	call   *0x40f064
40498e:	c6 46 04 00          	movb   $0x0,0x4(%esi)
404992:	5e                   	pop    %esi
404993:	c3                   	ret
404994:	6a 10                	push   $0x10
404996:	b8 ba a4 40 00       	mov    $0x40a4ba,%eax
40499b:	e8 97 54 00 00       	call   0x409e37
4049a0:	8b d9                	mov    %ecx,%ebx
4049a2:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4049a5:	85 db                	test   %ebx,%ebx
4049a7:	75 07                	jne    0x4049b0
4049a9:	b8 57 00 07 80       	mov    $0x80070057,%eax
4049ae:	eb 56                	jmp    0x404a06
4049b0:	33 ff                	xor    %edi,%edi
4049b2:	6a 0c                	push   $0xc
4049b4:	89 7d fc             	mov    %edi,-0x4(%ebp)
4049b7:	e8 98 43 00 00       	call   0x408d54
4049bc:	59                   	pop    %ecx
4049bd:	eb 0d                	jmp    0x4049cc
4049bf:	b8 c5 49 40 00       	mov    $0x4049c5,%eax
4049c4:	c3                   	ret
4049c5:	8b 5d e8             	mov    -0x18(%ebp),%ebx
4049c8:	33 ff                	xor    %edi,%edi
4049ca:	8b c7                	mov    %edi,%eax
4049cc:	89 45 ec             	mov    %eax,-0x14(%ebp)
4049cf:	85 c0                	test   %eax,%eax
4049d1:	75 07                	jne    0x4049da
4049d3:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
4049d8:	eb 2a                	jmp    0x404a04
4049da:	8d 73 0c             	lea    0xc(%ebx),%esi
4049dd:	c7 00 10 4a 40 00    	movl   $0x404a10,(%eax)
4049e3:	56                   	push   %esi
4049e4:	c7 40 04 60 c0 40 00 	movl   $0x40c060,0x4(%eax)
4049eb:	ff 15 60 f0 40 00    	call   *0x40f060
4049f1:	8b 45 ec             	mov    -0x14(%ebp),%eax
4049f4:	8b 4b 08             	mov    0x8(%ebx),%ecx
4049f7:	56                   	push   %esi
4049f8:	89 48 08             	mov    %ecx,0x8(%eax)
4049fb:	89 43 08             	mov    %eax,0x8(%ebx)
4049fe:	ff 15 64 f0 40 00    	call   *0x40f064
404a04:	8b c7                	mov    %edi,%eax
404a06:	e8 91 53 00 00       	call   0x409d9c
404a0b:	c2 04 00             	ret    $0x4
404a0e:	cc                   	int3
404a0f:	cc                   	int3
404a10:	6a 00                	push   $0x0
404a12:	b8 69 a4 40 00       	mov    $0x40a469,%eax
404a17:	e8 b2 53 00 00       	call   0x409dce
404a1c:	8b 7d 08             	mov    0x8(%ebp),%edi
404a1f:	85 ff                	test   %edi,%edi
404a21:	74 44                	je     0x404a67
404a23:	8b 4f 0c             	mov    0xc(%edi),%ecx
404a26:	85 c9                	test   %ecx,%ecx
404a28:	74 10                	je     0x404a3a
404a2a:	8b 01                	mov    (%ecx),%eax
404a2c:	51                   	push   %ecx
404a2d:	8b 70 08             	mov    0x8(%eax),%esi
404a30:	8b ce                	mov    %esi,%ecx
404a32:	ff 15 20 f2 40 00    	call   *0x40f220
404a38:	ff d6                	call   *%esi
404a3a:	83 67 0c 00          	andl   $0x0,0xc(%edi)
404a3e:	8b 47 14             	mov    0x14(%edi),%eax
404a41:	85 c0                	test   %eax,%eax
404a43:	74 1e                	je     0x404a63
404a45:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404a49:	8d 70 fc             	lea    -0x4(%eax),%esi
404a4c:	68 20 39 40 00       	push   $0x403920
404a51:	ff 36                	push   (%esi)
404a53:	6a 0c                	push   $0xc
404a55:	50                   	push   %eax
404a56:	e8 99 4e 00 00       	call   0x4098f4
404a5b:	56                   	push   %esi
404a5c:	ff 15 fc f1 40 00    	call   *0x40f1fc
404a62:	59                   	pop    %ecx
404a63:	83 67 14 00          	andl   $0x0,0x14(%edi)
404a67:	e8 30 53 00 00       	call   0x409d9c
404a6c:	c2 04 00             	ret    $0x4
404a6f:	cc                   	int3
404a70:	83 21 00             	andl   $0x0,(%ecx)
404a73:	8b c1                	mov    %ecx,%eax
404a75:	83 61 04 00          	andl   $0x0,0x4(%ecx)
404a79:	83 49 08 ff          	orl    $0xffffffff,0x8(%ecx)
404a7d:	c3                   	ret
404a7e:	6a 08                	push   $0x8
404a80:	6a 28                	push   $0x28
404a82:	b8 e8 a4 40 00       	mov    $0x40a4e8,%eax
404a87:	e8 b5 58 00 00       	call   0x40a341
404a8c:	8b 7b 08             	mov    0x8(%ebx),%edi
404a8f:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
404a92:	51                   	push   %ecx
404a93:	57                   	push   %edi
404a94:	8b 07                	mov    (%edi),%eax
404a96:	8b 70 0c             	mov    0xc(%eax),%esi