4053b6:	85 c0                	test   %eax,%eax
4053b8:	74 05                	je     0x4053bf
4053ba:	33 c0                	xor    %eax,%eax
4053bc:	40                   	inc    %eax
4053bd:	5d                   	pop    %ebp
4053be:	c3                   	ret
4053bf:	33 c0                	xor    %eax,%eax
4053c1:	5d                   	pop    %ebp
4053c2:	c3                   	ret
4053c3:	8b ff                	mov    %edi,%edi
4053c5:	55                   	push   %ebp
4053c6:	8b ec                	mov    %esp,%ebp
4053c8:	83 ec 14             	sub    $0x14,%esp
4053cb:	53                   	push   %ebx
4053cc:	56                   	push   %esi
4053cd:	57                   	push   %edi
4053ce:	e8 43 e3 ff ff       	call   0x403716
4053d3:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4053d7:	83 3d a4 cf 45 00 00 	cmpl   $0x0,0x45cfa4
4053de:	8b d8                	mov    %eax,%ebx
4053e0:	0f 85 8e 00 00 00    	jne    0x405474
4053e6:	68 4c 19 40 00       	push   $0x40194c
4053eb:	ff 15 fc 10 40 00    	call   *0x4010fc
4053f1:	8b f8                	mov    %eax,%edi
4053f3:	85 ff                	test   %edi,%edi
4053f5:	0f 84 2a 01 00 00    	je     0x405525
4053fb:	8b 35 38 10 40 00    	mov    0x401038,%esi
405401:	68 40 19 40 00       	push   $0x401940
405406:	57                   	push   %edi
405407:	ff d6                	call   *%esi
405409:	85 c0                	test   %eax,%eax
40540b:	0f 84 14 01 00 00    	je     0x405525
405411:	50                   	push   %eax
405412:	e8 8d e2 ff ff       	call   0x4036a4
405417:	c7 04 24 30 19 40 00 	movl   $0x401930,(%esp)
40541e:	57                   	push   %edi
40541f:	a3 a4 cf 45 00       	mov    %eax,0x45cfa4
405424:	ff d6                	call   *%esi
405426:	50                   	push   %eax
405427:	e8 78 e2 ff ff       	call   0x4036a4
40542c:	c7 04 24 1c 19 40 00 	movl   $0x40191c,(%esp)
405433:	57                   	push   %edi
405434:	a3 a8 cf 45 00       	mov    %eax,0x45cfa8
405439:	ff d6                	call   *%esi
40543b:	50                   	push   %eax
40543c:	e8 63 e2 ff ff       	call   0x4036a4
405441:	c7 04 24 00 19 40 00 	movl   $0x401900,(%esp)
405448:	57                   	push   %edi
405449:	a3 ac cf 45 00       	mov    %eax,0x45cfac
40544e:	ff d6                	call   *%esi
405450:	50                   	push   %eax
405451:	e8 4e e2 ff ff       	call   0x4036a4
405456:	59                   	pop    %ecx
405457:	a3 b4 cf 45 00       	mov    %eax,0x45cfb4
40545c:	85 c0                	test   %eax,%eax
40545e:	74 14                	je     0x405474
405460:	68 e8 18 40 00       	push   $0x4018e8
405465:	57                   	push   %edi
405466:	ff d6                	call   *%esi
405468:	50                   	push   %eax
405469:	e8 36 e2 ff ff       	call   0x4036a4
40546e:	59                   	pop    %ecx
40546f:	a3 b0 cf 45 00       	mov    %eax,0x45cfb0
405474:	a1 b0 cf 45 00       	mov    0x45cfb0,%eax
405479:	3b c3                	cmp    %ebx,%eax
40547b:	74 4f                	je     0x4054cc
40547d:	39 1d b4 cf 45 00    	cmp    %ebx,0x45cfb4
405483:	74 47                	je     0x4054cc
405485:	50                   	push   %eax
405486:	e8 94 e2 ff ff       	call   0x40371f
40548b:	ff 35 b4 cf 45 00    	push   0x45cfb4
405491:	8b f0                	mov    %eax,%esi
405493:	e8 87 e2 ff ff       	call   0x40371f
405498:	59                   	pop    %ecx
405499:	59                   	pop    %ecx
40549a:	8b f8                	mov    %eax,%edi
40549c:	85 f6                	test   %esi,%esi
40549e:	74 2c                	je     0x4054cc
4054a0:	85 ff                	test   %edi,%edi
4054a2:	74 28                	je     0x4054cc
4054a4:	ff d6                	call   *%esi
4054a6:	85 c0                	test   %eax,%eax
4054a8:	74 19                	je     0x4054c3
4054aa:	8d 4d f8             	lea    -0x8(%ebp),%ecx
4054ad:	51                   	push   %ecx
4054ae:	6a 0c                	push   $0xc
4054b0:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4054b3:	51                   	push   %ecx
4054b4:	6a 01                	push   $0x1
4054b6:	50                   	push   %eax
4054b7:	ff d7                	call   *%edi
4054b9:	85 c0                	test   %eax,%eax
4054bb:	74 06                	je     0x4054c3
4054bd:	f6 45 f4 01          	testb  $0x1,-0xc(%ebp)
4054c1:	75 09                	jne    0x4054cc
4054c3:	81 4d 10 00 00 20 00 	orl    $0x200000,0x10(%ebp)
4054ca:	eb 39                	jmp    0x405505
4054cc:	a1 a8 cf 45 00       	mov    0x45cfa8,%eax
4054d1:	3b c3                	cmp    %ebx,%eax
4054d3:	74 30                	je     0x405505
4054d5:	50                   	push   %eax
4054d6:	e8 44 e2 ff ff       	call   0x40371f
4054db:	59                   	pop    %ecx
4054dc:	85 c0                	test   %eax,%eax
4054de:	74 25                	je     0x405505
4054e0:	ff d0                	call   *%eax
4054e2:	89 45 fc             	mov    %eax,-0x4(%ebp)
4054e5:	85 c0                	test   %eax,%eax
4054e7:	74 1c                	je     0x405505
4054e9:	a1 ac cf 45 00       	mov    0x45cfac,%eax
4054ee:	3b c3                	cmp    %ebx,%eax
4054f0:	74 13                	je     0x405505
4054f2:	50                   	push   %eax
4054f3:	e8 27 e2 ff ff       	call   0x40371f
4054f8:	59                   	pop    %ecx
4054f9:	85 c0                	test   %eax,%eax
4054fb:	74 08                	je     0x405505
4054fd:	ff 75 fc             	push   -0x4(%ebp)
405500:	ff d0                	call   *%eax
405502:	89 45 fc             	mov    %eax,-0x4(%ebp)
405505:	ff 35 a4 cf 45 00    	push   0x45cfa4
40550b:	e8 0f e2 ff ff       	call   0x40371f
405510:	59                   	pop    %ecx
405511:	85 c0                	test   %eax,%eax
405513:	74 10                	je     0x405525
405515:	ff 75 10             	push   0x10(%ebp)
405518:	ff 75 0c             	push   0xc(%ebp)
40551b:	ff 75 08             	push   0x8(%ebp)
40551e:	ff 75 fc             	push   -0x4(%ebp)
405521:	ff d0                	call   *%eax
405523:	eb 02                	jmp    0x405527
405525:	33 c0                	xor    %eax,%eax
405527:	5f                   	pop    %edi
405528:	5e                   	pop    %esi
405529:	5b                   	pop    %ebx
40552a:	c9                   	leave
40552b:	c3                   	ret
40552c:	8b ff                	mov    %edi,%edi
40552e:	55                   	push   %ebp
40552f:	8b ec                	mov    %esp,%ebp
405531:	8b 45 08             	mov    0x8(%ebp),%eax
405534:	53                   	push   %ebx
405535:	33 db                	xor    %ebx,%ebx
405537:	56                   	push   %esi
405538:	57                   	push   %edi
405539:	3b c3                	cmp    %ebx,%eax
40553b:	74 07                	je     0x405544
40553d:	8b 7d 0c             	mov    0xc(%ebp),%edi
405540:	3b fb                	cmp    %ebx,%edi
405542:	77 1b                	ja     0x40555f
405544:	e8 10 f6 ff ff       	call   0x404b59
405549:	6a 16                	push   $0x16
40554b:	5e                   	pop    %esi
40554c:	89 30                	mov    %esi,(%eax)
40554e:	53                   	push   %ebx
40554f:	53                   	push   %ebx
405550:	53                   	push   %ebx
405551:	53                   	push   %ebx
405552:	53                   	push   %ebx
405553:	e8 99 f5 ff ff       	call   0x404af1
405558:	83 c4 14             	add    $0x14,%esp
40555b:	8b c6                	mov    %esi,%eax
40555d:	eb 3c                	jmp    0x40559b
40555f:	8b 75 10             	mov    0x10(%ebp),%esi
405562:	3b f3                	cmp    %ebx,%esi
405564:	75 04                	jne    0x40556a
405566:	88 18                	mov    %bl,(%eax)
405568:	eb da                	jmp    0x405544
40556a:	8b d0                	mov    %eax,%edx
40556c:	38 1a                	cmp    %bl,(%edx)
40556e:	74 04                	je     0x405574
405570:	42                   	inc    %edx
405571:	4f                   	dec    %edi
405572:	75 f8                	jne    0x40556c
405574:	3b fb                	cmp    %ebx,%edi
405576:	74 ee                	je     0x405566
405578:	8a 0e                	mov    (%esi),%cl
40557a:	88 0a                	mov    %cl,(%edx)
40557c:	42                   	inc    %edx
40557d:	46                   	inc    %esi
40557e:	3a cb                	cmp    %bl,%cl
405580:	74 03                	je     0x405585
405582:	4f                   	dec    %edi
405583:	75 f3                	jne    0x405578
405585:	3b fb                	cmp    %ebx,%edi
405587:	75 10                	jne    0x405599
405589:	88 18                	mov    %bl,(%eax)
40558b:	e8 c9 f5 ff ff       	call   0x404b59
405590:	6a 22                	push   $0x22
405592:	59                   	pop    %ecx
405593:	89 08                	mov    %ecx,(%eax)
405595:	8b f1                	mov    %ecx,%esi
405597:	eb b5                	jmp    0x40554e
405599:	33 c0                	xor    %eax,%eax
40559b:	5f                   	pop    %edi
40559c:	5e                   	pop    %esi
40559d:	5b                   	pop    %ebx
40559e:	5d                   	pop    %ebp
40559f:	c3                   	ret
4055a0:	8b ff                	mov    %edi,%edi
4055a2:	55                   	push   %ebp
4055a3:	8b ec                	mov    %esp,%ebp
4055a5:	53                   	push   %ebx
4055a6:	56                   	push   %esi
4055a7:	8b 75 08             	mov    0x8(%ebp),%esi
4055aa:	33 db                	xor    %ebx,%ebx
4055ac:	57                   	push   %edi
4055ad:	39 5d 14             	cmp    %ebx,0x14(%ebp)
4055b0:	75 10                	jne    0x4055c2
4055b2:	3b f3                	cmp    %ebx,%esi
4055b4:	75 10                	jne    0x4055c6
4055b6:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
4055b9:	75 12                	jne    0x4055cd
4055bb:	33 c0                	xor    %eax,%eax
4055bd:	5f                   	pop    %edi
4055be:	5e                   	pop    %esi
4055bf:	5b                   	pop    %ebx
4055c0:	5d                   	pop    %ebp
4055c1:	c3                   	ret
4055c2:	3b f3                	cmp    %ebx,%esi
4055c4:	74 07                	je     0x4055cd
4055c6:	8b 7d 0c             	mov    0xc(%ebp),%edi
4055c9:	3b fb                	cmp    %ebx,%edi
4055cb:	77 1b                	ja     0x4055e8
4055cd:	e8 87 f5 ff ff       	call   0x404b59
4055d2:	6a 16                	push   $0x16
4055d4:	5e                   	pop    %esi
4055d5:	89 30                	mov    %esi,(%eax)
4055d7:	53                   	push   %ebx
4055d8:	53                   	push   %ebx
4055d9:	53                   	push   %ebx
4055da:	53                   	push   %ebx
4055db:	53                   	push   %ebx
4055dc:	e8 10 f5 ff ff       	call   0x404af1
4055e1:	83 c4 14             	add    $0x14,%esp
4055e4:	8b c6                	mov    %esi,%eax
4055e6:	eb d5                	jmp    0x4055bd
4055e8:	39 5d 14             	cmp    %ebx,0x14(%ebp)
4055eb:	75 04                	jne    0x4055f1
4055ed:	88 1e                	mov    %bl,(%esi)
4055ef:	eb ca                	jmp    0x4055bb
4055f1:	8b 55 10             	mov    0x10(%ebp),%edx
4055f4:	3b d3                	cmp    %ebx,%edx
4055f6:	75 04                	jne    0x4055fc
4055f8:	88 1e                	mov    %bl,(%esi)
4055fa:	eb d1                	jmp    0x4055cd
4055fc:	83 7d 14 ff          	cmpl   $0xffffffff,0x14(%ebp)
405600:	8b c6                	mov    %esi,%eax
405602:	75 0f                	jne    0x405613
405604:	8a 0a                	mov    (%edx),%cl
405606:	88 08                	mov    %cl,(%eax)
405608:	40                   	inc    %eax
405609:	42                   	inc    %edx
40560a:	3a cb                	cmp    %bl,%cl
40560c:	74 1e                	je     0x40562c
40560e:	4f                   	dec    %edi
40560f:	75 f3                	jne    0x405604
405611:	eb 19                	jmp    0x40562c
405613:	8a 0a                	mov    (%edx),%cl
405615:	88 08                	mov    %cl,(%eax)
405617:	40                   	inc    %eax
405618:	42                   	inc    %edx
405619:	3a cb                	cmp    %bl,%cl
40561b:	74 08                	je     0x405625
40561d:	4f                   	dec    %edi
40561e:	74 05                	je     0x405625
405620:	ff 4d 14             	decl   0x14(%ebp)
405623:	75 ee                	jne    0x405613
405625:	39 5d 14             	cmp    %ebx,0x14(%ebp)
405628:	75 02                	jne    0x40562c
40562a:	88 18                	mov    %bl,(%eax)
40562c:	3b fb                	cmp    %ebx,%edi
40562e:	75 8b                	jne    0x4055bb
405630:	83 7d 14 ff          	cmpl   $0xffffffff,0x14(%ebp)
405634:	75 0f                	jne    0x405645
405636:	8b 45 0c             	mov    0xc(%ebp),%eax
405639:	6a 50                	push   $0x50
40563b:	88 5c 06 ff          	mov    %bl,-0x1(%esi,%eax,1)
40563f:	58                   	pop    %eax
405640:	e9 78 ff ff ff       	jmp    0x4055bd
405645:	88 1e                	mov    %bl,(%esi)
405647:	e8 0d f5 ff ff       	call   0x404b59
40564c:	6a 22                	push   $0x22
40564e:	59                   	pop    %ecx
40564f:	89 08                	mov    %ecx,(%eax)
405651:	8b f1                	mov    %ecx,%esi
405653:	eb 82                	jmp    0x4055d7
405655:	cc                   	int3
405656:	cc                   	int3
405657:	cc                   	int3
405658:	cc                   	int3
405659:	cc                   	int3
40565a:	cc                   	int3
40565b:	cc                   	int3
40565c:	cc                   	int3
40565d:	cc                   	int3
40565e:	cc                   	int3
40565f:	cc                   	int3
405660:	8b 4c 24 04          	mov    0x4(%esp),%ecx
405664:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40566a:	74 24                	je     0x405690
40566c:	8a 01                	mov    (%ecx),%al
40566e:	83 c1 01             	add    $0x1,%ecx
405671:	84 c0                	test   %al,%al
405673:	74 4e                	je     0x4056c3
405675:	f7 c1 03 00 00 00    	test   $0x3,%ecx
40567b:	75 ef                	jne    0x40566c
40567d:	05 00 00 00 00       	add    $0x0,%eax
405682:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405689:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
405690:	8b 01                	mov    (%ecx),%eax
405692:	ba ff fe fe 7e       	mov    $0x7efefeff,%edx
405697:	03 d0                	add    %eax,%edx
405699:	83 f0 ff             	xor    $0xffffffff,%eax
40569c:	33 c2                	xor    %edx,%eax
40569e:	83 c1 04             	add    $0x4,%ecx
4056a1:	a9 00 01 01 81       	test   $0x81010100,%eax
4056a6:	74 e8                	je     0x405690
4056a8:	8b 41 fc             	mov    -0x4(%ecx),%eax
4056ab:	84 c0                	test   %al,%al
4056ad:	74 32                	je     0x4056e1
4056af:	84 e4                	test   %ah,%ah
4056b1:	74 24                	je     0x4056d7
4056b3:	a9 00 00 ff 00       	test   $0xff0000,%eax
4056b8:	74 13                	je     0x4056cd
4056ba:	a9 00 00 00 ff       	test   $0xff000000,%eax
4056bf:	74 02                	je     0x4056c3
4056c1:	eb cd                	jmp    0x405690
4056c3:	8d 41 ff             	lea    -0x1(%ecx),%eax
4056c6:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4056ca:	2b c1                	sub    %ecx,%eax
4056cc:	c3                   	ret
4056cd:	8d 41 fe             	lea    -0x2(%ecx),%eax
4056d0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4056d4:	2b c1                	sub    %ecx,%eax
4056d6:	c3                   	ret
4056d7:	8d 41 fd             	lea    -0x3(%ecx),%eax
4056da:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4056de:	2b c1                	sub    %ecx,%eax
4056e0:	c3                   	ret
4056e1:	8d 41 fc             	lea    -0x4(%ecx),%eax
4056e4:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4056e8:	2b c1                	sub    %ecx,%eax
4056ea:	c3                   	ret
4056eb:	8b ff                	mov    %edi,%edi
4056ed:	55                   	push   %ebp
4056ee:	8b ec                	mov    %esp,%ebp
4056f0:	8b 4d 08             	mov    0x8(%ebp),%ecx
4056f3:	53                   	push   %ebx
4056f4:	33 db                	xor    %ebx,%ebx