40b406:	53                   	push   %ebx
40b407:	8b 5d 18             	mov    0x18(%ebp),%ebx
40b40a:	56                   	push   %esi
40b40b:	8b 75 10             	mov    0x10(%ebp),%esi
40b40e:	57                   	push   %edi
40b40f:	83 23 00             	andl   $0x0,(%ebx)
40b412:	8b 7d 08             	mov    0x8(%ebp),%edi
40b415:	c7 00 01 00 00 00    	movl   $0x1,(%eax)
40b41b:	8b 45 0c             	mov    0xc(%ebp),%eax
40b41e:	85 c0                	test   %eax,%eax
40b420:	74 08                	je     0x40b42a
40b422:	89 30                	mov    %esi,(%eax)
40b424:	83 c0 04             	add    $0x4,%eax
40b427:	89 45 0c             	mov    %eax,0xc(%ebp)
40b42a:	32 c9                	xor    %cl,%cl
40b42c:	88 4d ff             	mov    %cl,-0x1(%ebp)
40b42f:	80 3f 22             	cmpb   $0x22,(%edi)
40b432:	75 0d                	jne    0x40b441
40b434:	84 c9                	test   %cl,%cl
40b436:	b0 22                	mov    $0x22,%al
40b438:	0f 94 c1             	sete   %cl
40b43b:	47                   	inc    %edi
40b43c:	88 4d ff             	mov    %cl,-0x1(%ebp)
40b43f:	eb 35                	jmp    0x40b476
40b441:	ff 03                	incl   (%ebx)
40b443:	85 f6                	test   %esi,%esi
40b445:	74 05                	je     0x40b44c
40b447:	8a 07                	mov    (%edi),%al
40b449:	88 06                	mov    %al,(%esi)
40b44b:	46                   	inc    %esi
40b44c:	8a 07                	mov    (%edi),%al
40b44e:	47                   	inc    %edi
40b44f:	88 45 fe             	mov    %al,-0x2(%ebp)
40b452:	0f be c0             	movsbl %al,%eax
40b455:	50                   	push   %eax
40b456:	e8 3b 4b 00 00       	call   0x40ff96
40b45b:	59                   	pop    %ecx
40b45c:	85 c0                	test   %eax,%eax
40b45e:	74 0c                	je     0x40b46c
40b460:	ff 03                	incl   (%ebx)
40b462:	85 f6                	test   %esi,%esi
40b464:	74 05                	je     0x40b46b
40b466:	8a 07                	mov    (%edi),%al
40b468:	88 06                	mov    %al,(%esi)
40b46a:	46                   	inc    %esi
40b46b:	47                   	inc    %edi
40b46c:	8a 45 fe             	mov    -0x2(%ebp),%al
40b46f:	84 c0                	test   %al,%al
40b471:	74 19                	je     0x40b48c
40b473:	8a 4d ff             	mov    -0x1(%ebp),%cl
40b476:	84 c9                	test   %cl,%cl
40b478:	75 b5                	jne    0x40b42f
40b47a:	3c 20                	cmp    $0x20,%al
40b47c:	74 04                	je     0x40b482
40b47e:	3c 09                	cmp    $0x9,%al
40b480:	75 ad                	jne    0x40b42f
40b482:	85 f6                	test   %esi,%esi
40b484:	74 07                	je     0x40b48d
40b486:	c6 46 ff 00          	movb   $0x0,-0x1(%esi)
40b48a:	eb 01                	jmp    0x40b48d
40b48c:	4f                   	dec    %edi
40b48d:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
40b491:	8a 07                	mov    (%edi),%al
40b493:	84 c0                	test   %al,%al
40b495:	0f 84 c2 00 00 00    	je     0x40b55d
40b49b:	3c 20                	cmp    $0x20,%al
40b49d:	74 04                	je     0x40b4a3
40b49f:	3c 09                	cmp    $0x9,%al
40b4a1:	75 05                	jne    0x40b4a8
40b4a3:	47                   	inc    %edi
40b4a4:	8a 07                	mov    (%edi),%al
40b4a6:	eb f3                	jmp    0x40b49b
40b4a8:	84 c0                	test   %al,%al
40b4aa:	0f 84 ad 00 00 00    	je     0x40b55d
40b4b0:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b4b3:	85 c9                	test   %ecx,%ecx
40b4b5:	74 08                	je     0x40b4bf
40b4b7:	89 31                	mov    %esi,(%ecx)
40b4b9:	83 c1 04             	add    $0x4,%ecx
40b4bc:	89 4d 0c             	mov    %ecx,0xc(%ebp)
40b4bf:	8b 45 14             	mov    0x14(%ebp),%eax
40b4c2:	ff 00                	incl   (%eax)
40b4c4:	33 d2                	xor    %edx,%edx
40b4c6:	42                   	inc    %edx
40b4c7:	33 c0                	xor    %eax,%eax
40b4c9:	eb 02                	jmp    0x40b4cd
40b4cb:	47                   	inc    %edi
40b4cc:	40                   	inc    %eax
40b4cd:	8a 0f                	mov    (%edi),%cl
40b4cf:	80 f9 5c             	cmp    $0x5c,%cl
40b4d2:	74 f7                	je     0x40b4cb
40b4d4:	80 f9 22             	cmp    $0x22,%cl
40b4d7:	75 2e                	jne    0x40b507
40b4d9:	a8 01                	test   $0x1,%al
40b4db:	75 1b                	jne    0x40b4f8
40b4dd:	8a 4d ff             	mov    -0x1(%ebp),%cl
40b4e0:	84 c9                	test   %cl,%cl
40b4e2:	74 0c                	je     0x40b4f0
40b4e4:	80 7f 01 22          	cmpb   $0x22,0x1(%edi)
40b4e8:	75 03                	jne    0x40b4ed
40b4ea:	47                   	inc    %edi
40b4eb:	eb 0b                	jmp    0x40b4f8
40b4ed:	8a 4d ff             	mov    -0x1(%ebp),%cl
40b4f0:	33 d2                	xor    %edx,%edx
40b4f2:	84 c9                	test   %cl,%cl
40b4f4:	0f 94 45 ff          	sete   -0x1(%ebp)
40b4f8:	d1 e8                	shr    $1,%eax
40b4fa:	eb 0b                	jmp    0x40b507
40b4fc:	48                   	dec    %eax
40b4fd:	85 f6                	test   %esi,%esi
40b4ff:	74 04                	je     0x40b505
40b501:	c6 06 5c             	movb   $0x5c,(%esi)
40b504:	46                   	inc    %esi
40b505:	ff 03                	incl   (%ebx)
40b507:	85 c0                	test   %eax,%eax
40b509:	75 f1                	jne    0x40b4fc
40b50b:	8a 07                	mov    (%edi),%al
40b50d:	84 c0                	test   %al,%al
40b50f:	74 3d                	je     0x40b54e
40b511:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
40b515:	75 08                	jne    0x40b51f
40b517:	3c 20                	cmp    $0x20,%al
40b519:	74 33                	je     0x40b54e
40b51b:	3c 09                	cmp    $0x9,%al
40b51d:	74 2f                	je     0x40b54e
40b51f:	85 d2                	test   %edx,%edx
40b521:	74 25                	je     0x40b548
40b523:	85 f6                	test   %esi,%esi
40b525:	74 05                	je     0x40b52c
40b527:	88 06                	mov    %al,(%esi)
40b529:	46                   	inc    %esi
40b52a:	8a 07                	mov    (%edi),%al
40b52c:	0f be c0             	movsbl %al,%eax
40b52f:	50                   	push   %eax
40b530:	e8 61 4a 00 00       	call   0x40ff96
40b535:	59                   	pop    %ecx
40b536:	85 c0                	test   %eax,%eax
40b538:	74 0c                	je     0x40b546
40b53a:	47                   	inc    %edi
40b53b:	ff 03                	incl   (%ebx)
40b53d:	85 f6                	test   %esi,%esi
40b53f:	74 05                	je     0x40b546
40b541:	8a 07                	mov    (%edi),%al
40b543:	88 06                	mov    %al,(%esi)
40b545:	46                   	inc    %esi
40b546:	ff 03                	incl   (%ebx)
40b548:	47                   	inc    %edi
40b549:	e9 76 ff ff ff       	jmp    0x40b4c4
40b54e:	85 f6                	test   %esi,%esi
40b550:	74 04                	je     0x40b556
40b552:	c6 06 00             	movb   $0x0,(%esi)
40b555:	46                   	inc    %esi
40b556:	ff 03                	incl   (%ebx)
40b558:	e9 34 ff ff ff       	jmp    0x40b491
40b55d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b560:	5f                   	pop    %edi
40b561:	5e                   	pop    %esi
40b562:	5b                   	pop    %ebx
40b563:	85 c9                	test   %ecx,%ecx
40b565:	74 03                	je     0x40b56a
40b567:	83 21 00             	andl   $0x0,(%ecx)
40b56a:	8b 45 14             	mov    0x14(%ebp),%eax
40b56d:	ff 00                	incl   (%eax)
40b56f:	c9                   	leave
40b570:	c3                   	ret
40b571:	8b ff                	mov    %edi,%edi
40b573:	55                   	push   %ebp
40b574:	8b ec                	mov    %esp,%ebp
40b576:	56                   	push   %esi
40b577:	8b 75 08             	mov    0x8(%ebp),%esi
40b57a:	81 fe ff ff ff 3f    	cmp    $0x3fffffff,%esi
40b580:	73 39                	jae    0x40b5bb
40b582:	83 c8 ff             	or     $0xffffffff,%eax
40b585:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40b588:	33 d2                	xor    %edx,%edx
40b58a:	f7 75 10             	divl   0x10(%ebp)
40b58d:	3b c8                	cmp    %eax,%ecx
40b58f:	73 2a                	jae    0x40b5bb
40b591:	0f af 4d 10          	imul   0x10(%ebp),%ecx
40b595:	c1 e6 02             	shl    $0x2,%esi
40b598:	8b c6                	mov    %esi,%eax
40b59a:	f7 d0                	not    %eax
40b59c:	3b c1                	cmp    %ecx,%eax
40b59e:	76 1b                	jbe    0x40b5bb
40b5a0:	8d 04 0e             	lea    (%esi,%ecx,1),%eax
40b5a3:	6a 01                	push   $0x1
40b5a5:	50                   	push   %eax
40b5a6:	e8 3b 37 00 00       	call   0x40ece6
40b5ab:	6a 00                	push   $0x0
40b5ad:	8b f0                	mov    %eax,%esi
40b5af:	e8 8f 37 00 00       	call   0x40ed43
40b5b4:	83 c4 0c             	add    $0xc,%esp
40b5b7:	8b c6                	mov    %esi,%eax
40b5b9:	eb 02                	jmp    0x40b5bd
40b5bb:	33 c0                	xor    %eax,%eax
40b5bd:	5e                   	pop    %esi
40b5be:	5d                   	pop    %ebp
40b5bf:	c3                   	ret
40b5c0:	8b ff                	mov    %edi,%edi
40b5c2:	55                   	push   %ebp
40b5c3:	8b ec                	mov    %esp,%ebp
40b5c5:	5d                   	pop    %ebp
40b5c6:	e9 fc fc ff ff       	jmp    0x40b2c7
40b5cb:	83 3d 48 6e 42 00 00 	cmpl   $0x0,0x426e48
40b5d2:	74 03                	je     0x40b5d7
40b5d4:	33 c0                	xor    %eax,%eax
40b5d6:	c3                   	ret
40b5d7:	56                   	push   %esi
40b5d8:	57                   	push   %edi
40b5d9:	e8 92 46 00 00       	call   0x40fc70
40b5de:	e8 50 4b 00 00       	call   0x410133
40b5e3:	8b f0                	mov    %eax,%esi
40b5e5:	85 f6                	test   %esi,%esi
40b5e7:	75 05                	jne    0x40b5ee
40b5e9:	83 cf ff             	or     $0xffffffff,%edi
40b5ec:	eb 24                	jmp    0x40b612
40b5ee:	56                   	push   %esi
40b5ef:	e8 2a 00 00 00       	call   0x40b61e
40b5f4:	59                   	pop    %ecx
40b5f5:	85 c0                	test   %eax,%eax
40b5f7:	75 05                	jne    0x40b5fe
40b5f9:	83 cf ff             	or     $0xffffffff,%edi
40b5fc:	eb 0c                	jmp    0x40b60a
40b5fe:	a3 54 6e 42 00       	mov    %eax,0x426e54
40b603:	33 ff                	xor    %edi,%edi
40b605:	a3 48 6e 42 00       	mov    %eax,0x426e48
40b60a:	6a 00                	push   $0x0
40b60c:	e8 32 37 00 00       	call   0x40ed43
40b611:	59                   	pop    %ecx
40b612:	56                   	push   %esi
40b613:	e8 2b 37 00 00       	call   0x40ed43
40b618:	59                   	pop    %ecx
40b619:	8b c7                	mov    %edi,%eax
40b61b:	5f                   	pop    %edi
40b61c:	5e                   	pop    %esi
40b61d:	c3                   	ret
40b61e:	8b ff                	mov    %edi,%edi
40b620:	55                   	push   %ebp
40b621:	8b ec                	mov    %esp,%ebp
40b623:	51                   	push   %ecx
40b624:	51                   	push   %ecx
40b625:	53                   	push   %ebx
40b626:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b629:	33 d2                	xor    %edx,%edx
40b62b:	56                   	push   %esi
40b62c:	57                   	push   %edi
40b62d:	8b f3                	mov    %ebx,%esi
40b62f:	8a 03                	mov    (%ebx),%al
40b631:	eb 18                	jmp    0x40b64b
40b633:	3c 3d                	cmp    $0x3d,%al
40b635:	74 01                	je     0x40b638
40b637:	42                   	inc    %edx
40b638:	8b ce                	mov    %esi,%ecx
40b63a:	8d 79 01             	lea    0x1(%ecx),%edi
40b63d:	8a 01                	mov    (%ecx),%al
40b63f:	41                   	inc    %ecx
40b640:	84 c0                	test   %al,%al
40b642:	75 f9                	jne    0x40b63d
40b644:	2b cf                	sub    %edi,%ecx
40b646:	46                   	inc    %esi
40b647:	03 f1                	add    %ecx,%esi
40b649:	8a 06                	mov    (%esi),%al
40b64b:	84 c0                	test   %al,%al
40b64d:	75 e4                	jne    0x40b633
40b64f:	8d 42 01             	lea    0x1(%edx),%eax
40b652:	6a 04                	push   $0x4
40b654:	50                   	push   %eax
40b655:	e8 8c 36 00 00       	call   0x40ece6
40b65a:	8b f8                	mov    %eax,%edi
40b65c:	59                   	pop    %ecx
40b65d:	59                   	pop    %ecx
40b65e:	85 ff                	test   %edi,%edi
40b660:	74 6e                	je     0x40b6d0
40b662:	89 7d fc             	mov    %edi,-0x4(%ebp)
40b665:	eb 52                	jmp    0x40b6b9
40b667:	8b cb                	mov    %ebx,%ecx
40b669:	8d 71 01             	lea    0x1(%ecx),%esi
40b66c:	8a 01                	mov    (%ecx),%al
40b66e:	41                   	inc    %ecx
40b66f:	84 c0                	test   %al,%al
40b671:	75 f9                	jne    0x40b66c
40b673:	2b ce                	sub    %esi,%ecx
40b675:	8d 41 01             	lea    0x1(%ecx),%eax
40b678:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b67b:	80 fa 3d             	cmp    $0x3d,%dl
40b67e:	74 37                	je     0x40b6b7
40b680:	6a 01                	push   $0x1
40b682:	50                   	push   %eax
40b683:	e8 5e 36 00 00       	call   0x40ece6
40b688:	8b f0                	mov    %eax,%esi
40b68a:	59                   	pop    %ecx
40b68b:	59                   	pop    %ecx
40b68c:	85 f6                	test   %esi,%esi
40b68e:	74 31                	je     0x40b6c1
40b690:	53                   	push   %ebx
40b691:	ff 75 f8             	push   -0x8(%ebp)
40b694:	56                   	push   %esi
40b695:	e8 07 0c 00 00       	call   0x40c2a1
40b69a:	83 c4 0c             	add    $0xc,%esp
40b69d:	85 c0                	test   %eax,%eax
40b69f:	75 40                	jne    0x40b6e1
40b6a1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b6a4:	6a 00                	push   $0x0
40b6a6:	89 30                	mov    %esi,(%eax)
40b6a8:	83 c0 04             	add    $0x4,%eax
40b6ab:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b6ae:	e8 90 36 00 00       	call   0x40ed43
40b6b3:	8b 45 f8             	mov    -0x8(%ebp),%eax
40b6b6:	59                   	pop    %ecx
40b6b7:	03 d8                	add    %eax,%ebx
40b6b9:	8a 13                	mov    (%ebx),%dl
40b6bb:	84 d2                	test   %dl,%dl
40b6bd:	75 a8                	jne    0x40b667
40b6bf:	eb 11                	jmp    0x40b6d2
40b6c1:	57                   	push   %edi
40b6c2:	e8 27 00 00 00       	call   0x40b6ee
40b6c7:	6a 00                	push   $0x0
40b6c9:	e8 75 36 00 00       	call   0x40ed43
40b6ce:	59                   	pop    %ecx
40b6cf:	59                   	pop    %ecx
40b6d0:	33 ff                	xor    %edi,%edi
40b6d2:	6a 00                	push   $0x0
40b6d4:	e8 6a 36 00 00       	call   0x40ed43
40b6d9:	59                   	pop    %ecx
40b6da:	8b c7                	mov    %edi,%eax
40b6dc:	5f                   	pop    %edi
40b6dd:	5e                   	pop    %esi
40b6de:	5b                   	pop    %ebx
40b6df:	c9                   	leave
40b6e0:	c3                   	ret
40b6e1:	33 c0                	xor    %eax,%eax
40b6e3:	50                   	push   %eax
40b6e4:	50                   	push   %eax
40b6e5:	50                   	push   %eax
40b6e6:	50                   	push   %eax
40b6e7:	50                   	push   %eax
40b6e8:	e8 39 35 00 00       	call   0x40ec26
40b6ed:	cc                   	int3
40b6ee:	8b ff                	mov    %edi,%edi
40b6f0:	55                   	push   %ebp
40b6f1:	8b ec                	mov    %esp,%ebp
40b6f3:	56                   	push   %esi
40b6f4:	8b 75 08             	mov    0x8(%ebp),%esi
40b6f7:	85 f6                	test   %esi,%esi
40b6f9:	74 1f                	je     0x40b71a
40b6fb:	8b 06                	mov    (%esi),%eax
40b6fd:	57                   	push   %edi
40b6fe:	8b fe                	mov    %esi,%edi
40b700:	eb 0c                	jmp    0x40b70e
40b702:	50                   	push   %eax