4055a3:	c1 e6 06             	shl    $0x6,%esi
4055a6:	f6 44 32 04 80       	testb  $0x80,0x4(%edx,%esi,1)
4055ab:	74 17                	je     0x4055c4
4055ad:	8b d1                	mov    %ecx,%edx
4055af:	3b d0                	cmp    %eax,%edx
4055b1:	73 11                	jae    0x4055c4
4055b3:	8b f0                	mov    %eax,%esi
4055b5:	80 3a 0a             	cmpb   $0xa,(%edx)
4055b8:	75 05                	jne    0x4055bf
4055ba:	ff 45 f4             	incl   -0xc(%ebp)
4055bd:	33 db                	xor    %ebx,%ebx
4055bf:	42                   	inc    %edx
4055c0:	3b d6                	cmp    %esi,%edx
4055c2:	72 f1                	jb     0x4055b5
4055c4:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
4055c7:	75 1c                	jne    0x4055e5
4055c9:	8b 45 f4             	mov    -0xc(%ebp),%eax
4055cc:	e9 da 00 00 00       	jmp    0x4056ab
4055d1:	84 d2                	test   %dl,%dl
4055d3:	78 ef                	js     0x4055c4
4055d5:	e8 fb 04 00 00       	call   0x405ad5
4055da:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4055e0:	e9 87 00 00 00       	jmp    0x40566c
4055e5:	f6 47 0c 01          	testb  $0x1,0xc(%edi)
4055e9:	0f 84 b4 00 00 00    	je     0x4056a3
4055ef:	8b 57 04             	mov    0x4(%edi),%edx
4055f2:	3b d3                	cmp    %ebx,%edx
4055f4:	75 08                	jne    0x4055fe
4055f6:	89 5d f4             	mov    %ebx,-0xc(%ebp)
4055f9:	e9 a5 00 00 00       	jmp    0x4056a3
4055fe:	8b 5d fc             	mov    -0x4(%ebp),%ebx
405601:	8b 75 fc             	mov    -0x4(%ebp),%esi
405604:	2b c1                	sub    %ecx,%eax
405606:	03 c2                	add    %edx,%eax
405608:	c1 fb 05             	sar    $0x5,%ebx
40560b:	83 e6 1f             	and    $0x1f,%esi
40560e:	8d 1c 9d 60 12 c7 00 	lea    0xc71260(,%ebx,4),%ebx
405615:	89 45 08             	mov    %eax,0x8(%ebp)
405618:	8b 03                	mov    (%ebx),%eax
40561a:	c1 e6 06             	shl    $0x6,%esi
40561d:	f6 44 30 04 80       	testb  $0x80,0x4(%eax,%esi,1)
405622:	74 79                	je     0x40569d
405624:	6a 02                	push   $0x2
405626:	6a 00                	push   $0x0
405628:	ff 75 fc             	push   -0x4(%ebp)
40562b:	e8 75 6a 00 00       	call   0x40c0a5
405630:	83 c4 0c             	add    $0xc,%esp
405633:	3b 45 f8             	cmp    -0x8(%ebp),%eax
405636:	75 20                	jne    0x405658
405638:	8b 47 08             	mov    0x8(%edi),%eax
40563b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40563e:	03 c8                	add    %eax,%ecx
405640:	eb 09                	jmp    0x40564b
405642:	80 38 0a             	cmpb   $0xa,(%eax)
405645:	75 03                	jne    0x40564a
405647:	ff 45 08             	incl   0x8(%ebp)
40564a:	40                   	inc    %eax
40564b:	3b c1                	cmp    %ecx,%eax
40564d:	72 f3                	jb     0x405642
40564f:	f7 47 0c 00 20 00 00 	testl  $0x2000,0xc(%edi)
405656:	eb 40                	jmp    0x405698
405658:	6a 00                	push   $0x0
40565a:	ff 75 f8             	push   -0x8(%ebp)
40565d:	ff 75 fc             	push   -0x4(%ebp)
405660:	e8 40 6a 00 00       	call   0x40c0a5
405665:	83 c4 0c             	add    $0xc,%esp
405668:	85 c0                	test   %eax,%eax
40566a:	7d 05                	jge    0x405671
40566c:	83 c8 ff             	or     $0xffffffff,%eax
40566f:	eb 3a                	jmp    0x4056ab
405671:	b8 00 02 00 00       	mov    $0x200,%eax
405676:	39 45 08             	cmp    %eax,0x8(%ebp)
405679:	77 10                	ja     0x40568b
40567b:	8b 4f 0c             	mov    0xc(%edi),%ecx
40567e:	f6 c1 08             	test   $0x8,%cl
405681:	74 08                	je     0x40568b
405683:	f7 c1 00 04 00 00    	test   $0x400,%ecx
405689:	74 03                	je     0x40568e
40568b:	8b 47 18             	mov    0x18(%edi),%eax
40568e:	89 45 08             	mov    %eax,0x8(%ebp)
405691:	8b 03                	mov    (%ebx),%eax
405693:	f6 44 30 04 04       	testb  $0x4,0x4(%eax,%esi,1)
405698:	74 03                	je     0x40569d
40569a:	ff 45 08             	incl   0x8(%ebp)
40569d:	8b 45 08             	mov    0x8(%ebp),%eax
4056a0:	29 45 f8             	sub    %eax,-0x8(%ebp)
4056a3:	8b 45 f4             	mov    -0xc(%ebp),%eax
4056a6:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4056a9:	03 c1                	add    %ecx,%eax
4056ab:	5e                   	pop    %esi
4056ac:	5f                   	pop    %edi
4056ad:	5b                   	pop    %ebx
4056ae:	c9                   	leave
4056af:	c3                   	ret
4056b0:	6a 0c                	push   $0xc
4056b2:	68 30 95 42 00       	push   $0x429530
4056b7:	e8 20 4d 00 00       	call   0x40a3dc
4056bc:	33 c0                	xor    %eax,%eax
4056be:	33 f6                	xor    %esi,%esi
4056c0:	39 75 08             	cmp    %esi,0x8(%ebp)
4056c3:	0f 95 c0             	setne  %al
4056c6:	3b c6                	cmp    %esi,%eax
4056c8:	75 1d                	jne    0x4056e7
4056ca:	e8 06 04 00 00       	call   0x405ad5
4056cf:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4056d5:	56                   	push   %esi
4056d6:	56                   	push   %esi
4056d7:	56                   	push   %esi
4056d8:	56                   	push   %esi
4056d9:	56                   	push   %esi
4056da:	e8 46 fb ff ff       	call   0x405225
4056df:	83 c4 14             	add    $0x14,%esp
4056e2:	83 c8 ff             	or     $0xffffffff,%eax
4056e5:	eb 27                	jmp    0x40570e
4056e7:	ff 75 08             	push   0x8(%ebp)
4056ea:	e8 ff 56 00 00       	call   0x40adee
4056ef:	59                   	pop    %ecx
4056f0:	89 75 fc             	mov    %esi,-0x4(%ebp)
4056f3:	ff 75 08             	push   0x8(%ebp)
4056f6:	e8 18 fe ff ff       	call   0x405513
4056fb:	59                   	pop    %ecx
4056fc:	89 45 e4             	mov    %eax,-0x1c(%ebp)
4056ff:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
405706:	e8 09 00 00 00       	call   0x405714
40570b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40570e:	e8 0e 4d 00 00       	call   0x40a421
405713:	c3                   	ret
405714:	ff 75 08             	push   0x8(%ebp)
405717:	e8 45 57 00 00       	call   0x40ae61
40571c:	59                   	pop    %ecx
40571d:	c3                   	ret
40571e:	8b ff                	mov    %edi,%edi
405720:	51                   	push   %ecx
405721:	c7 01 a4 a2 41 00    	movl   $0x41a2a4,(%ecx)
405727:	e8 87 6a 00 00       	call   0x40c1b3
40572c:	59                   	pop    %ecx
40572d:	c3                   	ret
40572e:	8b ff                	mov    %edi,%edi
405730:	55                   	push   %ebp
405731:	8b ec                	mov    %esp,%ebp
405733:	56                   	push   %esi
405734:	8b f1                	mov    %ecx,%esi
405736:	e8 e3 ff ff ff       	call   0x40571e
40573b:	f6 45 08 01          	testb  $0x1,0x8(%ebp)
40573f:	74 07                	je     0x405748
405741:	56                   	push   %esi
405742:	e8 ef fb ff ff       	call   0x405336
405747:	59                   	pop    %ecx
405748:	8b c6                	mov    %esi,%eax
40574a:	5e                   	pop    %esi
40574b:	5d                   	pop    %ebp
40574c:	c2 04 00             	ret    $0x4
40574f:	8b ff                	mov    %edi,%edi
405751:	55                   	push   %ebp
405752:	8b ec                	mov    %esp,%ebp
405754:	8b 45 08             	mov    0x8(%ebp),%eax
405757:	83 c1 09             	add    $0x9,%ecx
40575a:	51                   	push   %ecx
40575b:	83 c0 09             	add    $0x9,%eax
40575e:	50                   	push   %eax
40575f:	e8 cc 6a 00 00       	call   0x40c230
405764:	f7 d8                	neg    %eax
405766:	59                   	pop    %ecx
405767:	1b c0                	sbb    %eax,%eax
405769:	59                   	pop    %ecx
40576a:	40                   	inc    %eax
40576b:	5d                   	pop    %ebp
40576c:	c2 04 00             	ret    $0x4
40576f:	8b ff                	mov    %edi,%edi
405771:	55                   	push   %ebp
405772:	8b ec                	mov    %esp,%ebp
405774:	53                   	push   %ebx
405775:	56                   	push   %esi
405776:	8b 75 08             	mov    0x8(%ebp),%esi
405779:	57                   	push   %edi
40577a:	33 ff                	xor    %edi,%edi
40577c:	83 cb ff             	or     $0xffffffff,%ebx
40577f:	3b f7                	cmp    %edi,%esi
405781:	75 1c                	jne    0x40579f
405783:	e8 4d 03 00 00       	call   0x405ad5
405788:	57                   	push   %edi
405789:	57                   	push   %edi
40578a:	57                   	push   %edi
40578b:	57                   	push   %edi
40578c:	57                   	push   %edi
40578d:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405793:	e8 8d fa ff ff       	call   0x405225
405798:	83 c4 14             	add    $0x14,%esp
40579b:	0b c3                	or     %ebx,%eax
40579d:	eb 42                	jmp    0x4057e1
40579f:	f6 46 0c 83          	testb  $0x83,0xc(%esi)
4057a3:	74 37                	je     0x4057dc
4057a5:	56                   	push   %esi
4057a6:	e8 a7 6c 00 00       	call   0x40c452
4057ab:	56                   	push   %esi
4057ac:	8b d8                	mov    %eax,%ebx
4057ae:	e8 6e 6c 00 00       	call   0x40c421
4057b3:	56                   	push   %esi
4057b4:	e8 c8 69 00 00       	call   0x40c181
4057b9:	50                   	push   %eax
4057ba:	e8 95 6b 00 00       	call   0x40c354
4057bf:	83 c4 10             	add    $0x10,%esp
4057c2:	85 c0                	test   %eax,%eax
4057c4:	7d 05                	jge    0x4057cb
4057c6:	83 cb ff             	or     $0xffffffff,%ebx
4057c9:	eb 11                	jmp    0x4057dc
4057cb:	8b 46 1c             	mov    0x1c(%esi),%eax
4057ce:	3b c7                	cmp    %edi,%eax
4057d0:	74 0a                	je     0x4057dc
4057d2:	50                   	push   %eax
4057d3:	e8 48 f8 ff ff       	call   0x405020
4057d8:	59                   	pop    %ecx
4057d9:	89 7e 1c             	mov    %edi,0x1c(%esi)
4057dc:	89 7e 0c             	mov    %edi,0xc(%esi)
4057df:	8b c3                	mov    %ebx,%eax
4057e1:	5f                   	pop    %edi
4057e2:	5e                   	pop    %esi
4057e3:	5b                   	pop    %ebx
4057e4:	5d                   	pop    %ebp
4057e5:	c3                   	ret
4057e6:	6a 0c                	push   $0xc
4057e8:	68 50 95 42 00       	push   $0x429550
4057ed:	e8 ea 4b 00 00       	call   0x40a3dc
4057f2:	83 4d e4 ff          	orl    $0xffffffff,-0x1c(%ebp)
4057f6:	33 c0                	xor    %eax,%eax
4057f8:	8b 75 08             	mov    0x8(%ebp),%esi
4057fb:	33 ff                	xor    %edi,%edi
4057fd:	3b f7                	cmp    %edi,%esi
4057ff:	0f 95 c0             	setne  %al
405802:	3b c7                	cmp    %edi,%eax
405804:	75 1d                	jne    0x405823
405806:	e8 ca 02 00 00       	call   0x405ad5
40580b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
405811:	57                   	push   %edi
405812:	57                   	push   %edi
405813:	57                   	push   %edi
405814:	57                   	push   %edi
405815:	57                   	push   %edi
405816:	e8 0a fa ff ff       	call   0x405225
40581b:	83 c4 14             	add    $0x14,%esp
40581e:	83 c8 ff             	or     $0xffffffff,%eax
405821:	eb 0c                	jmp    0x40582f
405823:	f6 46 0c 40          	testb  $0x40,0xc(%esi)
405827:	74 0c                	je     0x405835
405829:	89 7e 0c             	mov    %edi,0xc(%esi)
40582c:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40582f:	e8 ed 4b 00 00       	call   0x40a421
405834:	c3                   	ret
405835:	56                   	push   %esi
405836:	e8 b3 55 00 00       	call   0x40adee
40583b:	59                   	pop    %ecx
40583c:	89 7d fc             	mov    %edi,-0x4(%ebp)
40583f:	56                   	push   %esi
405840:	e8 2a ff ff ff       	call   0x40576f
405845:	59                   	pop    %ecx
405846:	89 45 e4             	mov    %eax,-0x1c(%ebp)
405849:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
405850:	e8 05 00 00 00       	call   0x40585a
405855:	eb d5                	jmp    0x40582c
405857:	8b 75 08             	mov    0x8(%ebp),%esi
40585a:	56                   	push   %esi
40585b:	e8 01 56 00 00       	call   0x40ae61
405860:	59                   	pop    %ecx
405861:	c3                   	ret
405862:	8b ff                	mov    %edi,%edi
405864:	56                   	push   %esi
405865:	6a 01                	push   $0x1
405867:	68 e4 b0 42 00       	push   $0x42b0e4
40586c:	8b f1                	mov    %ecx,%esi
40586e:	e8 82 f6 ff ff       	call   0x404ef5
405873:	c7 06 08 a2 41 00    	movl   $0x41a208,(%esi)
405879:	8b c6                	mov    %esi,%eax
40587b:	5e                   	pop    %esi
40587c:	c3                   	ret
40587d:	8b ff                	mov    %edi,%edi
40587f:	55                   	push   %ebp
405880:	8b ec                	mov    %esp,%ebp
405882:	83 ec 0c             	sub    $0xc,%esp
405885:	eb 0d                	jmp    0x405894
405887:	ff 75 08             	push   0x8(%ebp)
40588a:	e8 65 6d 00 00       	call   0x40c5f4
40588f:	59                   	pop    %ecx
405890:	85 c0                	test   %eax,%eax
405892:	74 0f                	je     0x4058a3
405894:	ff 75 08             	push   0x8(%ebp)
405897:	e8 d2 3d 00 00       	call   0x40966e
40589c:	59                   	pop    %ecx
40589d:	85 c0                	test   %eax,%eax
40589f:	74 e6                	je     0x405887
4058a1:	c9                   	leave
4058a2:	c3                   	ret
4058a3:	f6 05 ec 07 43 00 01 	testb  $0x1,0x4307ec
4058aa:	be e0 07 43 00       	mov    $0x4307e0,%esi
4058af:	75 19                	jne    0x4058ca
4058b1:	83 0d ec 07 43 00 01 	orl    $0x1,0x4307ec
4058b8:	8b ce                	mov    %esi,%ecx
4058ba:	e8 a3 ff ff ff       	call   0x405862
4058bf:	68 04 9b 41 00       	push   $0x419b04
4058c4:	e8 60 09 00 00       	call   0x406229
4058c9:	59                   	pop    %ecx
4058ca:	56                   	push   %esi
4058cb:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4058ce:	e8 6d e6 ff ff       	call   0x403f40
4058d3:	68 80 9c 42 00       	push   $0x429c80
4058d8:	8d 45 f4             	lea    -0xc(%ebp),%eax
4058db:	50                   	push   %eax
4058dc:	e8 d1 0d 00 00       	call   0x4066b2
4058e1:	cc                   	int3
4058e2:	8b ff                	mov    %edi,%edi
4058e4:	55                   	push   %ebp
4058e5:	8b ec                	mov    %esp,%ebp
4058e7:	83 3d f8 07 43 00 01 	cmpl   $0x1,0x4307f8
4058ee:	75 05                	jne    0x4058f5
4058f0:	e8 5a 72 00 00       	call   0x40cb4f
4058f5:	ff 75 08             	push   0x8(%ebp)
4058f8:	e8 a7 70 00 00       	call   0x40c9a4
4058fd:	68 ff 00 00 00       	push   $0xff
405902:	e8 e9 6d 00 00       	call   0x40c6f0
405907:	59                   	pop    %ecx
405908:	59                   	pop    %ecx
405909:	5d                   	pop    %ebp
40590a:	c3                   	ret
40590b:	6a 58                	push   $0x58
40590d:	68 70 95 42 00       	push   $0x429570
405912:	e8 c5 4a 00 00       	call   0x40a3dc
405917:	33 f6                	xor    %esi,%esi
405919:	89 75 fc             	mov    %esi,-0x4(%ebp)
40591c:	8d 45 98             	lea    -0x68(%ebp),%eax
40591f:	50                   	push   %eax
405920:	ff 15 b8 a0 41 00    	call   *0x41a0b8
405926:	6a fe                	push   $0xfffffffe
405928:	5f                   	pop    %edi
405929:	89 7d fc             	mov    %edi,-0x4(%ebp)
40592c:	b8 4d 5a 00 00       	mov    $0x5a4d,%eax
405931:	66 39 05 00 00 40 00 	cmp    %ax,0x400000
405938:	75 38                	jne    0x405972
40593a:	a1 3c 00 40 00       	mov    0x40003c,%eax
40593f:	81 b8 00 00 40 00 50 	cmpl   $0x4550,0x400000(%eax)
405946:	45 00 00
405949:	75 27                	jne    0x405972
40594b:	b9 0b 01 00 00       	mov    $0x10b,%ecx
405950:	66 39 88 18 00 40 00 	cmp    %cx,0x400018(%eax)
405957:	75 19                	jne    0x405972
405959:	83 b8 74 00 40 00 0e 	cmpl   $0xe,0x400074(%eax)
405960:	76 10                	jbe    0x405972
405962:	33 c9                	xor    %ecx,%ecx
405964:	39 b0 e8 00 40 00    	cmp    %esi,0x4000e8(%eax)
40596a:	0f 95 c1             	setne  %cl
40596d:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
405970:	eb 03                	jmp    0x405975