40245d:	53                   	push   %ebx
40245e:	53                   	push   %ebx
40245f:	53                   	push   %ebx
402460:	8d 4d 08             	lea    0x8(%ebp),%ecx
402463:	53                   	push   %ebx
402464:	51                   	push   %ecx
402465:	56                   	push   %esi
402466:	50                   	push   %eax
402467:	57                   	push   %edi
402468:	ff 15 0c 70 40 00    	call   *0x40700c
40246e:	85 c0                	test   %eax,%eax
402470:	0f 85 e6 01 00 00    	jne    0x40265c
402476:	88 9e ff 03 00 00    	mov    %bl,0x3ff(%esi)
40247c:	57                   	push   %edi
40247d:	ff 15 1c 70 40 00    	call   *0x40701c
402483:	e9 03 04 00 00       	jmp    0x40288b
402488:	38 1e                	cmp    %bl,(%esi)
40248a:	0f 84 fb 03 00 00    	je     0x40288b
402490:	56                   	push   %esi
402491:	e8 47 36 00 00       	call   0x405add
402496:	50                   	push   %eax
402497:	e9 ee f9 ff ff       	jmp    0x401e8a
40249c:	6a ed                	push   $0xffffffed
40249e:	e8 53 05 00 00       	call   0x4029f6
4024a3:	ff 75 e4             	push   -0x1c(%ebp)
4024a6:	ff 75 e0             	push   -0x20(%ebp)
4024a9:	50                   	push   %eax
4024aa:	e8 8e 33 00 00       	call   0x40583d
4024af:	83 f8 ff             	cmp    $0xffffffff,%eax
4024b2:	0f 84 a2 01 00 00    	je     0x40265a
4024b8:	50                   	push   %eax
4024b9:	e9 a3 f0 ff ff       	jmp    0x401561
4024be:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
4024c1:	74 11                	je     0x4024d4
4024c3:	6a 01                	push   $0x1
4024c5:	e8 0f 05 00 00       	call   0x4029d9
4024ca:	a2 70 9f 40 00       	mov    %al,0x409f70
4024cf:	33 c0                	xor    %eax,%eax
4024d1:	40                   	inc    %eax
4024d2:	eb 0d                	jmp    0x4024e1
4024d4:	6a 11                	push   $0x11
4024d6:	e8 1b 05 00 00       	call   0x4029f6
4024db:	50                   	push   %eax
4024dc:	e8 9b 36 00 00       	call   0x405b7c
4024e1:	38 1e                	cmp    %bl,(%esi)
4024e3:	0f 84 73 01 00 00    	je     0x40265c
4024e9:	8d 4d 08             	lea    0x8(%ebp),%ecx
4024ec:	53                   	push   %ebx
4024ed:	51                   	push   %ecx
4024ee:	50                   	push   %eax
4024ef:	68 70 9f 40 00       	push   $0x409f70
4024f4:	56                   	push   %esi
4024f5:	e8 e3 35 00 00       	call   0x405add
4024fa:	50                   	push   %eax
4024fb:	ff 15 28 71 40 00    	call   *0x407128
402501:	e9 a0 f0 ff ff       	jmp    0x4015a6
402506:	6a 02                	push   $0x2
402508:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40250b:	e8 c9 04 00 00       	call   0x4029d9
402510:	83 f8 01             	cmp    $0x1,%eax
402513:	89 45 cc             	mov    %eax,-0x34(%ebp)
402516:	0f 8c 6f 03 00 00    	jl     0x40288b
40251c:	b9 ff 03 00 00       	mov    $0x3ff,%ecx
402521:	3b c1                	cmp    %ecx,%eax
402523:	7e 03                	jle    0x402528
402525:	89 4d cc             	mov    %ecx,-0x34(%ebp)
402528:	38 1e                	cmp    %bl,(%esi)
40252a:	0f 84 8e 00 00 00    	je     0x4025be
402530:	56                   	push   %esi
402531:	88 5d 0b             	mov    %bl,0xb(%ebp)
402534:	e8 a4 35 00 00       	call   0x405add
402539:	39 5d cc             	cmp    %ebx,-0x34(%ebp)
40253c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40253f:	7e 7d                	jle    0x4025be
402541:	8b 75 d4             	mov    -0x2c(%ebp),%esi
402544:	8d 45 d0             	lea    -0x30(%ebp),%eax
402547:	53                   	push   %ebx
402548:	50                   	push   %eax
402549:	8d 45 f7             	lea    -0x9(%ebp),%eax
40254c:	6a 01                	push   $0x1
40254e:	50                   	push   %eax
40254f:	ff 75 f8             	push   -0x8(%ebp)
402552:	ff 15 2c 71 40 00    	call   *0x40712c
402558:	85 c0                	test   %eax,%eax
40255a:	74 65                	je     0x4025c1
40255c:	83 7d d0 01          	cmpl   $0x1,-0x30(%ebp)
402560:	75 5f                	jne    0x4025c1
402562:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
402565:	75 21                	jne    0x402588
402567:	80 7d 0b 0d          	cmpb   $0xd,0xb(%ebp)
40256b:	74 2b                	je     0x402598
40256d:	80 7d 0b 0a          	cmpb   $0xa,0xb(%ebp)
402571:	74 25                	je     0x402598
402573:	8a 45 f7             	mov    -0x9(%ebp),%al
402576:	88 04 3e             	mov    %al,(%esi,%edi,1)
402579:	46                   	inc    %esi
40257a:	3a c3                	cmp    %bl,%al
40257c:	88 45 0b             	mov    %al,0xb(%ebp)
40257f:	74 40                	je     0x4025c1
402581:	3b 75 cc             	cmp    -0x34(%ebp),%esi
402584:	7c be                	jl     0x402544
402586:	eb 39                	jmp    0x4025c1
402588:	0f b6 45 f7          	movzbl -0x9(%ebp),%eax
40258c:	50                   	push   %eax
40258d:	57                   	push   %edi
40258e:	e8 31 35 00 00       	call   0x405ac4
402593:	e9 fc 02 00 00       	jmp    0x402894
402598:	8a 45 f7             	mov    -0x9(%ebp),%al
40259b:	38 45 0b             	cmp    %al,0xb(%ebp)
40259e:	74 0e                	je     0x4025ae
4025a0:	3c 0d                	cmp    $0xd,%al
4025a2:	74 04                	je     0x4025a8
4025a4:	3c 0a                	cmp    $0xa,%al
4025a6:	75 06                	jne    0x4025ae
4025a8:	88 04 3e             	mov    %al,(%esi,%edi,1)
4025ab:	46                   	inc    %esi
4025ac:	eb 13                	jmp    0x4025c1
4025ae:	6a 01                	push   $0x1
4025b0:	53                   	push   %ebx
4025b1:	6a ff                	push   $0xffffffff
4025b3:	ff 75 f8             	push   -0x8(%ebp)
4025b6:	ff 15 34 71 40 00    	call   *0x407134
4025bc:	eb 03                	jmp    0x4025c1
4025be:	8b 75 d4             	mov    -0x2c(%ebp),%esi
4025c1:	88 1c 3e             	mov    %bl,(%esi,%edi,1)
4025c4:	3b f3                	cmp    %ebx,%esi
4025c6:	e9 dd ef ff ff       	jmp    0x4015a8
4025cb:	38 1e                	cmp    %bl,(%esi)
4025cd:	0f 84 b8 02 00 00    	je     0x40288b
4025d3:	ff 75 e8             	push   -0x18(%ebp)
4025d6:	53                   	push   %ebx
4025d7:	6a 02                	push   $0x2
4025d9:	e8 fb 03 00 00       	call   0x4029d9
4025de:	50                   	push   %eax
4025df:	56                   	push   %esi
4025e0:	e8 f8 34 00 00       	call   0x405add
4025e5:	50                   	push   %eax
4025e6:	ff 15 34 71 40 00    	call   *0x407134
4025ec:	39 5d e0             	cmp    %ebx,-0x20(%ebp)
4025ef:	0f 8c 96 02 00 00    	jl     0x40288b
4025f5:	e9 37 02 00 00       	jmp    0x402831
4025fa:	38 1e                	cmp    %bl,(%esi)
4025fc:	0f 84 89 02 00 00    	je     0x40288b
402602:	56                   	push   %esi
402603:	e8 d5 34 00 00       	call   0x405add
402608:	50                   	push   %eax
402609:	ff 15 38 71 40 00    	call   *0x407138
40260f:	e9 77 02 00 00       	jmp    0x40288b
402614:	38 1f                	cmp    %bl,(%edi)
402616:	74 18                	je     0x402630
402618:	8d 85 5c fe ff ff    	lea    -0x1a4(%ebp),%eax
40261e:	50                   	push   %eax
40261f:	57                   	push   %edi
402620:	e8 b8 34 00 00       	call   0x405add
402625:	50                   	push   %eax
402626:	ff 15 3c 71 40 00    	call   *0x40713c
40262c:	85 c0                	test   %eax,%eax
40262e:	75 3f                	jne    0x40266f
402630:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402637:	88 1e                	mov    %bl,(%esi)
402639:	e9 4d 02 00 00       	jmp    0x40288b
40263e:	6a 02                	push   $0x2
402640:	e8 b1 03 00 00       	call   0x4029f6
402645:	8d 8d 5c fe ff ff    	lea    -0x1a4(%ebp),%ecx
40264b:	51                   	push   %ecx
40264c:	50                   	push   %eax
40264d:	ff 15 40 71 40 00    	call   *0x407140
402653:	83 f8 ff             	cmp    $0xffffffff,%eax
402656:	75 10                	jne    0x402668
402658:	88 1f                	mov    %bl,(%edi)
40265a:	88 1e                	mov    %bl,(%esi)
40265c:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402663:	e9 23 02 00 00       	jmp    0x40288b
402668:	50                   	push   %eax
402669:	57                   	push   %edi
40266a:	e8 55 34 00 00       	call   0x405ac4
40266f:	8d 85 88 fe ff ff    	lea    -0x178(%ebp),%eax
402675:	50                   	push   %eax
402676:	56                   	push   %esi
402677:	e9 35 01 00 00       	jmp    0x4027b1
40267c:	6a f0                	push   $0xfffffff0
40267e:	c7 45 f8 66 fd ff ff 	movl   $0xfffffd66,-0x8(%ebp)
402685:	e8 6c 03 00 00       	call   0x4029f6
40268a:	8b f0                	mov    %eax,%esi
40268c:	56                   	push   %esi
40268d:	89 75 bc             	mov    %esi,-0x44(%ebp)
402690:	e8 31 30 00 00       	call   0x4056c6
402695:	85 c0                	test   %eax,%eax
402697:	75 07                	jne    0x4026a0
402699:	6a ed                	push   $0xffffffed
40269b:	e8 56 03 00 00       	call   0x4029f6
4026a0:	56                   	push   %esi
4026a1:	e8 78 31 00 00       	call   0x40581e
4026a6:	6a 02                	push   $0x2
4026a8:	68 00 00 00 40       	push   $0x40000000
4026ad:	56                   	push   %esi
4026ae:	e8 8a 31 00 00       	call   0x40583d
4026b3:	83 f8 ff             	cmp    $0xffffffff,%eax
4026b6:	89 45 08             	mov    %eax,0x8(%ebp)
4026b9:	0f 84 9d 00 00 00    	je     0x40275c
4026bf:	a1 b4 3e 42 00       	mov    0x423eb4,%eax
4026c4:	8b 35 00 71 40 00    	mov    0x407100,%esi
4026ca:	50                   	push   %eax
4026cb:	6a 40                	push   $0x40
4026cd:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4026d0:	ff d6                	call   *%esi
4026d2:	8b f8                	mov    %eax,%edi
4026d4:	3b fb                	cmp    %ebx,%edi
4026d6:	74 7b                	je     0x402753
4026d8:	53                   	push   %ebx
4026d9:	e8 13 0b 00 00       	call   0x4031f1
4026de:	ff 75 d4             	push   -0x2c(%ebp)
4026e1:	57                   	push   %edi
4026e2:	e8 d8 0a 00 00       	call   0x4031bf
4026e7:	ff 75 e4             	push   -0x1c(%ebp)
4026ea:	6a 40                	push   $0x40
4026ec:	ff d6                	call   *%esi
4026ee:	8b f0                	mov    %eax,%esi
4026f0:	3b f3                	cmp    %ebx,%esi
4026f2:	89 75 d0             	mov    %esi,-0x30(%ebp)
4026f5:	74 34                	je     0x40272b
4026f7:	ff 75 e4             	push   -0x1c(%ebp)
4026fa:	56                   	push   %esi
4026fb:	53                   	push   %ebx
4026fc:	ff 75 e0             	push   -0x20(%ebp)
4026ff:	e8 14 08 00 00       	call   0x402f18
402704:	eb 18                	jmp    0x40271e
402706:	8b 0e                	mov    (%esi),%ecx
402708:	8b 46 04             	mov    0x4(%esi),%eax
40270b:	83 c6 08             	add    $0x8,%esi
40270e:	51                   	push   %ecx
40270f:	03 c7                	add    %edi,%eax
402711:	56                   	push   %esi
402712:	50                   	push   %eax
402713:	89 4d c8             	mov    %ecx,-0x38(%ebp)
402716:	e8 e3 30 00 00       	call   0x4057fe
40271b:	03 75 c8             	add    -0x38(%ebp),%esi
40271e:	38 1e                	cmp    %bl,(%esi)
402720:	75 e4                	jne    0x402706
402722:	ff 75 d0             	push   -0x30(%ebp)
402725:	ff 15 fc 70 40 00    	call   *0x4070fc
40272b:	8d 45 f8             	lea    -0x8(%ebp),%eax
40272e:	53                   	push   %ebx
40272f:	50                   	push   %eax
402730:	ff 75 d4             	push   -0x2c(%ebp)
402733:	57                   	push   %edi
402734:	ff 75 08             	push   0x8(%ebp)
402737:	ff 15 28 71 40 00    	call   *0x407128
40273d:	57                   	push   %edi
40273e:	ff 15 fc 70 40 00    	call   *0x4070fc
402744:	53                   	push   %ebx
402745:	53                   	push   %ebx
402746:	ff 75 08             	push   0x8(%ebp)
402749:	6a ff                	push   $0xffffffff
40274b:	e8 c8 07 00 00       	call   0x402f18
402750:	89 45 f8             	mov    %eax,-0x8(%ebp)
402753:	ff 75 08             	push   0x8(%ebp)
402756:	ff 15 ec 70 40 00    	call   *0x4070ec
40275c:	39 5d f8             	cmp    %ebx,-0x8(%ebp)
40275f:	6a f3                	push   $0xfffffff3
402761:	5e                   	pop    %esi
402762:	7d 13                	jge    0x402777
402764:	6a ef                	push   $0xffffffef
402766:	5e                   	pop    %esi
402767:	ff 75 bc             	push   -0x44(%ebp)
40276a:	ff 15 44 71 40 00    	call   *0x407144
402770:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
402777:	56                   	push   %esi
402778:	e9 e7 f9 ff ff       	jmp    0x402164
40277d:	53                   	push   %ebx
40277e:	e8 56 02 00 00       	call   0x4029d9
402783:	3b 05 cc 3e 42 00    	cmp    0x423ecc,%eax
402789:	89 45 08             	mov    %eax,0x8(%ebp)
40278c:	0f 83 ca fe ff ff    	jae    0x40265c
402792:	8b f0                	mov    %eax,%esi
402794:	8b 45 e4             	mov    -0x1c(%ebp),%eax
402797:	69 f6 18 04 00 00    	imul   $0x418,%esi,%esi
40279d:	03 35 c8 3e 42 00    	add    0x423ec8,%esi
4027a3:	3b c3                	cmp    %ebx,%eax
4027a5:	7c 17                	jl     0x4027be
4027a7:	8b 0c 86             	mov    (%esi,%eax,4),%ecx
4027aa:	75 0f                	jne    0x4027bb
4027ac:	83 c6 18             	add    $0x18,%esi
4027af:	56                   	push   %esi
4027b0:	57                   	push   %edi
4027b1:	e8 b0 33 00 00       	call   0x405b66
4027b6:	e9 d0 00 00 00       	jmp    0x40288b
4027bb:	51                   	push   %ecx
4027bc:	eb 74                	jmp    0x402832
4027be:	83 c9 ff             	or     $0xffffffff,%ecx
4027c1:	2b c8                	sub    %eax,%ecx
4027c3:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
4027c6:	74 0c                	je     0x4027d4
4027c8:	6a 01                	push   $0x1
4027ca:	e8 0a 02 00 00       	call   0x4029d9
4027cf:	89 45 e0             	mov    %eax,-0x20(%ebp)
4027d2:	eb 10                	jmp    0x4027e4
4027d4:	ff 75 ec             	push   -0x14(%ebp)
4027d7:	8d 46 18             	lea    0x18(%esi),%eax
4027da:	50                   	push   %eax
4027db:	e8 a8 33 00 00       	call   0x405b88
4027e0:	80 4e 09 01          	orb    $0x1,0x9(%esi)
4027e4:	8b 45 e4             	mov    -0x1c(%ebp),%eax
4027e7:	8b 4d e0             	mov    -0x20(%ebp),%ecx
4027ea:	89 0c 86             	mov    %ecx,(%esi,%eax,4)
4027ed:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
4027f0:	0f 84 95 00 00 00    	je     0x40288b
4027f6:	ff 75 08             	push   0x8(%ebp)
4027f9:	e8 7f e9 ff ff       	call   0x40117d
4027fe:	e9 88 00 00 00       	jmp    0x40288b
402803:	53                   	push   %ebx
402804:	e8 d0 01 00 00       	call   0x4029d9
402809:	83 f8 20             	cmp    $0x20,%eax
40280c:	0f 83 4a fe ff ff    	jae    0x40265c
402812:	39 5d e8             	cmp    %ebx,-0x18(%ebp)
402815:	74 23                	je     0x40283a
402817:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
40281a:	74 0f                	je     0x40282b
40281c:	50                   	push   %eax
40281d:	e8 77 ea ff ff       	call   0x401299
402822:	53                   	push   %ebx
402823:	53                   	push   %ebx
402824:	e8 c6 e9 ff ff       	call   0x4011ef
402829:	eb 60                	jmp    0x40288b
40282b:	53                   	push   %ebx
40282c:	e8 b1 ea ff ff       	call   0x4012e2
402831:	50                   	push   %eax
402832:	57                   	push   %edi
402833:	e8 8c 32 00 00       	call   0x405ac4
402838:	eb 51                	jmp    0x40288b
40283a:	39 5d e4             	cmp    %ebx,-0x1c(%ebp)
40283d:	74 12                	je     0x402851
40283f:	8b 15 b0 3e 42 00    	mov    0x423eb0,%edx
402845:	8b 4d e0             	mov    -0x20(%ebp),%ecx
402848:	89 8c 82 94 00 00 00 	mov    %ecx,0x94(%edx,%eax,4)
40284f:	eb 3a                	jmp    0x40288b
402851:	8b 0d b0 3e 42 00    	mov    0x423eb0,%ecx
402857:	ff b4 81 94 00 00 00 	push   0x94(%ecx,%eax,4)
40285e:	57                   	push   %edi
40285f:	e8 24 33 00 00       	call   0x405b88
402864:	eb 25                	jmp    0x40288b
402866:	8b 0d a0 14 42 00    	mov    0x4214a0,%ecx
40286c:	53                   	push   %ebx
40286d:	23 c8                	and    %eax,%ecx
40286f:	51                   	push   %ecx
402870:	6a 0b                	push   $0xb
402872:	ff 75 cc             	push   -0x34(%ebp)
402875:	ff 15 44 72 40 00    	call   *0x407244
40287b:	39 5d dc             	cmp    %ebx,-0x24(%ebp)
40287e:	74 0b                	je     0x40288b