40b5ad:	8b 7d f8             	mov    -0x8(%ebp),%edi
40b5b0:	e9 db 00 00 00       	jmp    0x40b690
40b5b5:	83 fe 5a             	cmp    $0x5a,%esi
40b5b8:	0f 87 31 ff ff ff    	ja     0x40b4ef
40b5be:	e9 18 01 00 00       	jmp    0x40b6db
40b5c3:	ff 75 10             	push   0x10(%ebp)
40b5c6:	e8 01 09 00 00       	call   0x40becc
40b5cb:	85 c0                	test   %eax,%eax
40b5cd:	0f 88 1a 04 00 00    	js     0x40b9ed
40b5d3:	83 fe 24             	cmp    $0x24,%esi
40b5d6:	0f 85 d8 02 00 00    	jne    0x40b8b4
40b5dc:	b8 33 00 00 00       	mov    $0x33,%eax
40b5e1:	50                   	push   %eax
40b5e2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b5e5:	e8 12 06 00 00       	call   0x40bbfc
40b5ea:	47                   	inc    %edi
40b5eb:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b5ee:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b5f1:	e8 d8 06 00 00       	call   0x40bcce
40b5f6:	0f b7 34 7b          	movzwl (%ebx,%edi,2),%esi
40b5fa:	66 83 fe 5a          	cmp    $0x5a,%si
40b5fe:	76 3f                	jbe    0x40b63f
40b600:	66 83 fe 61          	cmp    $0x61,%si
40b604:	72 41                	jb     0x40b647
40b606:	66 83 fe 7a          	cmp    $0x7a,%si
40b60a:	77 3b                	ja     0x40b647
40b60c:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
40b60f:	8b 01                	mov    (%ecx),%eax
40b611:	83 f8 01             	cmp    $0x1,%eax
40b614:	0f 8f ef 82 06 00    	jg     0x473909
40b61a:	8b 45 dc             	mov    -0x24(%ebp),%eax
40b61d:	40                   	inc    %eax
40b61e:	50                   	push   %eax
40b61f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b622:	e8 5e 05 00 00       	call   0x40bb85
40b627:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40b62a:	8b 45 dc             	mov    -0x24(%ebp),%eax
40b62d:	40                   	inc    %eax
40b62e:	66 89 74 41 fe       	mov    %si,-0x2(%ecx,%eax,2)
40b633:	33 d2                	xor    %edx,%edx
40b635:	89 45 dc             	mov    %eax,-0x24(%ebp)
40b638:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
40b63c:	47                   	inc    %edi
40b63d:	eb b7                	jmp    0x40b5f6
40b63f:	66 83 fe 41          	cmp    $0x41,%si
40b643:	73 c7                	jae    0x40b60c
40b645:	eb b9                	jmp    0x40b600
40b647:	66 83 fe 30          	cmp    $0x30,%si
40b64b:	0f 83 b7 00 00 00    	jae    0x40b708
40b651:	66 83 fe 5f          	cmp    $0x5f,%si
40b655:	74 b5                	je     0x40b60c
40b657:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
40b65b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b65e:	0f 84 80 03 00 00    	je     0x40b9e4
40b664:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b667:	e8 8e 07 00 00       	call   0x40bdfa
40b66c:	ff 75 dc             	push   -0x24(%ebp)
40b66f:	ff 75 d8             	push   -0x28(%ebp)
40b672:	ff 15 60 d6 48 00    	call   *0x48d660
40b678:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b67b:	50                   	push   %eax
40b67c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b67f:	e8 f0 05 00 00       	call   0x40bc74
40b684:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b687:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b68a:	50                   	push   %eax
40b68b:	e8 f5 03 00 00       	call   0x40ba85
40b690:	66 83 3c 7b 00       	cmpw   $0x0,(%ebx,%edi,2)
40b695:	0f 85 15 fe ff ff    	jne    0x40b4b0
40b69b:	6a 7f                	push   $0x7f
40b69d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b6a0:	e8 57 05 00 00       	call   0x40bbfc
40b6a5:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b6a8:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b6ab:	50                   	push   %eax
40b6ac:	66 89 7d f2          	mov    %di,-0xe(%ebp)
40b6b0:	e8 d0 03 00 00       	call   0x40ba85
40b6b5:	33 f6                	xor    %esi,%esi
40b6b7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b6ba:	e8 78 14 00 00       	call   0x40cb37
40b6bf:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b6c2:	e8 2e 22 01 00       	call   0x41d8f5
40b6c7:	5f                   	pop    %edi
40b6c8:	8b c6                	mov    %esi,%eax
40b6ca:	5e                   	pop    %esi
40b6cb:	5b                   	pop    %ebx
40b6cc:	8b e5                	mov    %ebp,%esp
40b6ce:	5d                   	pop    %ebp
40b6cf:	c2 0c 00             	ret    $0xc
40b6d2:	83 fe 7a             	cmp    $0x7a,%esi
40b6d5:	0f 87 1d fe ff ff    	ja     0x40b4f8
40b6db:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b6de:	50                   	push   %eax
40b6df:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b6e2:	50                   	push   %eax
40b6e3:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b6e6:	50                   	push   %eax
40b6e7:	53                   	push   %ebx
40b6e8:	e8 b8 0f 00 00       	call   0x40c6a5
40b6ed:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
40b6f1:	0f 84 6c 82 06 00    	je     0x473963
40b6f7:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b6fa:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b6fd:	50                   	push   %eax
40b6fe:	e8 82 03 00 00       	call   0x40ba85
40b703:	8b 7d f8             	mov    -0x8(%ebp),%edi
40b706:	eb 88                	jmp    0x40b690
40b708:	66 83 fe 39          	cmp    $0x39,%si
40b70c:	0f 87 3f ff ff ff    	ja     0x40b651
40b712:	e9 f5 fe ff ff       	jmp    0x40b60c
40b717:	47                   	inc    %edi
40b718:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b71b:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
40b720:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b723:	0f 84 d0 81 06 00    	je     0x4738f9
40b729:	6a 41                	push   $0x41
40b72b:	e8 cc 04 00 00       	call   0x40bbfc
40b730:	e9 4f ff ff ff       	jmp    0x40b684
40b735:	6a 4e                	push   $0x4e
40b737:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b73a:	e8 bd 04 00 00       	call   0x40bbfc
40b73f:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b742:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b745:	50                   	push   %eax
40b746:	e8 3a 03 00 00       	call   0x40ba85
40b74b:	47                   	inc    %edi
40b74c:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b74f:	e9 3c ff ff ff       	jmp    0x40b690
40b754:	6a 47                	push   $0x47
40b756:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b759:	e8 9e 04 00 00       	call   0x40bbfc
40b75e:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b761:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b764:	50                   	push   %eax
40b765:	e8 1b 03 00 00       	call   0x40ba85
40b76a:	47                   	inc    %edi
40b76b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b76e:	e9 1d ff ff ff       	jmp    0x40b690
40b773:	6a 48                	push   $0x48
40b775:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b778:	e8 7f 04 00 00       	call   0x40bbfc
40b77d:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b780:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b783:	50                   	push   %eax
40b784:	e8 fc 02 00 00       	call   0x40ba85
40b789:	47                   	inc    %edi
40b78a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b78d:	e9 fe fe ff ff       	jmp    0x40b690
40b792:	6a 40                	push   $0x40
40b794:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b797:	e8 60 04 00 00       	call   0x40bbfc
40b79c:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b79f:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b7a2:	50                   	push   %eax
40b7a3:	e8 dd 02 00 00       	call   0x40ba85
40b7a8:	47                   	inc    %edi
40b7a9:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b7ac:	e9 df fe ff ff       	jmp    0x40b690
40b7b1:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b7b4:	50                   	push   %eax
40b7b5:	8d 45 f8             	lea    -0x8(%ebp),%eax
40b7b8:	50                   	push   %eax
40b7b9:	53                   	push   %ebx
40b7ba:	ff 75 08             	push   0x8(%ebp)
40b7bd:	e8 6a 0e 00 00       	call   0x40c62c
40b7c2:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b7c5:	85 c0                	test   %eax,%eax
40b7c7:	0f 88 bf 81 06 00    	js     0x47398c
40b7cd:	6a 36                	push   $0x36
40b7cf:	e8 28 04 00 00       	call   0x40bbfc
40b7d4:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b7d7:	50                   	push   %eax
40b7d8:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b7db:	e8 94 04 00 00       	call   0x40bc74
40b7e0:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b7e3:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b7e6:	50                   	push   %eax
40b7e7:	e8 99 02 00 00       	call   0x40ba85
40b7ec:	8b 7d f8             	mov    -0x8(%ebp),%edi
40b7ef:	e9 9c fe ff ff       	jmp    0x40b690
40b7f4:	6a 4d                	push   $0x4d
40b7f6:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b7f9:	e8 fe 03 00 00       	call   0x40bbfc
40b7fe:	47                   	inc    %edi
40b7ff:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b802:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
40b807:	0f 85 77 fe ff ff    	jne    0x40b684
40b80d:	47                   	inc    %edi
40b80e:	6a 56                	push   $0x56
40b810:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b813:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b816:	e8 e1 03 00 00       	call   0x40bbfc
40b81b:	e9 64 fe ff ff       	jmp    0x40b684
40b820:	6a 49                	push   $0x49
40b822:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b825:	e8 d2 03 00 00       	call   0x40bbfc
40b82a:	47                   	inc    %edi
40b82b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b82e:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
40b833:	0f 85 4b fe ff ff    	jne    0x40b684
40b839:	47                   	inc    %edi
40b83a:	6a 52                	push   $0x52
40b83c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b83f:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b842:	e8 b5 03 00 00       	call   0x40bbfc
40b847:	e9 38 fe ff ff       	jmp    0x40b684
40b84c:	6a 4c                	push   $0x4c
40b84e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b851:	e8 a6 03 00 00       	call   0x40bbfc
40b856:	47                   	inc    %edi
40b857:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b85a:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
40b85f:	0f 85 1f fe ff ff    	jne    0x40b684
40b865:	47                   	inc    %edi
40b866:	6a 55                	push   $0x55
40b868:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b86b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b86e:	e8 89 03 00 00       	call   0x40bbfc
40b873:	e9 0c fe ff ff       	jmp    0x40b684
40b878:	6a 4b                	push   $0x4b
40b87a:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b87d:	e8 7a 03 00 00       	call   0x40bbfc
40b882:	47                   	inc    %edi
40b883:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b886:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
40b88b:	0f 85 f3 fd ff ff    	jne    0x40b684
40b891:	e9 c5 7f 06 00       	jmp    0x47385b
40b896:	6a 4a                	push   $0x4a
40b898:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b89b:	e8 5c 03 00 00       	call   0x40bbfc
40b8a0:	47                   	inc    %edi
40b8a1:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b8a4:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
40b8a9:	0f 85 d5 fd ff ff    	jne    0x40b684
40b8af:	e9 94 7f 06 00       	jmp    0x473848
40b8b4:	b8 32 00 00 00       	mov    $0x32,%eax
40b8b9:	e9 23 fd ff ff       	jmp    0x40b5e1
40b8be:	47                   	inc    %edi
40b8bf:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b8c2:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
40b8c7:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b8ca:	74 74                	je     0x40b940
40b8cc:	6a 42                	push   $0x42
40b8ce:	e8 29 03 00 00       	call   0x40bbfc
40b8d3:	e9 ac fd ff ff       	jmp    0x40b684
40b8d8:	0f b7 44 7b 02       	movzwl 0x2(%ebx,%edi,2),%eax
40b8dd:	47                   	inc    %edi
40b8de:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b8e1:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b8e4:	83 e8 3d             	sub    $0x3d,%eax
40b8e7:	0f 84 df 00 00 00    	je     0x40b9cc
40b8ed:	48                   	dec    %eax
40b8ee:	74 60                	je     0x40b950
40b8f0:	6a 43                	push   $0x43
40b8f2:	e8 05 03 00 00       	call   0x40bbfc
40b8f7:	e9 88 fd ff ff       	jmp    0x40b684
40b8fc:	66 83 7d f0 05       	cmpw   $0x5,-0x10(%ebp)
40b901:	0f 85 9b fc ff ff    	jne    0x40b5a2
40b907:	8b 4d e8             	mov    -0x18(%ebp),%ecx
40b90a:	8b 45 ec             	mov    -0x14(%ebp),%eax
40b90d:	f7 d9                	neg    %ecx
40b90f:	83 d0 00             	adc    $0x0,%eax
40b912:	f7 d8                	neg    %eax
40b914:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40b917:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40b91a:	89 45 ec             	mov    %eax,-0x14(%ebp)
40b91d:	8b 47 04             	mov    0x4(%edi),%eax
40b920:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
40b924:	b9 49 00 00 00       	mov    $0x49,%ecx
40b929:	66 89 48 08          	mov    %cx,0x8(%eax)
40b92d:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b930:	50                   	push   %eax
40b931:	8b cf                	mov    %edi,%ecx
40b933:	e8 4d 01 00 00       	call   0x40ba85
40b938:	8b 7d f8             	mov    -0x8(%ebp),%edi
40b93b:	e9 50 fd ff ff       	jmp    0x40b690
40b940:	6a 45                	push   $0x45
40b942:	e8 b5 02 00 00       	call   0x40bbfc
40b947:	47                   	inc    %edi
40b948:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b94b:	e9 34 fd ff ff       	jmp    0x40b684
40b950:	6a 44                	push   $0x44
40b952:	e8 a5 02 00 00       	call   0x40bbfc
40b957:	47                   	inc    %edi
40b958:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b95b:	e9 24 fd ff ff       	jmp    0x40b684
40b960:	8b 7d f8             	mov    -0x8(%ebp),%edi
40b963:	83 fe 2e             	cmp    $0x2e,%esi
40b966:	0f 85 7a fb ff ff    	jne    0x40b4e6
40b96c:	47                   	inc    %edi
40b96d:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b970:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b973:	e8 56 03 00 00       	call   0x40bcce
40b978:	0f b7 04 7b          	movzwl (%ebx,%edi,2),%eax
40b97c:	66 83 f8 5a          	cmp    $0x5a,%ax
40b980:	76 18                	jbe    0x40b99a
40b982:	66 83 f8 61          	cmp    $0x61,%ax
40b986:	72 1a                	jb     0x40b9a2
40b988:	66 83 f8 7a          	cmp    $0x7a,%ax
40b98c:	77 14                	ja     0x40b9a2
40b98e:	50                   	push   %eax
40b98f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b992:	e8 02 0e 00 00       	call   0x40c799
40b997:	47                   	inc    %edi
40b998:	eb de                	jmp    0x40b978
40b99a:	66 83 f8 41          	cmp    $0x41,%ax
40b99e:	73 ee                	jae    0x40b98e
40b9a0:	eb e0                	jmp    0x40b982
40b9a2:	66 83 f8 30          	cmp    $0x30,%ax
40b9a6:	73 34                	jae    0x40b9dc
40b9a8:	66 83 f8 5f          	cmp    $0x5f,%ax
40b9ac:	74 e0                	je     0x40b98e
40b9ae:	66 83 f8 7f          	cmp    $0x7f,%ax
40b9b2:	77 da                	ja     0x40b98e
40b9b4:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
40b9b8:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b9bb:	74 27                	je     0x40b9e4
40b9bd:	6a 35                	push   $0x35
40b9bf:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40b9c2:	e8 35 02 00 00       	call   0x40bbfc
40b9c7:	e9 ac fc ff ff       	jmp    0x40b678
40b9cc:	6a 46                	push   $0x46
40b9ce:	e8 29 02 00 00       	call   0x40bbfc
40b9d3:	47                   	inc    %edi
40b9d4:	89 7d f8             	mov    %edi,-0x8(%ebp)
40b9d7:	e9 a8 fc ff ff       	jmp    0x40b684
40b9dc:	66 83 f8 39          	cmp    $0x39,%ax
40b9e0:	76 ac                	jbe    0x40b98e
40b9e2:	eb c4                	jmp    0x40b9a8
40b9e4:	8d 47 ff             	lea    -0x1(%edi),%eax
40b9e7:	50                   	push   %eax
40b9e8:	e9 ba 7f 06 00       	jmp    0x4739a7
40b9ed:	57                   	push   %edi
40b9ee:	e9 b4 7f 06 00       	jmp    0x4739a7
40b9f3:	90                   	nop
40b9f4:	cb                   	lret
40b9f5:	38 47 00             	cmp    %al,0x0(%edi)
40b9f8:	b1 b7                	mov    $0xb7,%cl
40b9fa:	40                   	inc    %eax
40b9fb:	00 f4                	add    %dh,%ah
40b9fd:	b7 40                	mov    $0x40,%bh
40b9ff:	00 54 b7 40          	add    %dl,0x40(%edi,%esi,4)
40ba03:	00 73 b7             	add    %dh,-0x49(%ebx)
40ba06:	40                   	inc    %eax
40ba07:	00 4c b8 40          	add    %cl,0x40(%eax,%edi,4)
40ba0b:	00 20                	add    %ah,(%eax)
40ba0d:	b8 40 00 92 b7       	mov    $0xb7920040,%eax
40ba12:	40                   	inc    %eax
40ba13:	00 96 b8 40 00 78    	add    %dl,0x780040b8(%esi)
40ba19:	b8 40 00 ac 38       	mov    $0x38ac0040,%eax