40443d:	29 4d fc             	sub    %ecx,-0x4(%ebp)
404440:	74 13                	je     0x404455
404442:	ff 75 fc             	push   -0x4(%ebp)
404445:	8d 04 13             	lea    (%ebx,%edx,1),%eax
404448:	50                   	push   %eax
404449:	53                   	push   %ebx
40444a:	e8 60 06 00 00       	call   0x404aaf
40444f:	8b 46 14             	mov    0x14(%esi),%eax
404452:	83 c4 0c             	add    $0xc,%esp
404455:	89 7e 10             	mov    %edi,0x10(%esi)
404458:	5b                   	pop    %ebx
404459:	83 f8 10             	cmp    $0x10,%eax
40445c:	72 04                	jb     0x404462
40445e:	8b 06                	mov    (%esi),%eax
404460:	eb 02                	jmp    0x404464
404462:	8b c6                	mov    %esi,%eax
404464:	c6 04 38 00          	movb   $0x0,(%eax,%edi,1)
404468:	5f                   	pop    %edi
404469:	8b c6                	mov    %esi,%eax
40446b:	5e                   	pop    %esi
40446c:	c9                   	leave
40446d:	c2 08 00             	ret    $0x8
404470:	8b ce                	mov    %esi,%ecx
404472:	e8 83 fd ff ff       	call   0x4041fa
404477:	cc                   	int3
404478:	8b ff                	mov    %edi,%edi
40447a:	55                   	push   %ebp
40447b:	8b ec                	mov    %esp,%ebp
40447d:	8b 45 08             	mov    0x8(%ebp),%eax
404480:	80 38 00             	cmpb   $0x0,(%eax)
404483:	75 04                	jne    0x404489
404485:	33 c0                	xor    %eax,%eax
404487:	5d                   	pop    %ebp
404488:	c3                   	ret
404489:	8d 50 01             	lea    0x1(%eax),%edx
40448c:	8a 08                	mov    (%eax),%cl
40448e:	40                   	inc    %eax
40448f:	84 c9                	test   %cl,%cl
404491:	75 f9                	jne    0x40448c
404493:	2b c2                	sub    %edx,%eax
404495:	5d                   	pop    %ebp
404496:	c3                   	ret
404497:	cc                   	int3
404498:	cc                   	int3
404499:	cc                   	int3
40449a:	cc                   	int3
40449b:	cc                   	int3
40449c:	cc                   	int3
40449d:	cc                   	int3
40449e:	cc                   	int3
40449f:	cc                   	int3
4044a0:	8b ff                	mov    %edi,%edi
4044a2:	55                   	push   %ebp
4044a3:	8b ec                	mov    %esp,%ebp
4044a5:	ff 75 0c             	push   0xc(%ebp)
4044a8:	e8 a9 00 00 00       	call   0x404556
4044ad:	59                   	pop    %ecx
4044ae:	85 c0                	test   %eax,%eax
4044b0:	75 05                	jne    0x4044b7
4044b2:	b8 18 18 40 00       	mov    $0x401818,%eax
4044b7:	8b 4d 08             	mov    0x8(%ebp),%ecx
4044ba:	50                   	push   %eax
4044bb:	e8 6d f9 ff ff       	call   0x403e2d
4044c0:	8b 45 08             	mov    0x8(%ebp),%eax
4044c3:	5d                   	pop    %ebp
4044c4:	c2 08 00             	ret    $0x8
4044c7:	cc                   	int3
4044c8:	cc                   	int3
4044c9:	cc                   	int3
4044ca:	cc                   	int3
4044cb:	cc                   	int3
4044cc:	cc                   	int3
4044cd:	cc                   	int3
4044ce:	cc                   	int3
4044cf:	cc                   	int3
4044d0:	8b ff                	mov    %edi,%edi
4044d2:	55                   	push   %ebp
4044d3:	8b ec                	mov    %esp,%ebp
4044d5:	83 7d 0c 01          	cmpl   $0x1,0xc(%ebp)
4044d9:	75 0f                	jne    0x4044ea
4044db:	8b 4d 08             	mov    0x8(%ebp),%ecx
4044de:	68 34 18 40 00       	push   $0x401834
4044e3:	e8 45 f9 ff ff       	call   0x403e2d
4044e8:	eb 0b                	jmp    0x4044f5
4044ea:	ff 75 0c             	push   0xc(%ebp)
4044ed:	ff 75 08             	push   0x8(%ebp)
4044f0:	e8 ab ff ff ff       	call   0x4044a0
4044f5:	8b 45 08             	mov    0x8(%ebp),%eax
4044f8:	5d                   	pop    %ebp
4044f9:	c2 08 00             	ret    $0x8
4044fc:	cc                   	int3
4044fd:	cc                   	int3
4044fe:	cc                   	int3
4044ff:	cc                   	int3
404500:	8b ff                	mov    %edi,%edi
404502:	55                   	push   %ebp
404503:	8b ec                	mov    %esp,%ebp
404505:	ff 75 0c             	push   0xc(%ebp)
404508:	e8 75 00 00 00       	call   0x404582
40450d:	59                   	pop    %ecx
40450e:	85 c0                	test   %eax,%eax
404510:	75 05                	jne    0x404517
404512:	b8 18 18 40 00       	mov    $0x401818,%eax
404517:	8b 4d 08             	mov    0x8(%ebp),%ecx
40451a:	50                   	push   %eax
40451b:	e8 0d f9 ff ff       	call   0x403e2d
404520:	8b 45 08             	mov    0x8(%ebp),%eax
404523:	5d                   	pop    %ebp
404524:	c2 08 00             	ret    $0x8
404527:	cc                   	int3
404528:	cc                   	int3
404529:	cc                   	int3
40452a:	cc                   	int3
40452b:	cc                   	int3
40452c:	cc                   	int3
40452d:	cc                   	int3
40452e:	cc                   	int3
40452f:	cc                   	int3
404530:	b8 10 18 40 00       	mov    $0x401810,%eax
404535:	c3                   	ret
404536:	cc                   	int3
404537:	cc                   	int3
404538:	cc                   	int3
404539:	cc                   	int3
40453a:	cc                   	int3
40453b:	cc                   	int3
40453c:	cc                   	int3
40453d:	cc                   	int3
40453e:	cc                   	int3
40453f:	cc                   	int3
404540:	b8 28 18 40 00       	mov    $0x401828,%eax
404545:	c3                   	ret
404546:	cc                   	int3
404547:	cc                   	int3
404548:	cc                   	int3
404549:	cc                   	int3
40454a:	cc                   	int3
40454b:	cc                   	int3
40454c:	cc                   	int3
40454d:	cc                   	int3
40454e:	cc                   	int3
40454f:	cc                   	int3
404550:	b8 4c 18 40 00       	mov    $0x40184c,%eax
404555:	c3                   	ret
404556:	8b ff                	mov    %edi,%edi
404558:	55                   	push   %ebp
404559:	8b ec                	mov    %esp,%ebp
40455b:	83 3d cc 12 40 00 00 	cmpl   $0x0,0x4012cc
404562:	b8 c8 12 40 00       	mov    $0x4012c8,%eax
404567:	74 10                	je     0x404579
404569:	8b 4d 08             	mov    0x8(%ebp),%ecx
40456c:	39 08                	cmp    %ecx,(%eax)
40456e:	74 0d                	je     0x40457d
404570:	83 c0 08             	add    $0x8,%eax
404573:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
404577:	75 f3                	jne    0x40456c
404579:	33 c0                	xor    %eax,%eax
40457b:	5d                   	pop    %ebp
40457c:	c3                   	ret
40457d:	8b 40 04             	mov    0x4(%eax),%eax
404580:	5d                   	pop    %ebp
404581:	c3                   	ret
404582:	8b ff                	mov    %edi,%edi
404584:	55                   	push   %ebp
404585:	8b ec                	mov    %esp,%ebp
404587:	83 3d 74 10 40 00 00 	cmpl   $0x0,0x401074
40458e:	b8 70 10 40 00       	mov    $0x401070,%eax
404593:	74 10                	je     0x4045a5
404595:	8b 4d 08             	mov    0x8(%ebp),%ecx
404598:	39 08                	cmp    %ecx,(%eax)
40459a:	74 0d                	je     0x4045a9
40459c:	83 c0 08             	add    $0x8,%eax
40459f:	83 78 04 00          	cmpl   $0x0,0x4(%eax)
4045a3:	75 f3                	jne    0x404598
4045a5:	33 c0                	xor    %eax,%eax
4045a7:	5d                   	pop    %ebp
4045a8:	c3                   	ret
4045a9:	8b 40 04             	mov    0x4(%eax),%eax
4045ac:	5d                   	pop    %ebp
4045ad:	c3                   	ret
4045ae:	cc                   	int3
4045af:	cc                   	int3
4045b0:	e8 c5 02 00 00       	call   0x40487a
4045b5:	6a 02                	push   $0x2
4045b7:	a3 08 81 40 00       	mov    %eax,0x408108
4045bc:	e8 d7 05 00 00       	call   0x404b98
4045c1:	50                   	push   %eax
4045c2:	ff 15 48 91 40 00    	call   *0x409148
4045c8:	83 0d cc 84 40 00 ff 	orl    $0xffffffff,0x4084cc
4045cf:	83 0d d0 84 40 00 ff 	orl    $0xffffffff,0x4084d0
4045d6:	59                   	pop    %ecx
4045d7:	59                   	pop    %ecx
4045d8:	ff 15 24 91 40 00    	call   *0x409124
4045de:	8b 0d 1c 81 40 00    	mov    0x40811c,%ecx
4045e4:	89 08                	mov    %ecx,(%eax)
4045e6:	ff 15 10 91 40 00    	call   *0x409110
4045ec:	8b 0d 10 81 40 00    	mov    0x408110,%ecx
4045f2:	89 08                	mov    %ecx,(%eax)
4045f4:	e8 e7 05 00 00       	call   0x404be0
4045f9:	83 3d c8 80 40 00 00 	cmpl   $0x0,0x4080c8
404600:	75 0c                	jne    0x40460e
404602:	68 e0 4b 40 00       	push   $0x404be0
404607:	ff 15 1c 91 40 00    	call   *0x40911c
40460d:	59                   	pop    %ecx
40460e:	e8 ba 07 00 00       	call   0x404dcd
404613:	33 c0                	xor    %eax,%eax
404615:	c3                   	ret
404616:	cc                   	int3
404617:	cc                   	int3
404618:	cc                   	int3
404619:	cc                   	int3
40461a:	cc                   	int3
40461b:	cc                   	int3
40461c:	cc                   	int3
40461d:	cc                   	int3
40461e:	cc                   	int3
40461f:	cc                   	int3
404620:	a1 18 81 40 00       	mov    0x408118,%eax
404625:	68 0c 81 40 00       	push   $0x40810c
40462a:	ff 35 14 81 40 00    	push   0x408114
404630:	a3 0c 81 40 00       	mov    %eax,0x40810c
404635:	68 00 81 40 00       	push   $0x408100
40463a:	68 fc 80 40 00       	push   $0x4080fc
40463f:	68 f8 80 40 00       	push   $0x4080f8
404644:	ff 15 4c 91 40 00    	call   *0x40914c
40464a:	83 c4 14             	add    $0x14,%esp
40464d:	a3 04 81 40 00       	mov    %eax,0x408104
404652:	c3                   	ret
404653:	cc                   	int3
404654:	cc                   	int3
404655:	cc                   	int3
404656:	cc                   	int3
404657:	cc                   	int3
404658:	cc                   	int3
404659:	cc                   	int3
40465a:	cc                   	int3
40465b:	cc                   	int3
40465c:	cc                   	int3
40465d:	cc                   	int3
40465e:	cc                   	int3
40465f:	cc                   	int3
404660:	e8 d0 06 00 00       	call   0x404d35
404665:	e9 00 00 00 00       	jmp    0x40466a
40466a:	6a 58                	push   $0x58
40466c:	68 c0 56 40 00       	push   $0x4056c0
404671:	e8 72 07 00 00       	call   0x404de8
404676:	33 db                	xor    %ebx,%ebx
404678:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40467b:	8d 45 98             	lea    -0x68(%ebp),%eax
40467e:	50                   	push   %eax
40467f:	ff 15 70 90 40 00    	call   *0x409070
404685:	89 5d fc             	mov    %ebx,-0x4(%ebp)
404688:	64 a1 18 00 00 00    	mov    %fs:0x18,%eax
40468e:	8b 70 04             	mov    0x4(%eax),%esi
404691:	8b fb                	mov    %ebx,%edi
404693:	ba c4 84 40 00       	mov    $0x4084c4,%edx
404698:	8b ce                	mov    %esi,%ecx
40469a:	33 c0                	xor    %eax,%eax
40469c:	f0 0f b1 0a          	lock cmpxchg %ecx,(%edx)
4046a0:	85 c0                	test   %eax,%eax
4046a2:	74 18                	je     0x4046bc
4046a4:	3b c6                	cmp    %esi,%eax
4046a6:	75 07                	jne    0x4046af
4046a8:	33 f6                	xor    %esi,%esi
4046aa:	46                   	inc    %esi
4046ab:	8b fe                	mov    %esi,%edi
4046ad:	eb 10                	jmp    0x4046bf
4046af:	68 e8 03 00 00       	push   $0x3e8
4046b4:	ff 15 a4 90 40 00    	call   *0x4090a4
4046ba:	eb d7                	jmp    0x404693
4046bc:	33 f6                	xor    %esi,%esi
4046be:	46                   	inc    %esi
4046bf:	39 35 c8 84 40 00    	cmp    %esi,0x4084c8
4046c5:	75 0a                	jne    0x4046d1
4046c7:	6a 1f                	push   $0x1f
4046c9:	e8 00 05 00 00       	call   0x404bce
4046ce:	59                   	pop    %ecx
4046cf:	eb 3a                	jmp    0x40470b
4046d1:	39 1d c8 84 40 00    	cmp    %ebx,0x4084c8
4046d7:	75 2c                	jne    0x404705
4046d9:	89 35 c8 84 40 00    	mov    %esi,0x4084c8
4046df:	68 88 16 40 00       	push   $0x401688
4046e4:	68 7c 16 40 00       	push   $0x40167c
4046e9:	e8 5b 01 00 00       	call   0x404849
4046ee:	59                   	pop    %ecx
4046ef:	59                   	pop    %ecx
4046f0:	85 c0                	test   %eax,%eax
4046f2:	74 17                	je     0x40470b
4046f4:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4046fb:	b8 ff 00 00 00       	mov    $0xff,%eax
404700:	e9 34 01 00 00       	jmp    0x404839
404705:	89 35 f4 80 40 00    	mov    %esi,0x4080f4
40470b:	39 35 c8 84 40 00    	cmp    %esi,0x4084c8
404711:	75 1b                	jne    0x40472e
404713:	68 78 16 40 00       	push   $0x401678
404718:	68 64 16 40 00       	push   $0x401664
40471d:	e8 be 06 00 00       	call   0x404de0
404722:	59                   	pop    %ecx
404723:	59                   	pop    %ecx
404724:	c7 05 c8 84 40 00 02 	movl   $0x2,0x4084c8
40472b:	00 00 00
40472e:	85 ff                	test   %edi,%edi
404730:	75 09                	jne    0x40473b
404732:	33 c0                	xor    %eax,%eax
404734:	b9 c4 84 40 00       	mov    $0x4084c4,%ecx
404739:	87 01                	xchg   %eax,(%ecx)
40473b:	83 3d d4 84 40 00 00 	cmpl   $0x0,0x4084d4
404742:	74 23                	je     0x404767
404744:	68 d4 84 40 00       	push   $0x4084d4
404749:	e8 f2 04 00 00       	call   0x404c40
40474e:	59                   	pop    %ecx
40474f:	85 c0                	test   %eax,%eax
404751:	74 14                	je     0x404767
404753:	53                   	push   %ebx
404754:	6a 02                	push   $0x2
404756:	53                   	push   %ebx
404757:	8b 35 d4 84 40 00    	mov    0x4084d4,%esi
40475d:	8b ce                	mov    %esi,%ecx
40475f:	ff 15 5c 91 40 00    	call   *0x40915c
404765:	ff d6                	call   *%esi
404767:	a1 0c 91 40 00       	mov    0x40910c,%eax
40476c:	8b 30                	mov    (%eax),%esi
40476e:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404771:	8b 7d e0             	mov    -0x20(%ebp),%edi
404774:	8a 0e                	mov    (%esi),%cl
404776:	80 f9 20             	cmp    $0x20,%cl
404779:	77 4a                	ja     0x4047c5
40477b:	84 c9                	test   %cl,%cl
40477d:	74 15                	je     0x404794
40477f:	85 ff                	test   %edi,%edi
404781:	75 42                	jne    0x4047c5
404783:	84 c9                	test   %cl,%cl
404785:	74 0d                	je     0x404794
404787:	80 f9 20             	cmp    $0x20,%cl
40478a:	77 08                	ja     0x404794
40478c:	46                   	inc    %esi
40478d:	89 75 e4             	mov    %esi,-0x1c(%ebp)
404790:	8a 0e                	mov    (%esi),%cl
404792:	eb ef                	jmp    0x404783
404794:	f6 45 c4 01          	testb  $0x1,-0x3c(%ebp)
404798:	74 06                	je     0x4047a0
40479a:	0f b7 45 c8          	movzwl -0x38(%ebp),%eax
40479e:	eb 03                	jmp    0x4047a3
4047a0:	6a 0a                	push   $0xa
4047a2:	58                   	pop    %eax
4047a3:	50                   	push   %eax
4047a4:	56                   	push   %esi
4047a5:	53                   	push   %ebx
4047a6:	68 00 00 40 00       	push   $0x400000
4047ab:	e8 0e f2 ff ff       	call   0x4039be