40c3be:	80 fa 58             	cmp    $0x58,%dl
40c3c1:	75 0d                	jne    0x40c3d0
40c3c3:	8b c3                	mov    %ebx,%eax
40c3c5:	c1 e8 05             	shr    $0x5,%eax
40c3c8:	a8 01                	test   $0x1,%al
40c3ca:	74 04                	je     0x40c3d0
40c3cc:	b3 01                	mov    $0x1,%bl
40c3ce:	eb 02                	jmp    0x40c3d2
40c3d0:	32 db                	xor    %bl,%bl
40c3d2:	80 fa 61             	cmp    $0x61,%dl
40c3d5:	74 09                	je     0x40c3e0
40c3d7:	80 fa 41             	cmp    $0x41,%dl
40c3da:	74 04                	je     0x40c3e0
40c3dc:	32 c0                	xor    %al,%al
40c3de:	eb 02                	jmp    0x40c3e2
40c3e0:	b0 01                	mov    $0x1,%al
40c3e2:	84 db                	test   %bl,%bl
40c3e4:	75 04                	jne    0x40c3ea
40c3e6:	84 c0                	test   %al,%al
40c3e8:	74 20                	je     0x40c40a
40c3ea:	c6 44 0d fc 30       	movb   $0x30,-0x4(%ebp,%ecx,1)
40c3ef:	80 fa 58             	cmp    $0x58,%dl
40c3f2:	74 09                	je     0x40c3fd
40c3f4:	80 fa 41             	cmp    $0x41,%dl
40c3f7:	74 04                	je     0x40c3fd
40c3f9:	b0 78                	mov    $0x78,%al
40c3fb:	eb 03                	jmp    0x40c400
40c3fd:	6a 58                	push   $0x58
40c3ff:	58                   	pop    %eax
40c400:	88 44 0d fd          	mov    %al,-0x3(%ebp,%ecx,1)
40c404:	83 c1 02             	add    $0x2,%ecx
40c407:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40c40a:	57                   	push   %edi
40c40b:	8b 7e 24             	mov    0x24(%esi),%edi
40c40e:	8d 5e 18             	lea    0x18(%esi),%ebx
40c411:	2b 7e 38             	sub    0x38(%esi),%edi
40c414:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40c41a:	2b f9                	sub    %ecx,%edi
40c41c:	f6 46 20 0c          	testb  $0xc,0x20(%esi)
40c420:	75 10                	jne    0x40c432
40c422:	53                   	push   %ebx
40c423:	57                   	push   %edi
40c424:	6a 20                	push   $0x20
40c426:	50                   	push   %eax
40c427:	e8 a5 f7 ff ff       	call   0x40bbd1
40c42c:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40c42f:	83 c4 10             	add    $0x10,%esp
40c432:	8d 46 0c             	lea    0xc(%esi),%eax
40c435:	50                   	push   %eax
40c436:	53                   	push   %ebx
40c437:	51                   	push   %ecx
40c438:	8d 45 fc             	lea    -0x4(%ebp),%eax
40c43b:	50                   	push   %eax
40c43c:	8d 8e 48 04 00 00    	lea    0x448(%esi),%ecx
40c442:	e8 b4 06 00 00       	call   0x40cafb
40c447:	8b 4e 20             	mov    0x20(%esi),%ecx
40c44a:	8b c1                	mov    %ecx,%eax
40c44c:	c1 e8 03             	shr    $0x3,%eax
40c44f:	a8 01                	test   $0x1,%al
40c451:	74 1b                	je     0x40c46e
40c453:	c1 e9 02             	shr    $0x2,%ecx
40c456:	f6 c1 01             	test   $0x1,%cl
40c459:	75 13                	jne    0x40c46e
40c45b:	53                   	push   %ebx
40c45c:	57                   	push   %edi
40c45d:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40c463:	6a 30                	push   $0x30
40c465:	50                   	push   %eax
40c466:	e8 66 f7 ff ff       	call   0x40bbd1
40c46b:	83 c4 10             	add    $0x10,%esp
40c46e:	6a 00                	push   $0x0
40c470:	8b ce                	mov    %esi,%ecx
40c472:	e8 df 05 00 00       	call   0x40ca56
40c477:	83 3b 00             	cmpl   $0x0,(%ebx)
40c47a:	7c 1d                	jl     0x40c499
40c47c:	8b 46 20             	mov    0x20(%esi),%eax
40c47f:	c1 e8 02             	shr    $0x2,%eax
40c482:	a8 01                	test   $0x1,%al
40c484:	74 13                	je     0x40c499
40c486:	53                   	push   %ebx
40c487:	57                   	push   %edi
40c488:	8d 86 48 04 00 00    	lea    0x448(%esi),%eax
40c48e:	6a 20                	push   $0x20
40c490:	50                   	push   %eax
40c491:	e8 3b f7 ff ff       	call   0x40bbd1
40c496:	83 c4 10             	add    $0x10,%esp
40c499:	5f                   	pop    %edi
40c49a:	b0 01                	mov    $0x1,%al
40c49c:	5e                   	pop    %esi
40c49d:	5b                   	pop    %ebx
40c49e:	c9                   	leave
40c49f:	c3                   	ret
40c4a0:	80 79 31 2a          	cmpb   $0x2a,0x31(%ecx)
40c4a4:	8d 51 24             	lea    0x24(%ecx),%edx
40c4a7:	74 07                	je     0x40c4b0
40c4a9:	52                   	push   %edx
40c4aa:	e8 c6 f9 ff ff       	call   0x40be75
40c4af:	c3                   	ret
40c4b0:	83 41 14 04          	addl   $0x4,0x14(%ecx)
40c4b4:	8b 41 14             	mov    0x14(%ecx),%eax
40c4b7:	8b 40 fc             	mov    -0x4(%eax),%eax
40c4ba:	89 02                	mov    %eax,(%edx)
40c4bc:	85 c0                	test   %eax,%eax
40c4be:	79 08                	jns    0x40c4c8
40c4c0:	83 49 20 04          	orl    $0x4,0x20(%ecx)
40c4c4:	f7 d8                	neg    %eax
40c4c6:	89 02                	mov    %eax,(%edx)
40c4c8:	b0 01                	mov    $0x1,%al
40c4ca:	c3                   	ret
40c4cb:	cc                   	int3
40c4cc:	cc                   	int3
40c4cd:	cc                   	int3
40c4ce:	cc                   	int3
40c4cf:	cc                   	int3
40c4d0:	8b ff                	mov    %edi,%edi
40c4d2:	55                   	push   %ebp
40c4d3:	8b ec                	mov    %esp,%ebp
40c4d5:	8b 45 08             	mov    0x8(%ebp),%eax
40c4d8:	83 f8 0b             	cmp    $0xb,%eax
40c4db:	77 2a                	ja     0x40c507
40c4dd:	0f b6 80 20 c5 40 00 	movzbl 0x40c520(%eax),%eax
40c4e4:	ff 24 85 0c c5 40 00 	jmp    *0x40c50c(,%eax,4)
40c4eb:	b8 01 00 00 00       	mov    $0x1,%eax
40c4f0:	5d                   	pop    %ebp
40c4f1:	c3                   	ret
40c4f2:	b8 02 00 00 00       	mov    $0x2,%eax
40c4f7:	5d                   	pop    %ebp
40c4f8:	c3                   	ret
40c4f9:	b8 04 00 00 00       	mov    $0x4,%eax
40c4fe:	5d                   	pop    %ebp
40c4ff:	c3                   	ret
40c500:	b8 08 00 00 00       	mov    $0x8,%eax
40c505:	5d                   	pop    %ebp
40c506:	c3                   	ret
40c507:	33 c0                	xor    %eax,%eax
40c509:	5d                   	pop    %ebp
40c50a:	c3                   	ret
40c50b:	90                   	nop
40c50c:	f9                   	stc
40c50d:	c4 40 00             	les    0x0(%eax),%eax
40c510:	eb c4                	jmp    0x40c4d6
40c512:	40                   	inc    %eax
40c513:	00 f2                	add    %dh,%dl
40c515:	c4 40 00             	les    0x0(%eax),%eax
40c518:	00 c5                	add    %al,%ch
40c51a:	40                   	inc    %eax
40c51b:	00 07                	add    %al,(%edi)
40c51d:	c5 40 00             	lds    0x0(%eax),%eax
40c520:	00 01                	add    %al,(%ecx)
40c522:	02 00                	add    (%eax),%al
40c524:	03 03                	add    (%ebx),%eax
40c526:	00 00                	add    %al,(%eax)
40c528:	04 00                	add    $0x0,%al
40c52a:	00 03                	add    %al,(%ebx)
40c52c:	8b ff                	mov    %edi,%edi
40c52e:	53                   	push   %ebx
40c52f:	56                   	push   %esi
40c530:	8b f1                	mov    %ecx,%esi
40c532:	57                   	push   %edi
40c533:	83 46 14 04          	addl   $0x4,0x14(%esi)
40c537:	8b 46 14             	mov    0x14(%esi),%eax
40c53a:	8b 78 fc             	mov    -0x4(%eax),%edi
40c53d:	85 ff                	test   %edi,%edi
40c53f:	74 2e                	je     0x40c56f
40c541:	8b 5f 04             	mov    0x4(%edi),%ebx
40c544:	85 db                	test   %ebx,%ebx
40c546:	74 27                	je     0x40c56f
40c548:	ff 76 2c             	push   0x2c(%esi)
40c54b:	0f b6 46 31          	movzbl 0x31(%esi),%eax
40c54f:	50                   	push   %eax
40c550:	ff 76 04             	push   0x4(%esi)
40c553:	ff 36                	push   (%esi)
40c555:	e8 27 f5 ff ff       	call   0x40ba81
40c55a:	83 c4 10             	add    $0x10,%esp
40c55d:	89 5e 34             	mov    %ebx,0x34(%esi)
40c560:	0f b7 0f             	movzwl (%edi),%ecx
40c563:	84 c0                	test   %al,%al
40c565:	74 12                	je     0x40c579
40c567:	c6 46 3c 01          	movb   $0x1,0x3c(%esi)
40c56b:	d1 e9                	shr    $1,%ecx
40c56d:	eb 0e                	jmp    0x40c57d
40c56f:	6a 06                	push   $0x6
40c571:	c7 46 34 c8 60 42 00 	movl   $0x4260c8,0x34(%esi)
40c578:	59                   	pop    %ecx
40c579:	c6 46 3c 00          	movb   $0x0,0x3c(%esi)
40c57d:	5f                   	pop    %edi
40c57e:	89 4e 38             	mov    %ecx,0x38(%esi)
40c581:	b0 01                	mov    $0x1,%al
40c583:	5e                   	pop    %esi
40c584:	5b                   	pop    %ebx
40c585:	c3                   	ret
40c586:	8b ff                	mov    %edi,%edi
40c588:	55                   	push   %ebp
40c589:	8b ec                	mov    %esp,%ebp
40c58b:	51                   	push   %ecx
40c58c:	51                   	push   %ecx
40c58d:	56                   	push   %esi
40c58e:	8b f1                	mov    %ecx,%esi
40c590:	33 d2                	xor    %edx,%edx
40c592:	42                   	inc    %edx
40c593:	57                   	push   %edi
40c594:	83 4e 20 10          	orl    $0x10,0x20(%esi)
40c598:	8b 46 28             	mov    0x28(%esi),%eax
40c59b:	85 c0                	test   %eax,%eax
40c59d:	79 17                	jns    0x40c5b6
40c59f:	8a 46 31             	mov    0x31(%esi),%al
40c5a2:	3c 61                	cmp    $0x61,%al
40c5a4:	74 08                	je     0x40c5ae
40c5a6:	3c 41                	cmp    $0x41,%al
40c5a8:	74 04                	je     0x40c5ae
40c5aa:	6a 06                	push   $0x6
40c5ac:	eb 02                	jmp    0x40c5b0
40c5ae:	6a 0d                	push   $0xd
40c5b0:	58                   	pop    %eax
40c5b1:	89 46 28             	mov    %eax,0x28(%esi)
40c5b4:	eb 16                	jmp    0x40c5cc
40c5b6:	75 14                	jne    0x40c5cc
40c5b8:	8a 4e 31             	mov    0x31(%esi),%cl
40c5bb:	80 f9 67             	cmp    $0x67,%cl
40c5be:	74 07                	je     0x40c5c7
40c5c0:	33 c0                	xor    %eax,%eax
40c5c2:	80 f9 47             	cmp    $0x47,%cl
40c5c5:	75 05                	jne    0x40c5cc
40c5c7:	89 56 28             	mov    %edx,0x28(%esi)
40c5ca:	8b c2                	mov    %edx,%eax
40c5cc:	05 5d 01 00 00       	add    $0x15d,%eax
40c5d1:	8d 7e 40             	lea    0x40(%esi),%edi
40c5d4:	50                   	push   %eax
40c5d5:	8b cf                	mov    %edi,%ecx
40c5d7:	e8 28 f4 ff ff       	call   0x40ba04
40c5dc:	84 c0                	test   %al,%al
40c5de:	75 0f                	jne    0x40c5ef
40c5e0:	8b cf                	mov    %edi,%ecx
40c5e2:	e8 05 f4 ff ff       	call   0x40b9ec
40c5e7:	2d 5d 01 00 00       	sub    $0x15d,%eax
40c5ec:	89 46 28             	mov    %eax,0x28(%esi)
40c5ef:	8b 87 04 04 00 00    	mov    0x404(%edi),%eax
40c5f5:	85 c0                	test   %eax,%eax
40c5f7:	75 02                	jne    0x40c5fb
40c5f9:	8b c7                	mov    %edi,%eax
40c5fb:	89 46 34             	mov    %eax,0x34(%esi)
40c5fe:	83 46 14 08          	addl   $0x8,0x14(%esi)
40c602:	8b 4e 14             	mov    0x14(%esi),%ecx
40c605:	53                   	push   %ebx
40c606:	8b 41 f8             	mov    -0x8(%ecx),%eax
40c609:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c60c:	8b 41 fc             	mov    -0x4(%ecx),%eax
40c60f:	8b cf                	mov    %edi,%ecx
40c611:	89 45 fc             	mov    %eax,-0x4(%ebp)
40c614:	e8 d3 f3 ff ff       	call   0x40b9ec
40c619:	8b 9f 04 04 00 00    	mov    0x404(%edi),%ebx
40c61f:	8b c8                	mov    %eax,%ecx
40c621:	85 db                	test   %ebx,%ebx
40c623:	75 02                	jne    0x40c627
40c625:	8b df                	mov    %edi,%ebx
40c627:	0f be 46 31          	movsbl 0x31(%esi),%eax
40c62b:	6a 01                	push   $0x1
40c62d:	ff 76 08             	push   0x8(%esi)
40c630:	ff 76 04             	push   0x4(%esi)
40c633:	ff 36                	push   (%esi)
40c635:	ff 76 28             	push   0x28(%esi)
40c638:	50                   	push   %eax
40c639:	51                   	push   %ecx
40c63a:	8b cf                	mov    %edi,%ecx
40c63c:	e8 71 f4 ff ff       	call   0x40bab2
40c641:	50                   	push   %eax
40c642:	8b cf                	mov    %edi,%ecx
40c644:	e8 a3 f3 ff ff       	call   0x40b9ec
40c649:	50                   	push   %eax
40c64a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c64d:	53                   	push   %ebx
40c64e:	50                   	push   %eax
40c64f:	e8 de 87 00 00       	call   0x414e32
40c654:	8b 46 20             	mov    0x20(%esi),%eax
40c657:	83 c4 2c             	add    $0x2c,%esp
40c65a:	c1 e8 05             	shr    $0x5,%eax
40c65d:	5b                   	pop    %ebx
40c65e:	a8 01                	test   $0x1,%al
40c660:	74 13                	je     0x40c675
40c662:	83 7e 28 00          	cmpl   $0x0,0x28(%esi)
40c666:	75 0d                	jne    0x40c675
40c668:	ff 76 08             	push   0x8(%esi)
40c66b:	ff 76 34             	push   0x34(%esi)
40c66e:	e8 9d f7 ff ff       	call   0x40be10
40c673:	59                   	pop    %ecx
40c674:	59                   	pop    %ecx
40c675:	8a 46 31             	mov    0x31(%esi),%al
40c678:	3c 67                	cmp    $0x67,%al
40c67a:	74 04                	je     0x40c680
40c67c:	3c 47                	cmp    $0x47,%al
40c67e:	75 17                	jne    0x40c697
40c680:	8b 46 20             	mov    0x20(%esi),%eax
40c683:	c1 e8 05             	shr    $0x5,%eax
40c686:	a8 01                	test   $0x1,%al
40c688:	75 0d                	jne    0x40c697
40c68a:	ff 76 08             	push   0x8(%esi)
40c68d:	ff 76 34             	push   0x34(%esi)
40c690:	e8 bb f6 ff ff       	call   0x40bd50
40c695:	59                   	pop    %ecx
40c696:	59                   	pop    %ecx
40c697:	8b 56 34             	mov    0x34(%esi),%edx
40c69a:	8a 02                	mov    (%edx),%al
40c69c:	3c 2d                	cmp    $0x2d,%al
40c69e:	75 0a                	jne    0x40c6aa
40c6a0:	83 4e 20 40          	orl    $0x40,0x20(%esi)
40c6a4:	42                   	inc    %edx
40c6a5:	89 56 34             	mov    %edx,0x34(%esi)
40c6a8:	8a 02                	mov    (%edx),%al
40c6aa:	3c 69                	cmp    $0x69,%al
40c6ac:	74 0c                	je     0x40c6ba
40c6ae:	3c 49                	cmp    $0x49,%al
40c6b0:	74 08                	je     0x40c6ba
40c6b2:	3c 6e                	cmp    $0x6e,%al
40c6b4:	74 04                	je     0x40c6ba
40c6b6:	3c 4e                	cmp    $0x4e,%al
40c6b8:	75 08                	jne    0x40c6c2
40c6ba:	83 66 20 f7          	andl   $0xfffffff7,0x20(%esi)
40c6be:	c6 46 31 73          	movb   $0x73,0x31(%esi)
40c6c2:	8d 7a 01             	lea    0x1(%edx),%edi
40c6c5:	8a 0a                	mov    (%edx),%cl
40c6c7:	42                   	inc    %edx
40c6c8:	84 c9                	test   %cl,%cl
40c6ca:	75 f9                	jne    0x40c6c5
40c6cc:	2b d7                	sub    %edi,%edx
40c6ce:	b0 01                	mov    $0x1,%al
40c6d0:	5f                   	pop    %edi
40c6d1:	89 56 38             	mov    %edx,0x38(%esi)
40c6d4:	5e                   	pop    %esi
40c6d5:	c9                   	leave
40c6d6:	c3                   	ret
40c6d7:	8b ff                	mov    %edi,%edi
40c6d9:	56                   	push   %esi
40c6da:	8b f1                	mov    %ecx,%esi
40c6dc:	57                   	push   %edi
40c6dd:	ff 76 2c             	push   0x2c(%esi)
40c6e0:	0f b6 46 31          	movzbl 0x31(%esi),%eax
40c6e4:	8d 7e 40             	lea    0x40(%esi),%edi
40c6e7:	50                   	push   %eax
40c6e8:	ff 76 04             	push   0x4(%esi)
40c6eb:	ff 36                	push   (%esi)
40c6ed:	e8 8f f3 ff ff       	call   0x40ba81
40c6f2:	83 c4 10             	add    $0x10,%esp
40c6f5:	84 c0                	test   %al,%al
40c6f7:	74 3c                	je     0x40c735
40c6f9:	83 46 14 04          	addl   $0x4,0x14(%esi)
40c6fd:	8b 46 14             	mov    0x14(%esi),%eax
40c700:	53                   	push   %ebx
40c701:	8b 9f 04 04 00 00    	mov    0x404(%edi),%ebx
40c707:	0f b7 40 fc          	movzwl -0x4(%eax),%eax
40c70b:	85 db                	test   %ebx,%ebx