40254f:	75 f9                	jne    0x40254a
402551:	2b c2                	sub    %edx,%eax
402553:	8d 7b ff             	lea    -0x1(%ebx),%edi
402556:	8a 4f 01             	mov    0x1(%edi),%cl
402559:	47                   	inc    %edi
40255a:	84 c9                	test   %cl,%cl
40255c:	75 f8                	jne    0x402556
40255e:	8b c8                	mov    %eax,%ecx
402560:	c1 e9 02             	shr    $0x2,%ecx
402563:	8b f2                	mov    %edx,%esi
402565:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402567:	8b c8                	mov    %eax,%ecx
402569:	83 e1 03             	and    $0x3,%ecx
40256c:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
402572:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
402574:	8d 48 01             	lea    0x1(%eax),%ecx
402577:	8a 10                	mov    (%eax),%dl
402579:	40                   	inc    %eax
40257a:	84 d2                	test   %dl,%dl
40257c:	75 f9                	jne    0x402577
40257e:	2b c1                	sub    %ecx,%eax
402580:	8d 8d b8 fe ff ff    	lea    -0x148(%ebp),%ecx
402586:	51                   	push   %ecx
402587:	53                   	push   %ebx
402588:	e8 b3 fd ff ff       	call   0x402340
40258d:	85 c0                	test   %eax,%eax
40258f:	0f 84 85 00 00 00    	je     0x40261a
402595:	8d 95 b0 fc ff ff    	lea    -0x350(%ebp),%edx
40259b:	8b c3                	mov    %ebx,%eax
40259d:	2b d3                	sub    %ebx,%edx
40259f:	8a 08                	mov    (%eax),%cl
4025a1:	88 0c 02             	mov    %cl,(%edx,%eax,1)
4025a4:	40                   	inc    %eax
4025a5:	84 c9                	test   %cl,%cl
4025a7:	75 f6                	jne    0x40259f
4025a9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4025ac:	33 c0                	xor    %eax,%eax
4025ae:	89 4d c8             	mov    %ecx,-0x38(%ebp)
4025b1:	8d 8d b0 fc ff ff    	lea    -0x350(%ebp),%ecx
4025b7:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4025ba:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4025bd:	89 45 d8             	mov    %eax,-0x28(%ebp)
4025c0:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4025c3:	8d 45 bc             	lea    -0x44(%ebp),%eax
4025c6:	8d 8d ac fb ff ff    	lea    -0x454(%ebp),%ecx
4025cc:	50                   	push   %eax
4025cd:	c7 45 bc 3c 00 00 00 	movl   $0x3c,-0x44(%ebp)
4025d4:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4025d7:	c7 45 c0 40 00 80 00 	movl   $0x800040,-0x40(%ebp)
4025de:	ff 15 fc 40 40 00    	call   *0x4040fc
4025e4:	85 c0                	test   %eax,%eax
4025e6:	74 32                	je     0x40261a
4025e8:	8b 35 c8 40 40 00    	mov    0x4040c8,%esi
4025ee:	6a 40                	push   $0x40
4025f0:	ff 75 f4             	push   -0xc(%ebp)
4025f3:	ff d6                	call   *%esi
4025f5:	ff 75 f4             	push   -0xc(%ebp)
4025f8:	e8 83 f8 ff ff       	call   0x401e80
4025fd:	68 00 01 00 00       	push   $0x100
402602:	ff 15 a4 40 40 00    	call   *0x4040a4
402608:	50                   	push   %eax
402609:	ff d6                	call   *%esi
40260b:	6a 0f                	push   $0xf
40260d:	ff 15 cc 40 40 00    	call   *0x4040cc
402613:	50                   	push   %eax
402614:	ff 15 d8 40 40 00    	call   *0x4040d8
40261a:	8b f3                	mov    %ebx,%esi
40261c:	e8 f1 04 00 00       	call   0x402b12
402621:	8d a5 a0 fb ff ff    	lea    -0x460(%ebp),%esp
402627:	5f                   	pop    %edi
402628:	5e                   	pop    %esi
402629:	5b                   	pop    %ebx
40262a:	c9                   	leave
40262b:	c3                   	ret
40262c:	55                   	push   %ebp
40262d:	8b ec                	mov    %esp,%ebp
40262f:	81 ec 04 01 00 00    	sub    $0x104,%esp
402635:	53                   	push   %ebx
402636:	56                   	push   %esi
402637:	8b 35 18 41 40 00    	mov    0x404118,%esi
40263d:	57                   	push   %edi
40263e:	bf 08 a4 42 00       	mov    $0x42a408,%edi
402643:	57                   	push   %edi
402644:	33 db                	xor    %ebx,%ebx
402646:	ff d6                	call   *%esi
402648:	85 c0                	test   %eax,%eax
40264a:	74 50                	je     0x40269c
40264c:	6a 14                	push   $0x14
40264e:	58                   	pop    %eax
40264f:	e8 82 0a 00 00       	call   0x4030d6
402654:	8b c4                	mov    %esp,%eax
402656:	85 c0                	test   %eax,%eax
402658:	74 11                	je     0x40266b
40265a:	68 91 00 00 00       	push   $0x91
40265f:	6a 12                	push   $0x12
402661:	ba b0 59 40 00       	mov    $0x4059b0,%edx
402666:	e8 f2 02 00 00       	call   0x40295d
40266b:	57                   	push   %edi
40266c:	50                   	push   %eax
40266d:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402673:	68 04 01 00 00       	push   $0x104
402678:	50                   	push   %eax
402679:	ff 15 88 41 40 00    	call   *0x404188
40267f:	83 c4 10             	add    $0x10,%esp
402682:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402688:	50                   	push   %eax
402689:	ff d6                	call   *%esi
40268b:	85 c0                	test   %eax,%eax
40268d:	74 0d                	je     0x40269c
40268f:	8d bd fc fe ff ff    	lea    -0x104(%ebp),%edi
402695:	e8 05 fd ff ff       	call   0x40239f
40269a:	8b d8                	mov    %eax,%ebx
40269c:	8b c3                	mov    %ebx,%eax
40269e:	8d a5 f0 fe ff ff    	lea    -0x110(%ebp),%esp
4026a4:	5f                   	pop    %edi
4026a5:	5e                   	pop    %esi
4026a6:	5b                   	pop    %ebx
4026a7:	c9                   	leave
4026a8:	c3                   	ret
4026a9:	55                   	push   %ebp
4026aa:	8b ec                	mov    %esp,%ebp
4026ac:	81 ec 04 01 00 00    	sub    $0x104,%esp
4026b2:	53                   	push   %ebx
4026b3:	57                   	push   %edi
4026b4:	6a 03                	push   $0x3
4026b6:	33 ff                	xor    %edi,%edi
4026b8:	e8 89 04 00 00       	call   0x402b46
4026bd:	83 c0 03             	add    $0x3,%eax
4026c0:	50                   	push   %eax
4026c1:	e8 57 03 00 00       	call   0x402a1d
4026c6:	8b d8                	mov    %eax,%ebx
4026c8:	3b df                	cmp    %edi,%ebx
4026ca:	74 4a                	je     0x402716
4026cc:	56                   	push   %esi
4026cd:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
4026d3:	50                   	push   %eax
4026d4:	57                   	push   %edi
4026d5:	57                   	push   %edi
4026d6:	e8 4e 02 00 00       	call   0x402929
4026db:	50                   	push   %eax
4026dc:	57                   	push   %edi
4026dd:	ff 15 04 41 40 00    	call   *0x404104
4026e3:	85 c0                	test   %eax,%eax
4026e5:	78 27                	js     0x40270e
4026e7:	be 04 01 00 00       	mov    $0x104,%esi
4026ec:	e8 d2 03 00 00       	call   0x402ac3
4026f1:	8b f8                	mov    %eax,%edi
4026f3:	85 ff                	test   %edi,%edi
4026f5:	74 17                	je     0x40270e
4026f7:	57                   	push   %edi
4026f8:	6a ff                	push   $0xffffffff
4026fa:	e8 47 04 00 00       	call   0x402b46
4026ff:	50                   	push   %eax
402700:	53                   	push   %ebx
402701:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402707:	50                   	push   %eax
402708:	ff 15 e8 40 40 00    	call   *0x4040e8
40270e:	8b f3                	mov    %ebx,%esi
402710:	e8 fd 03 00 00       	call   0x402b12
402715:	5e                   	pop    %esi
402716:	8b c7                	mov    %edi,%eax
402718:	5f                   	pop    %edi
402719:	5b                   	pop    %ebx
40271a:	c9                   	leave
40271b:	c3                   	ret
40271c:	55                   	push   %ebp
40271d:	8b ec                	mov    %esp,%ebp
40271f:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
402725:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40272c:	85 db                	test   %ebx,%ebx
40272e:	74 71                	je     0x4027a1
402730:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
402734:	74 6b                	je     0x4027a1
402736:	56                   	push   %esi
402737:	8b 35 20 41 40 00    	mov    0x404120,%esi
40273d:	53                   	push   %ebx
40273e:	ff d6                	call   *%esi
402740:	85 c0                	test   %eax,%eax
402742:	74 5c                	je     0x4027a0
402744:	ff 75 08             	push   0x8(%ebp)
402747:	ff d6                	call   *%esi
402749:	85 c0                	test   %eax,%eax
40274b:	74 53                	je     0x4027a0
40274d:	8b 35 10 41 40 00    	mov    0x404110,%esi
402753:	57                   	push   %edi
402754:	53                   	push   %ebx
402755:	ff d6                	call   *%esi
402757:	ff 75 08             	push   0x8(%ebp)
40275a:	ff d6                	call   *%esi
40275c:	8b 35 c0 40 40 00    	mov    0x4040c0,%esi
402762:	bf 04 01 00 00       	mov    $0x104,%edi
402767:	57                   	push   %edi
402768:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
40276e:	50                   	push   %eax
40276f:	53                   	push   %ebx
402770:	ff d6                	call   *%esi
402772:	85 c0                	test   %eax,%eax
402774:	74 29                	je     0x40279f
402776:	57                   	push   %edi
402777:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40277d:	50                   	push   %eax
40277e:	ff 75 08             	push   0x8(%ebp)
402781:	ff d6                	call   *%esi
402783:	85 c0                	test   %eax,%eax
402785:	74 18                	je     0x40279f
402787:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40278d:	50                   	push   %eax
40278e:	8d 85 f4 fd ff ff    	lea    -0x20c(%ebp),%eax
402794:	50                   	push   %eax
402795:	e8 18 08 00 00       	call   0x402fb2
40279a:	59                   	pop    %ecx
40279b:	59                   	pop    %ecx
40279c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40279f:	5f                   	pop    %edi
4027a0:	5e                   	pop    %esi
4027a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
4027a4:	c9                   	leave
4027a5:	c2 04 00             	ret    $0x4
4027a8:	55                   	push   %ebp
4027a9:	8b ec                	mov    %esp,%ebp
4027ab:	81 ec 04 01 00 00    	sub    $0x104,%esp
4027b1:	53                   	push   %ebx
4027b2:	56                   	push   %esi
4027b3:	33 db                	xor    %ebx,%ebx
4027b5:	33 f6                	xor    %esi,%esi
4027b7:	3b fb                	cmp    %ebx,%edi
4027b9:	0f 84 cd 00 00 00    	je     0x40288c
4027bf:	57                   	push   %edi
4027c0:	53                   	push   %ebx
4027c1:	53                   	push   %ebx
4027c2:	6a 23                	push   $0x23
4027c4:	53                   	push   %ebx
4027c5:	ff 15 04 41 40 00    	call   *0x404104
4027cb:	85 c0                	test   %eax,%eax
4027cd:	0f 88 b9 00 00 00    	js     0x40288c
4027d3:	6a 04                	push   $0x4
4027d5:	58                   	pop    %eax
4027d6:	e8 fb 08 00 00       	call   0x4030d6
4027db:	8b f4                	mov    %esp,%esi
4027dd:	3b f3                	cmp    %ebx,%esi
4027df:	74 13                	je     0x4027f4
4027e1:	68 93 00 00 00       	push   $0x93
4027e6:	6a 02                	push   $0x2
4027e8:	8b c6                	mov    %esi,%eax
4027ea:	ba 1c 5a 40 00       	mov    $0x405a1c,%edx
4027ef:	e8 69 01 00 00       	call   0x40295d
4027f4:	6a ff                	push   $0xffffffff
4027f6:	e8 4b 03 00 00       	call   0x402b46
4027fb:	50                   	push   %eax
4027fc:	56                   	push   %esi
4027fd:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402803:	68 04 01 00 00       	push   $0x104
402808:	50                   	push   %eax
402809:	ff 15 88 41 40 00    	call   *0x404188
40280f:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402815:	83 c4 10             	add    $0x10,%esp
402818:	8d 50 01             	lea    0x1(%eax),%edx
40281b:	8a 08                	mov    (%eax),%cl
40281d:	40                   	inc    %eax
40281e:	3a cb                	cmp    %bl,%cl
402820:	75 f9                	jne    0x40281b
402822:	2b c2                	sub    %edx,%eax
402824:	83 f8 06             	cmp    $0x6,%eax
402827:	72 cb                	jb     0x4027f4
402829:	38 9d fc fe ff ff    	cmp    %bl,-0x104(%ebp)
40282f:	74 24                	je     0x402855
402831:	8d 8d fc fe ff ff    	lea    -0x104(%ebp),%ecx
402837:	0f be 01             	movsbl (%ecx),%eax
40283a:	8d 50 d0             	lea    -0x30(%eax),%edx
40283d:	81 e2 01 00 00 80    	and    $0x80000001,%edx
402843:	79 05                	jns    0x40284a
402845:	4a                   	dec    %edx
402846:	83 ca fe             	or     $0xfffffffe,%edx
402849:	42                   	inc    %edx
40284a:	74 04                	je     0x402850
40284c:	04 31                	add    $0x31,%al
40284e:	88 01                	mov    %al,(%ecx)
402850:	41                   	inc    %ecx
402851:	38 19                	cmp    %bl,(%ecx)
402853:	75 e2                	jne    0x402837
402855:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
40285b:	50                   	push   %eax
40285c:	57                   	push   %edi
40285d:	e8 e5 01 00 00       	call   0x402a47
402862:	6a 08                	push   $0x8
402864:	58                   	pop    %eax
402865:	e8 6c 08 00 00       	call   0x4030d6
40286a:	8b c4                	mov    %esp,%eax
40286c:	3b c3                	cmp    %ebx,%eax
40286e:	74 11                	je     0x402881
402870:	68 8b 00 00 00       	push   $0x8b
402875:	6a 04                	push   $0x4
402877:	ba ec 55 40 00       	mov    $0x4055ec,%edx
40287c:	e8 dc 00 00 00       	call   0x40295d
402881:	50                   	push   %eax
402882:	57                   	push   %edi
402883:	ff 15 1c 41 40 00    	call   *0x40411c
402889:	33 f6                	xor    %esi,%esi
40288b:	46                   	inc    %esi
40288c:	8b c6                	mov    %esi,%eax
40288e:	8d a5 f4 fe ff ff    	lea    -0x10c(%ebp),%esp
402894:	5e                   	pop    %esi
402895:	5b                   	pop    %ebx
402896:	c9                   	leave
402897:	c3                   	ret
402898:	55                   	push   %ebp
402899:	8b ec                	mov    %esp,%ebp
40289b:	81 ec 08 01 00 00    	sub    $0x108,%esp
4028a1:	57                   	push   %edi
4028a2:	33 ff                	xor    %edi,%edi
4028a4:	21 7d fc             	and    %edi,-0x4(%ebp)
4028a7:	39 7d 08             	cmp    %edi,0x8(%ebp)
4028aa:	74 76                	je     0x402922
4028ac:	56                   	push   %esi
4028ad:	68 04 01 00 00       	push   $0x104
4028b2:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
4028b8:	50                   	push   %eax
4028b9:	57                   	push   %edi
4028ba:	ff 15 90 40 40 00    	call   *0x404090
4028c0:	8d 45 fc             	lea    -0x4(%ebp),%eax
4028c3:	50                   	push   %eax
4028c4:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
4028ca:	50                   	push   %eax
4028cb:	e8 d9 f9 ff ff       	call   0x4022a9
4028d0:	8b f0                	mov    %eax,%esi
4028d2:	85 f6                	test   %esi,%esi
4028d4:	74 2e                	je     0x402904
4028d6:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4028d9:	74 29                	je     0x402904
4028db:	56                   	push   %esi
4028dc:	ff 15 70 41 40 00    	call   *0x404170
4028e2:	8b f8                	mov    %eax,%edi
4028e4:	85 ff                	test   %edi,%edi
4028e6:	74 1c                	je     0x402904
4028e8:	6a ff                	push   $0xffffffff
4028ea:	e8 57 02 00 00       	call   0x402b46
4028ef:	56                   	push   %esi
4028f0:	ff 75 08             	push   0x8(%ebp)
4028f3:	89 47 58             	mov    %eax,0x58(%edi)
4028f6:	8b 45 fc             	mov    -0x4(%ebp),%eax
4028f9:	e8 42 fa ff ff       	call   0x402340
4028fe:	8b f8                	mov    %eax,%edi
402900:	85 ff                	test   %edi,%edi
402902:	75 14                	jne    0x402918
402904:	6a 01                	push   $0x1
402906:	ff 75 08             	push   0x8(%ebp)
402909:	8d 85 f8 fe ff ff    	lea    -0x108(%ebp),%eax
40290f:	50                   	push   %eax
402910:	ff 15 e0 40 40 00    	call   *0x4040e0
402916:	8b f8                	mov    %eax,%edi