4055a0:	55                   	push   %ebp
4055a1:	8b ec                	mov    %esp,%ebp
4055a3:	81 ec 94 00 00 00    	sub    $0x94,%esp
4055a9:	53                   	push   %ebx
4055aa:	56                   	push   %esi
4055ab:	57                   	push   %edi
4055ac:	8b f9                	mov    %ecx,%edi
4055ae:	68 f4 01 00 00       	push   $0x1f4
4055b3:	89 7d fc             	mov    %edi,-0x4(%ebp)
4055b6:	ff 15 e4 21 41 00    	call   *0x4121e4
4055bc:	8d 4d a0             	lea    -0x60(%ebp),%ecx
4055bf:	e8 29 8e 00 00       	call   0x40e3ed
4055c4:	e8 2b a6 00 00       	call   0x40fbf4
4055c9:	50                   	push   %eax
4055ca:	8d 4d a0             	lea    -0x60(%ebp),%ecx
4055cd:	e8 12 8d 00 00       	call   0x40e2e4
4055d2:	68 08 28 41 00       	push   $0x412808
4055d7:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4055da:	e8 0d dc ff ff       	call   0x4031ec
4055df:	50                   	push   %eax
4055e0:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
4055e6:	50                   	push   %eax
4055e7:	8d 4d a0             	lea    -0x60(%ebp),%ecx
4055ea:	e8 68 8c 00 00       	call   0x40e257
4055ef:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4055f2:	e8 36 04 00 00       	call   0x405a2d
4055f7:	8d 45 98             	lea    -0x68(%ebp),%eax
4055fa:	50                   	push   %eax
4055fb:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4055fe:	e8 76 d8 ff ff       	call   0x402e79
405603:	8d 45 f4             	lea    -0xc(%ebp),%eax
405606:	50                   	push   %eax
405607:	8d 4f 44             	lea    0x44(%edi),%ecx
40560a:	e8 bd d6 ff ff       	call   0x402ccc
40560f:	8d 4d f4             	lea    -0xc(%ebp),%ecx
405612:	e8 4f d8 ff ff       	call   0x402e66
405617:	8d 45 ec             	lea    -0x14(%ebp),%eax
40561a:	8b cf                	mov    %edi,%ecx
40561c:	50                   	push   %eax
40561d:	e8 d0 fe ff ff       	call   0x4054f2
405622:	8b 5d ec             	mov    -0x14(%ebp),%ebx
405625:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405628:	8b 33                	mov    (%ebx),%esi
40562a:	8d 53 04             	lea    0x4(%ebx),%edx
40562d:	56                   	push   %esi
40562e:	e8 e3 a5 00 00       	call   0x40fc16
405633:	59                   	pop    %ecx
405634:	50                   	push   %eax
405635:	8d 4f 10             	lea    0x10(%edi),%ecx
405638:	e8 27 dc ff ff       	call   0x403264
40563d:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405640:	e8 e8 03 00 00       	call   0x405a2d
405645:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405648:	8d 7e 04             	lea    0x4(%esi),%edi
40564b:	8b 04 3b             	mov    (%ebx,%edi,1),%eax
40564e:	89 41 14             	mov    %eax,0x14(%ecx)
405651:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405654:	8b 74 3b 04          	mov    0x4(%ebx,%edi,1),%esi
405658:	83 c7 08             	add    $0x8,%edi
40565b:	56                   	push   %esi
40565c:	8d 14 3b             	lea    (%ebx,%edi,1),%edx
40565f:	e8 b2 a5 00 00       	call   0x40fc16
405664:	59                   	pop    %ecx
405665:	8b 4d fc             	mov    -0x4(%ebp),%ecx
405668:	50                   	push   %eax
405669:	8d 49 28             	lea    0x28(%ecx),%ecx
40566c:	e8 f3 db ff ff       	call   0x403264
405671:	8b 4d f8             	mov    -0x8(%ebp),%ecx
405674:	e8 b4 03 00 00       	call   0x405a2d
405679:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40567c:	03 fe                	add    %esi,%edi
40567e:	0f be 04 3b          	movsbl (%ebx,%edi,1),%eax
405682:	89 41 18             	mov    %eax,0x18(%ecx)
405685:	8d 4d f8             	lea    -0x8(%ebp),%ecx
405688:	8b 74 3b 01          	mov    0x1(%ebx,%edi,1),%esi
40568c:	83 c7 05             	add    $0x5,%edi
40568f:	56                   	push   %esi
405690:	8d 14 3b             	lea    (%ebx,%edi,1),%edx
405693:	e8 7e a5 00 00       	call   0x40fc16
405698:	59                   	pop    %ecx
405699:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40569c:	50                   	push   %eax
40569d:	8d 49 1c             	lea    0x1c(%ecx),%ecx
4056a0:	e8 bf db ff ff       	call   0x403264
4056a5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4056a8:	e8 80 03 00 00       	call   0x405a2d
4056ad:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4056b0:	03 fe                	add    %esi,%edi
4056b2:	0f be 04 3b          	movsbl (%ebx,%edi,1),%eax
4056b6:	89 41 20             	mov    %eax,0x20(%ecx)
4056b9:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4056bc:	8b 74 3b 01          	mov    0x1(%ebx,%edi,1),%esi
4056c0:	83 c7 05             	add    $0x5,%edi
4056c3:	56                   	push   %esi
4056c4:	8d 14 3b             	lea    (%ebx,%edi,1),%edx
4056c7:	e8 4a a5 00 00       	call   0x40fc16
4056cc:	59                   	pop    %ecx
4056cd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4056d0:	50                   	push   %eax
4056d1:	8d 49 24             	lea    0x24(%ecx),%ecx
4056d4:	e8 8b db ff ff       	call   0x403264
4056d9:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4056dc:	e8 4c 03 00 00       	call   0x405a2d
4056e1:	03 fe                	add    %esi,%edi
4056e3:	8d 53 04             	lea    0x4(%ebx),%edx
4056e6:	8b 75 fc             	mov    -0x4(%ebp),%esi
4056e9:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4056ec:	8b 04 3b             	mov    (%ebx,%edi,1),%eax
4056ef:	89 46 2c             	mov    %eax,0x2c(%esi)
4056f2:	0f be 44 3b 04       	movsbl 0x4(%ebx,%edi,1),%eax
4056f7:	89 46 34             	mov    %eax,0x34(%esi)
4056fa:	0f be 44 3b 05       	movsbl 0x5(%ebx,%edi,1),%eax
4056ff:	89 46 38             	mov    %eax,0x38(%esi)
405702:	0f be 44 3b 06       	movsbl 0x6(%ebx,%edi,1),%eax
405707:	89 46 3c             	mov    %eax,0x3c(%esi)
40570a:	0f be 44 3b 07       	movsbl 0x7(%ebx,%edi,1),%eax
40570f:	83 c7 08             	add    $0x8,%edi
405712:	89 46 40             	mov    %eax,0x40(%esi)
405715:	03 d7                	add    %edi,%edx
405717:	ff 34 3b             	push   (%ebx,%edi,1)
40571a:	e8 f7 a4 00 00       	call   0x40fc16
40571f:	59                   	pop    %ecx
405720:	8d 45 fc             	lea    -0x4(%ebp),%eax
405723:	50                   	push   %eax
405724:	8d 4e 30             	lea    0x30(%esi),%ecx
405727:	e8 38 db ff ff       	call   0x403264
40572c:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40572f:	33 c0                	xor    %eax,%eax
405731:	40                   	inc    %eax
405732:	89 06                	mov    %eax,(%esi)
405734:	89 46 04             	mov    %eax,0x4(%esi)
405737:	e8 f1 02 00 00       	call   0x405a2d
40573c:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40573f:	e8 22 d7 ff ff       	call   0x402e66
405744:	8d 4d 98             	lea    -0x68(%ebp),%ecx
405747:	e8 1a d7 ff ff       	call   0x402e66
40574c:	8b 4d cc             	mov    -0x34(%ebp),%ecx
40574f:	85 c9                	test   %ecx,%ecx
405751:	74 06                	je     0x405759
405753:	51                   	push   %ecx
405754:	e8 5b c6 ff ff       	call   0x401db4
405759:	33 c0                	xor    %eax,%eax
40575b:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40575e:	89 45 cc             	mov    %eax,-0x34(%ebp)
405761:	89 45 d4             	mov    %eax,-0x2c(%ebp)
405764:	89 45 d0             	mov    %eax,-0x30(%ebp)
405767:	e8 fa d6 ff ff       	call   0x402e66
40576c:	8d 4d a0             	lea    -0x60(%ebp),%ecx
40576f:	e8 17 87 00 00       	call   0x40de8b
405774:	5f                   	pop    %edi
405775:	5e                   	pop    %esi
405776:	5b                   	pop    %ebx
405777:	c9                   	leave
405778:	c3                   	ret
405779:	33 c0                	xor    %eax,%eax
40577b:	89 41 08             	mov    %eax,0x8(%ecx)
40577e:	89 41 0c             	mov    %eax,0xc(%ecx)
405781:	89 41 10             	mov    %eax,0x10(%ecx)
405784:	89 41 1c             	mov    %eax,0x1c(%ecx)
405787:	89 41 24             	mov    %eax,0x24(%ecx)
40578a:	89 41 28             	mov    %eax,0x28(%ecx)
40578d:	89 41 30             	mov    %eax,0x30(%ecx)
405790:	89 41 44             	mov    %eax,0x44(%ecx)
405793:	89 41 48             	mov    %eax,0x48(%ecx)
405796:	89 01                	mov    %eax,(%ecx)
405798:	89 41 04             	mov    %eax,0x4(%ecx)
40579b:	8b c1                	mov    %ecx,%eax
40579d:	c3                   	ret
40579e:	56                   	push   %esi
40579f:	8b f1                	mov    %ecx,%esi
4057a1:	57                   	push   %edi
4057a2:	8d 4e 44             	lea    0x44(%esi),%ecx
4057a5:	e8 bc d6 ff ff       	call   0x402e66
4057aa:	8b 4e 30             	mov    0x30(%esi),%ecx
4057ad:	e8 7b 02 00 00       	call   0x405a2d
4057b2:	33 ff                	xor    %edi,%edi
4057b4:	89 7e 30             	mov    %edi,0x30(%esi)
4057b7:	8b 4e 28             	mov    0x28(%esi),%ecx
4057ba:	e8 6e 02 00 00       	call   0x405a2d
4057bf:	89 7e 28             	mov    %edi,0x28(%esi)
4057c2:	8b 4e 24             	mov    0x24(%esi),%ecx
4057c5:	e8 63 02 00 00       	call   0x405a2d
4057ca:	89 7e 24             	mov    %edi,0x24(%esi)
4057cd:	8b 4e 1c             	mov    0x1c(%esi),%ecx
4057d0:	e8 58 02 00 00       	call   0x405a2d
4057d5:	89 7e 1c             	mov    %edi,0x1c(%esi)
4057d8:	8b 4e 10             	mov    0x10(%esi),%ecx
4057db:	e8 4d 02 00 00       	call   0x405a2d
4057e0:	89 7e 10             	mov    %edi,0x10(%esi)
4057e3:	8d 4e 08             	lea    0x8(%esi),%ecx
4057e6:	5f                   	pop    %edi
4057e7:	5e                   	pop    %esi
4057e8:	e9 79 d6 ff ff       	jmp    0x402e66
4057ed:	8b 41 2c             	mov    0x2c(%ecx),%eax
4057f0:	c3                   	ret
4057f1:	8b 41 34             	mov    0x34(%ecx),%eax
4057f4:	c3                   	ret
4057f5:	55                   	push   %ebp
4057f6:	8b ec                	mov    %esp,%ebp
4057f8:	56                   	push   %esi
4057f9:	8b 75 08             	mov    0x8(%ebp),%esi
4057fc:	57                   	push   %edi
4057fd:	8d 79 10             	lea    0x10(%ecx),%edi
405800:	8b ce                	mov    %esi,%ecx
405802:	57                   	push   %edi
405803:	e8 52 dc ff ff       	call   0x40345a
405808:	8b 4f 04             	mov    0x4(%edi),%ecx
40580b:	8b c6                	mov    %esi,%eax
40580d:	5f                   	pop    %edi
40580e:	89 4e 04             	mov    %ecx,0x4(%esi)
405811:	5e                   	pop    %esi
405812:	5d                   	pop    %ebp
405813:	c2 04 00             	ret    $0x4
405816:	68 80 00 00 00       	push   $0x80
40581b:	6a 08                	push   $0x8
40581d:	ff 15 bc 21 41 00    	call   *0x4121bc
405823:	50                   	push   %eax
405824:	ff 15 c0 21 41 00    	call   *0x4121c0
40582a:	c3                   	ret
40582b:	53                   	push   %ebx
40582c:	68 10 28 41 00       	push   $0x412810
405831:	8a d9                	mov    %cl,%bl
405833:	ff 15 b8 21 41 00    	call   *0x4121b8
405839:	68 1c 28 41 00       	push   $0x41281c
40583e:	50                   	push   %eax
40583f:	ff 15 b4 21 41 00    	call   *0x4121b4
405845:	84 db                	test   %bl,%bl
405847:	5b                   	pop    %ebx
405848:	75 1f                	jne    0x405869
40584a:	85 c0                	test   %eax,%eax
40584c:	74 13                	je     0x405861
40584e:	68 10 20 00 00       	push   $0x2010
405853:	68 28 28 41 00       	push   $0x412828
405858:	68 30 28 41 00       	push   $0x412830
40585d:	6a 00                	push   $0x0
40585f:	ff d0                	call   *%eax
405861:	6a 01                	push   $0x1
405863:	ff 15 b0 21 41 00    	call   *0x4121b0
405869:	c3                   	ret
40586a:	55                   	push   %ebp
40586b:	8b ec                	mov    %esp,%ebp
40586d:	83 ec 44             	sub    $0x44,%esp
405870:	56                   	push   %esi
405871:	ff 15 a8 21 41 00    	call   *0x4121a8
405877:	8b c8                	mov    %eax,%ecx
405879:	8a 01                	mov    (%ecx),%al
40587b:	3c 22                	cmp    $0x22,%al
40587d:	75 28                	jne    0x4058a7
40587f:	41                   	inc    %ecx
405880:	8a 11                	mov    (%ecx),%dl
405882:	84 d2                	test   %dl,%dl
405884:	74 11                	je     0x405897
405886:	8a c2                	mov    %dl,%al
405888:	8a d0                	mov    %al,%dl
40588a:	3c 22                	cmp    $0x22,%al
40588c:	74 09                	je     0x405897
40588e:	41                   	inc    %ecx
40588f:	8a 11                	mov    (%ecx),%dl
405891:	8a c2                	mov    %dl,%al
405893:	84 d2                	test   %dl,%dl
405895:	75 f1                	jne    0x405888
405897:	8d 41 01             	lea    0x1(%ecx),%eax
40589a:	80 fa 22             	cmp    $0x22,%dl
40589d:	0f 45 c1             	cmovne %ecx,%eax
4058a0:	8b c8                	mov    %eax,%ecx
4058a2:	eb 0e                	jmp    0x4058b2
4058a4:	41                   	inc    %ecx
4058a5:	8a 01                	mov    (%ecx),%al
4058a7:	3c 20                	cmp    $0x20,%al
4058a9:	7f f9                	jg     0x4058a4
4058ab:	eb 07                	jmp    0x4058b4
4058ad:	3c 20                	cmp    $0x20,%al
4058af:	7f 07                	jg     0x4058b8
4058b1:	41                   	inc    %ecx
4058b2:	8a 01                	mov    (%ecx),%al
4058b4:	84 c0                	test   %al,%al
4058b6:	75 f5                	jne    0x4058ad
4058b8:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
4058bc:	8d 45 bc             	lea    -0x44(%ebp),%eax
4058bf:	50                   	push   %eax
4058c0:	ff 15 80 21 41 00    	call   *0x412180
4058c6:	e8 2d 00 00 00       	call   0x4058f8
4058cb:	ba 2c 60 41 00       	mov    $0x41602c,%edx
4058d0:	b9 00 60 41 00       	mov    $0x416000,%ecx
4058d5:	e8 4b 00 00 00       	call   0x405925
4058da:	6a 00                	push   $0x0
4058dc:	ff 15 ac 21 41 00    	call   *0x4121ac
4058e2:	51                   	push   %ecx
4058e3:	51                   	push   %ecx
4058e4:	e8 bd b8 00 00       	call   0x4111a6
4058e9:	8b f0                	mov    %eax,%esi
4058eb:	e8 1d 00 00 00       	call   0x40590d
4058f0:	56                   	push   %esi
4058f1:	ff 15 b0 21 41 00    	call   *0x4121b0
4058f7:	cc                   	int3
4058f8:	c7 05 1c 78 41 00 20 	movl   $0x20,0x41781c
4058ff:	00 00 00
405902:	e8 0f ff ff ff       	call   0x405816
405907:	a3 9c 6d 41 00       	mov    %eax,0x416d9c
40590c:	c3                   	ret
40590d:	a1 d4 7c 41 00       	mov    0x417cd4,%eax
405912:	85 c0                	test   %eax,%eax
405914:	74 0e                	je     0x405924
405916:	8b 0d 9c 6d 41 00    	mov    0x416d9c,%ecx
40591c:	8d 14 81             	lea    (%ecx,%eax,4),%edx
40591f:	e9 01 00 00 00       	jmp    0x405925
405924:	c3                   	ret
405925:	53                   	push   %ebx
405926:	56                   	push   %esi
405927:	57                   	push   %edi
405928:	8b f9                	mov    %ecx,%edi
40592a:	8b f2                	mov    %edx,%esi
40592c:	2b f7                	sub    %edi,%esi
40592e:	33 c0                	xor    %eax,%eax
405930:	83 c6 03             	add    $0x3,%esi
405933:	33 db                	xor    %ebx,%ebx
405935:	c1 ee 02             	shr    $0x2,%esi
405938:	3b fa                	cmp    %edx,%edi
40593a:	0f 47 f0             	cmova  %eax,%esi
40593d:	85 f6                	test   %esi,%esi
40593f:	74 10                	je     0x405951
405941:	8b 07                	mov    (%edi),%eax
405943:	85 c0                	test   %eax,%eax
405945:	74 02                	je     0x405949
405947:	ff d0                	call   *%eax
405949:	83 c7 04             	add    $0x4,%edi
40594c:	43                   	inc    %ebx
40594d:	3b de                	cmp    %esi,%ebx
40594f:	72 f0                	jb     0x405941
405951:	5f                   	pop    %edi
405952:	5e                   	pop    %esi
405953:	5b                   	pop    %ebx
405954:	c3                   	ret
405955:	8b 15 d4 7c 41 00    	mov    0x417cd4,%edx
40595b:	3b 15 1c 78 41 00    	cmp    0x41781c,%edx
405961:	73 12                	jae    0x405975
405963:	a1 9c 6d 41 00       	mov    0x416d9c,%eax
405968:	89 0c 90             	mov    %ecx,(%eax,%edx,4)
40596b:	42                   	inc    %edx
40596c:	89 15 d4 7c 41 00    	mov    %edx,0x417cd4
405972:	33 c0                	xor    %eax,%eax
405974:	c3                   	ret
405975:	83 c8 ff             	or     $0xffffffff,%eax
405978:	c3                   	ret
405979:	52                   	push   %edx
40597a:	6a 08                	push   $0x8
40597c:	ff 15 bc 21 41 00    	call   *0x4121bc
405982:	50                   	push   %eax
405983:	ff 15 c0 21 41 00    	call   *0x4121c0
405989:	c3                   	ret