40343a:	59                   	pop    %ecx
40343b:	8b 45 08             	mov    0x8(%ebp),%eax
40343e:	8b f8                	mov    %eax,%edi
403440:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
403442:	5f                   	pop    %edi
403443:	5e                   	pop    %esi
403444:	c9                   	leave
403445:	c2 10 00             	ret    $0x10
403448:	56                   	push   %esi
403449:	8b f1                	mov    %ecx,%esi
40344b:	8b 46 50             	mov    0x50(%esi),%eax
40344e:	85 c0                	test   %eax,%eax
403450:	74 1b                	je     0x40346d
403452:	ff 74 24 0c          	push   0xc(%esp)
403456:	6a 00                	push   $0x0
403458:	ff 74 24 10          	push   0x10(%esp)
40345c:	50                   	push   %eax
40345d:	e8 62 2f 00 00       	call   0x4063c4
403462:	83 c4 10             	add    $0x10,%esp
403465:	85 c0                	test   %eax,%eax
403467:	75 04                	jne    0x40346d
403469:	8b c6                	mov    %esi,%eax
40346b:	eb 02                	jmp    0x40346f
40346d:	33 c0                	xor    %eax,%eax
40346f:	5e                   	pop    %esi
403470:	c2 08 00             	ret    $0x8
403473:	8b 41 50             	mov    0x50(%ecx),%eax
403476:	85 c0                	test   %eax,%eax
403478:	74 0f                	je     0x403489
40347a:	50                   	push   %eax
40347b:	e8 f3 2f 00 00       	call   0x406473
403480:	85 c0                	test   %eax,%eax
403482:	59                   	pop    %ecx
403483:	7d 04                	jge    0x403489
403485:	83 c8 ff             	or     $0xffffffff,%eax
403488:	c3                   	ret
403489:	33 c0                	xor    %eax,%eax
40348b:	c3                   	ret
40348c:	56                   	push   %esi
40348d:	8d 71 fc             	lea    -0x4(%ecx),%esi
403490:	8b ce                	mov    %esi,%ecx
403492:	e8 16 f5 ff ff       	call   0x4029ad
403497:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40349c:	74 07                	je     0x4034a5
40349e:	56                   	push   %esi
40349f:	e8 dd 1a 00 00       	call   0x404f81
4034a4:	59                   	pop    %ecx
4034a5:	8b c6                	mov    %esi,%eax
4034a7:	5e                   	pop    %esi
4034a8:	c2 04 00             	ret    $0x4
4034ab:	56                   	push   %esi
4034ac:	8b f1                	mov    %ecx,%esi
4034ae:	e8 6f f8 ff ff       	call   0x402d22
4034b3:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4034b8:	74 07                	je     0x4034c1
4034ba:	56                   	push   %esi
4034bb:	e8 c1 1a 00 00       	call   0x404f81
4034c0:	59                   	pop    %ecx
4034c1:	8b c6                	mov    %esi,%eax
4034c3:	5e                   	pop    %esi
4034c4:	c2 04 00             	ret    $0x4
4034c7:	56                   	push   %esi
4034c8:	8d 71 f8             	lea    -0x8(%ecx),%esi
4034cb:	8b ce                	mov    %esi,%ecx
4034cd:	e8 97 f4 ff ff       	call   0x402969
4034d2:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4034d7:	74 07                	je     0x4034e0
4034d9:	56                   	push   %esi
4034da:	e8 a2 1a 00 00       	call   0x404f81
4034df:	59                   	pop    %ecx
4034e0:	8b c6                	mov    %esi,%eax
4034e2:	5e                   	pop    %esi
4034e3:	c2 04 00             	ret    $0x4
4034e6:	56                   	push   %esi
4034e7:	8b f1                	mov    %ecx,%esi
4034e9:	e8 0b fa ff ff       	call   0x402ef9
4034ee:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4034f3:	74 07                	je     0x4034fc
4034f5:	56                   	push   %esi
4034f6:	e8 86 1a 00 00       	call   0x404f81
4034fb:	59                   	pop    %ecx
4034fc:	8b c6                	mov    %esi,%eax
4034fe:	5e                   	pop    %esi
4034ff:	c2 04 00             	ret    $0x4
403502:	56                   	push   %esi
403503:	8b f1                	mov    %ecx,%esi
403505:	e8 45 fb ff ff       	call   0x40304f
40350a:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
40350f:	74 07                	je     0x403518
403511:	56                   	push   %esi
403512:	e8 6a 1a 00 00       	call   0x404f81
403517:	59                   	pop    %ecx
403518:	8b c6                	mov    %esi,%eax
40351a:	5e                   	pop    %esi
40351b:	c2 04 00             	ret    $0x4
40351e:	a1 68 d2 40 00       	mov    0x40d268,%eax
403523:	53                   	push   %ebx
403524:	8b 5c 24 08          	mov    0x8(%esp),%ebx
403528:	56                   	push   %esi
403529:	8b f1                	mov    %ecx,%esi
40352b:	57                   	push   %edi
40352c:	2b 46 08             	sub    0x8(%esi),%eax
40352f:	3b c3                	cmp    %ebx,%eax
403531:	77 05                	ja     0x403538
403533:	e8 54 1a 00 00       	call   0x404f8c
403538:	85 db                	test   %ebx,%ebx
40353a:	76 33                	jbe    0x40356f
40353c:	8b fb                	mov    %ebx,%edi
40353e:	6a 00                	push   $0x0
403540:	03 7e 08             	add    0x8(%esi),%edi
403543:	8b ce                	mov    %esi,%ecx
403545:	57                   	push   %edi
403546:	e8 44 02 00 00       	call   0x40378f
40354b:	84 c0                	test   %al,%al
40354d:	74 20                	je     0x40356f
40354f:	0f be 44 24 14       	movsbl 0x14(%esp),%eax
403554:	53                   	push   %ebx
403555:	50                   	push   %eax
403556:	8b 46 04             	mov    0x4(%esi),%eax
403559:	03 46 08             	add    0x8(%esi),%eax
40355c:	50                   	push   %eax
40355d:	e8 7e 30 00 00       	call   0x4065e0
403562:	8b 46 04             	mov    0x4(%esi),%eax
403565:	83 c4 0c             	add    $0xc,%esp
403568:	89 7e 08             	mov    %edi,0x8(%esi)
40356b:	80 24 38 00          	andb   $0x0,(%eax,%edi,1)
40356f:	8b c6                	mov    %esi,%eax
403571:	5f                   	pop    %edi
403572:	5e                   	pop    %esi
403573:	5b                   	pop    %ebx
403574:	c2 08 00             	ret    $0x8
403577:	53                   	push   %ebx
403578:	56                   	push   %esi
403579:	8b 74 24 0c          	mov    0xc(%esp),%esi
40357d:	57                   	push   %edi
40357e:	8b f9                	mov    %ecx,%edi
403580:	39 77 08             	cmp    %esi,0x8(%edi)
403583:	73 05                	jae    0x40358a
403585:	e8 21 1c 00 00       	call   0x4051ab
40358a:	8b cf                	mov    %edi,%ecx
40358c:	e8 83 02 00 00       	call   0x403814
403591:	8b 47 08             	mov    0x8(%edi),%eax
403594:	8b 5c 24 14          	mov    0x14(%esp),%ebx
403598:	2b c6                	sub    %esi,%eax
40359a:	3b c3                	cmp    %ebx,%eax
40359c:	73 02                	jae    0x4035a0
40359e:	8b d8                	mov    %eax,%ebx
4035a0:	85 db                	test   %ebx,%ebx
4035a2:	76 32                	jbe    0x4035d6
4035a4:	8b 4f 04             	mov    0x4(%edi),%ecx
4035a7:	2b c3                	sub    %ebx,%eax
4035a9:	03 ce                	add    %esi,%ecx
4035ab:	50                   	push   %eax
4035ac:	8d 04 19             	lea    (%ecx,%ebx,1),%eax
4035af:	50                   	push   %eax
4035b0:	51                   	push   %ecx
4035b1:	e8 8a 30 00 00       	call   0x406640
4035b6:	8b 77 08             	mov    0x8(%edi),%esi
4035b9:	83 c4 0c             	add    $0xc,%esp
4035bc:	2b f3                	sub    %ebx,%esi
4035be:	8b cf                	mov    %edi,%ecx
4035c0:	6a 00                	push   $0x0
4035c2:	56                   	push   %esi
4035c3:	e8 c7 01 00 00       	call   0x40378f
4035c8:	84 c0                	test   %al,%al
4035ca:	74 0a                	je     0x4035d6
4035cc:	8b 47 04             	mov    0x4(%edi),%eax
4035cf:	89 77 08             	mov    %esi,0x8(%edi)
4035d2:	80 24 06 00          	andb   $0x0,(%esi,%eax,1)
4035d6:	8b c7                	mov    %edi,%eax
4035d8:	5f                   	pop    %edi
4035d9:	5e                   	pop    %esi
4035da:	5b                   	pop    %ebx
4035db:	c2 08 00             	ret    $0x8
4035de:	80 7c 24 04 00       	cmpb   $0x0,0x4(%esp)
4035e3:	56                   	push   %esi
4035e4:	8b f1                	mov    %ecx,%esi
4035e6:	74 22                	je     0x40360a
4035e8:	8b 46 04             	mov    0x4(%esi),%eax
4035eb:	85 c0                	test   %eax,%eax
4035ed:	74 1b                	je     0x40360a
4035ef:	8d 48 ff             	lea    -0x1(%eax),%ecx
4035f2:	8a 40 ff             	mov    -0x1(%eax),%al
4035f5:	84 c0                	test   %al,%al
4035f7:	74 0a                	je     0x403603
4035f9:	3c ff                	cmp    $0xff,%al
4035fb:	74 06                	je     0x403603
4035fd:	fe c8                	dec    %al
4035ff:	88 01                	mov    %al,(%ecx)
403601:	eb 07                	jmp    0x40360a
403603:	51                   	push   %ecx
403604:	e8 78 19 00 00       	call   0x404f81
403609:	59                   	pop    %ecx
40360a:	83 66 04 00          	andl   $0x0,0x4(%esi)
40360e:	83 66 08 00          	andl   $0x0,0x8(%esi)
403612:	83 66 0c 00          	andl   $0x0,0xc(%esi)
403616:	5e                   	pop    %esi
403617:	c2 04 00             	ret    $0x4
40361a:	8b 44 24 04          	mov    0x4(%esp),%eax
40361e:	56                   	push   %esi
40361f:	8b f1                	mov    %ecx,%esi
403621:	83 66 2c 00          	andl   $0x0,0x2c(%esi)
403625:	89 46 28             	mov    %eax,0x28(%esi)
403628:	c6 46 30 20          	movb   $0x20,0x30(%esi)
40362c:	e8 4f 15 00 00       	call   0x404b80
403631:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
403635:	75 11                	jne    0x403648
403637:	8b 46 04             	mov    0x4(%esi),%eax
40363a:	6a 00                	push   $0x0
40363c:	0c 04                	or     $0x4,%al
40363e:	8b ce                	mov    %esi,%ecx
403640:	0c 04                	or     $0x4,%al
403642:	50                   	push   %eax
403643:	e8 ee 11 00 00       	call   0x404836
403648:	80 7c 24 0c 00       	cmpb   $0x0,0xc(%esp)
40364d:	74 07                	je     0x403656
40364f:	8b ce                	mov    %esi,%ecx
403651:	e8 dc 14 00 00       	call   0x404b32
403656:	5e                   	pop    %esi
403657:	c2 08 00             	ret    $0x8
40365a:	55                   	push   %ebp
40365b:	8b ec                	mov    %esp,%ebp
40365d:	8b 45 08             	mov    0x8(%ebp),%eax
403660:	56                   	push   %esi
403661:	8b f1                	mov    %ecx,%esi
403663:	8d 4d 08             	lea    0x8(%ebp),%ecx
403666:	89 06                	mov    %eax,(%esi)
403668:	a1 08 d3 40 00       	mov    0x40d308,%eax
40366d:	89 46 08             	mov    %eax,0x8(%esi)
403670:	a1 0c d3 40 00       	mov    0x40d30c,%eax
403675:	89 46 0c             	mov    %eax,0xc(%esi)
403678:	e8 08 11 00 00       	call   0x404785
40367d:	a1 60 1b 41 00       	mov    0x411b60,%eax
403682:	8d 4d 08             	lea    0x8(%ebp),%ecx
403685:	89 46 10             	mov    %eax,0x10(%esi)
403688:	e8 94 11 00 00       	call   0x404821
40368d:	8b c6                	mov    %esi,%eax
40368f:	5e                   	pop    %esi
403690:	5d                   	pop    %ebp
403691:	c2 04 00             	ret    $0x4
403694:	8b 41 2c             	mov    0x2c(%ecx),%eax
403697:	ff 00                	incl   (%eax)
403699:	8b 41 1c             	mov    0x1c(%ecx),%eax
40369c:	ff 08                	decl   (%eax)
40369e:	8b 41 1c             	mov    0x1c(%ecx),%eax
4036a1:	8b 00                	mov    (%eax),%eax
4036a3:	c3                   	ret
4036a4:	8b 41 2c             	mov    0x2c(%ecx),%eax
4036a7:	ff 08                	decl   (%eax)
4036a9:	8b 49 1c             	mov    0x1c(%ecx),%ecx
4036ac:	8b 01                	mov    (%ecx),%eax
4036ae:	8d 50 01             	lea    0x1(%eax),%edx
4036b1:	89 11                	mov    %edx,(%ecx)
4036b3:	c3                   	ret
4036b4:	8b 41 30             	mov    0x30(%ecx),%eax
4036b7:	ff 08                	decl   (%eax)
4036b9:	8b 49 20             	mov    0x20(%ecx),%ecx
4036bc:	8b 01                	mov    (%ecx),%eax
4036be:	8d 50 01             	lea    0x1(%eax),%edx
4036c1:	89 11                	mov    %edx,(%ecx)
4036c3:	c3                   	ret
4036c4:	56                   	push   %esi
4036c5:	8b f1                	mov    %ecx,%esi
4036c7:	8b 46 50             	mov    0x50(%esi),%eax
4036ca:	85 c0                	test   %eax,%eax
4036cc:	74 19                	je     0x4036e7
4036ce:	50                   	push   %eax
4036cf:	e8 a1 32 00 00       	call   0x406975
4036d4:	85 c0                	test   %eax,%eax
4036d6:	59                   	pop    %ecx
4036d7:	75 0e                	jne    0x4036e7
4036d9:	6a 02                	push   $0x2
4036db:	50                   	push   %eax
4036dc:	8b ce                	mov    %esi,%ecx
4036de:	e8 08 00 00 00       	call   0x4036eb
4036e3:	8b c6                	mov    %esi,%eax
4036e5:	5e                   	pop    %esi
4036e6:	c3                   	ret
4036e7:	33 c0                	xor    %eax,%eax
4036e9:	5e                   	pop    %esi
4036ea:	c3                   	ret
4036eb:	83 7c 24 08 01       	cmpl   $0x1,0x8(%esp)
4036f0:	56                   	push   %esi
4036f1:	8b f1                	mov    %ecx,%esi
4036f3:	0f 94 c0             	sete   %al
4036f6:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
4036fb:	88 46 48             	mov    %al,0x48(%esi)
4036fe:	75 1b                	jne    0x40371b
403700:	57                   	push   %edi
403701:	8d 7e 4c             	lea    0x4c(%esi),%edi
403704:	8b cf                	mov    %edi,%ecx
403706:	e8 9d f7 ff ff       	call   0x402ea8
40370b:	85 ff                	test   %edi,%edi
40370d:	74 07                	je     0x403716
40370f:	8b cf                	mov    %edi,%ecx
403711:	e8 3e f7 ff ff       	call   0x402e54
403716:	83 66 44 00          	andl   $0x0,0x44(%esi)
40371a:	5f                   	pop    %edi
40371b:	8b ce                	mov    %esi,%ecx
40371d:	e8 57 01 00 00       	call   0x403879
403722:	8b 44 24 08          	mov    0x8(%esp),%eax
403726:	85 c0                	test   %eax,%eax
403728:	74 1e                	je     0x403748
40372a:	80 7e 48 00          	cmpb   $0x0,0x48(%esi)
40372e:	75 18                	jne    0x403748
403730:	8d 48 08             	lea    0x8(%eax),%ecx
403733:	89 46 1c             	mov    %eax,0x1c(%esi)
403736:	89 4e 0c             	mov    %ecx,0xc(%esi)
403739:	89 4e 10             	mov    %ecx,0x10(%esi)
40373c:	8d 48 04             	lea    0x4(%eax),%ecx
40373f:	89 46 20             	mov    %eax,0x20(%esi)
403742:	89 4e 2c             	mov    %ecx,0x2c(%esi)
403745:	89 4e 30             	mov    %ecx,0x30(%esi)
403748:	89 46 50             	mov    %eax,0x50(%esi)
40374b:	a1 5c 1b 41 00       	mov    0x411b5c,%eax
403750:	89 46 40             	mov    %eax,0x40(%esi)
403753:	a1 5c 1b 41 00       	mov    0x411b5c,%eax
403758:	83 66 38 00          	andl   $0x0,0x38(%esi)
40375c:	89 46 3c             	mov    %eax,0x3c(%esi)
40375f:	5e                   	pop    %esi
403760:	c2 08 00             	ret    $0x8
403763:	56                   	push   %esi
403764:	8b f1                	mov    %ecx,%esi
403766:	8b 46 04             	mov    0x4(%esi),%eax
403769:	85 c0                	test   %eax,%eax
40376b:	74 15                	je     0x403782
40376d:	8a 40 ff             	mov    -0x1(%eax),%al
403770:	84 c0                	test   %al,%al
403772:	74 0e                	je     0x403782
403774:	3c ff                	cmp    $0xff,%al
403776:	74 0a                	je     0x403782
403778:	6a 00                	push   $0x0
40377a:	ff 76 08             	push   0x8(%esi)
40377d:	e8 0d 00 00 00       	call   0x40378f
403782:	8b 76 04             	mov    0x4(%esi),%esi
403785:	85 f6                	test   %esi,%esi
403787:	74 04                	je     0x40378d
403789:	80 4e ff ff          	orb    $0xff,-0x1(%esi)
40378d:	5e                   	pop    %esi
40378e:	c3                   	ret
40378f:	56                   	push   %esi
403790:	57                   	push   %edi
403791:	8b 7c 24 0c          	mov    0xc(%esp),%edi
403795:	8b f1                	mov    %ecx,%esi
403797:	83 ff fd             	cmp    $0xfffffffd,%edi
40379a:	76 05                	jbe    0x4037a1
40379c:	e8 eb 17 00 00       	call   0x404f8c
4037a1:	8b 4e 04             	mov    0x4(%esi),%ecx
4037a4:	33 d2                	xor    %edx,%edx
4037a6:	3b ca                	cmp    %edx,%ecx