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
40ba1e:	47                   	inc    %edi
40ba1f:	00 d8                	add    %bl,%al
40ba21:	b8 40 00 be b8       	mov    $0xb8be0040,%eax
40ba26:	40                   	inc    %eax
40ba27:	00 8d 38 47 00 c3    	add    %cl,-0x3cffb8c8(%ebp)
40ba2d:	b5 40                	mov    $0x40,%ch
40ba2f:	00 35 b7 40 00 2f    	add    %dh,0x2f0040b7
40ba35:	b5 40                	mov    $0x40,%ch
40ba37:	00 6e 38             	add    %ch,0x38(%esi)
40ba3a:	47                   	inc    %edi
40ba3b:	00 7b 39             	add    %bh,0x39(%ebx)
40ba3e:	47                   	inc    %edi
40ba3f:	00 00                	add    %al,(%eax)
40ba41:	12 12                	adc    (%edx),%dl
40ba43:	12 12                	adc    (%edx),%dl
40ba45:	12 12                	adc    (%edx),%dl
40ba47:	12 01                	adc    (%ecx),%al
40ba49:	12 12                	adc    (%edx),%dl
40ba4b:	12 02                	adc    (%edx),%al
40ba4d:	01 03                	add    %eax,(%ebx)
40ba4f:	04 05                	add    $0x5,%al
40ba51:	06                   	push   %es
40ba52:	07                   	pop    %es
40ba53:	08 12                	or     %dl,(%edx)
40ba55:	09 12                	or     %edx,(%edx)
40ba57:	12 12                	adc    (%edx),%dl
40ba59:	12 12                	adc    (%edx),%dl
40ba5b:	12 12                	adc    (%edx),%dl
40ba5d:	12 12                	adc    (%edx),%dl
40ba5f:	12 0a                	adc    (%edx),%cl
40ba61:	12 0b                	adc    (%ebx),%cl
40ba63:	12 0c 0d 0e 12 12 12 	adc    0x1212120e(,%ecx,1),%cl
40ba6a:	12 12                	adc    (%edx),%dl
40ba6c:	12 12                	adc    (%edx),%dl
40ba6e:	12 12                	adc    (%edx),%dl
40ba70:	12 12                	adc    (%edx),%dl
40ba72:	12 12                	adc    (%edx),%dl
40ba74:	12 12                	adc    (%edx),%dl
40ba76:	12 12                	adc    (%edx),%dl
40ba78:	12 12                	adc    (%edx),%dl
40ba7a:	12 12                	adc    (%edx),%dl
40ba7c:	12 12                	adc    (%edx),%dl
40ba7e:	12 12                	adc    (%edx),%dl
40ba80:	12 0f                	adc    (%edi),%cl
40ba82:	12 10                	adc    (%eax),%dl
40ba84:	11 55 8b             	adc    %edx,-0x75(%ebp)
40ba87:	ec                   	in     (%dx),%al
40ba88:	56                   	push   %esi
40ba89:	57                   	push   %edi
40ba8a:	8b f9                	mov    %ecx,%edi
40ba8c:	8b 47 0c             	mov    0xc(%edi),%eax
40ba8f:	39 47 08             	cmp    %eax,0x8(%edi)
40ba92:	0f 84 8d 00 00 00    	je     0x40bb25
40ba98:	6a 0c                	push   $0xc
40ba9a:	e8 4b 3a 01 00       	call   0x41f4ea
40ba9f:	8b f0                	mov    %eax,%esi
40baa1:	59                   	pop    %ecx
40baa2:	85 f6                	test   %esi,%esi
40baa4:	0f 84 97 7d 06 00    	je     0x473841
40baaa:	53                   	push   %ebx
40baab:	8b 5d 08             	mov    0x8(%ebp),%ebx
40baae:	66 8b 4b 08          	mov    0x8(%ebx),%cx
40bab2:	66 89 4e 08          	mov    %cx,0x8(%esi)
40bab6:	0f b7 46 08          	movzwl 0x8(%esi),%eax
40baba:	66 8b 4b 0a          	mov    0xa(%ebx),%cx
40babe:	66 89 4e 0a          	mov    %cx,0xa(%esi)
40bac2:	66 83 f8 3f          	cmp    $0x3f,%ax
40bac6:	7e 2b                	jle    0x40baf3
40bac8:	66 83 f8 10          	cmp    $0x10,%ax
40bacc:	0f 84 60 7d 06 00    	je     0x473832
40bad2:	66 83 f8 20          	cmp    $0x20,%ax
40bad6:	0f 84 9c 00 00 00    	je     0x40bb78
40badc:	8b 03                	mov    (%ebx),%eax
40bade:	89 06                	mov    %eax,(%esi)
40bae0:	5b                   	pop    %ebx
40bae1:	8b 4f 08             	mov    0x8(%edi),%ecx
40bae4:	8b 47 04             	mov    0x4(%edi),%eax
40bae7:	89 34 88             	mov    %esi,(%eax,%ecx,4)
40baea:	ff 47 08             	incl   0x8(%edi)
40baed:	5f                   	pop    %edi
40baee:	5e                   	pop    %esi
40baef:	5d                   	pop    %ebp
40baf0:	c2 04 00             	ret    $0x4
40baf3:	66 83 f8 30          	cmp    $0x30,%ax
40baf7:	7c cf                	jl     0x40bac8
40baf9:	6a 10                	push   $0x10
40bafb:	e8 ea 39 01 00       	call   0x41f4ea
40bb00:	8b d0                	mov    %eax,%edx
40bb02:	59                   	pop    %ecx
40bb03:	85 d2                	test   %edx,%edx
40bb05:	74 7a                	je     0x40bb81
40bb07:	8b 03                	mov    (%ebx),%eax
40bb09:	8b 08                	mov    (%eax),%ecx
40bb0b:	89 0a                	mov    %ecx,(%edx)
40bb0d:	8b 48 04             	mov    0x4(%eax),%ecx
40bb10:	89 4a 04             	mov    %ecx,0x4(%edx)
40bb13:	8b 48 08             	mov    0x8(%eax),%ecx
40bb16:	89 4a 08             	mov    %ecx,0x8(%edx)
40bb19:	8b 40 0c             	mov    0xc(%eax),%eax
40bb1c:	89 42 0c             	mov    %eax,0xc(%edx)
40bb1f:	ff 00                	incl   (%eax)
40bb21:	89 16                	mov    %edx,(%esi)
40bb23:	eb bb                	jmp    0x40bae0
40bb25:	8d 0c 00             	lea    (%eax,%eax,1),%ecx
40bb28:	6a 08                	push   $0x8
40bb2a:	58                   	pop    %eax
40bb2b:	3b c8                	cmp    %eax,%ecx
40bb2d:	72 02                	jb     0x40bb31
40bb2f:	8b c1                	mov    %ecx,%eax
40bb31:	33 c9                	xor    %ecx,%ecx
40bb33:	6a 04                	push   $0x4
40bb35:	5a                   	pop    %edx
40bb36:	89 47 0c             	mov    %eax,0xc(%edi)
40bb39:	f7 e2                	mul    %edx
40bb3b:	0f 90 c1             	seto   %cl
40bb3e:	f7 d9                	neg    %ecx
40bb40:	0b c8                	or     %eax,%ecx
40bb42:	51                   	push   %ecx
40bb43:	e8 a2 39 01 00       	call   0x41f4ea
40bb48:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
40bb4c:	59                   	pop    %ecx
40bb4d:	8b f0                	mov    %eax,%esi
40bb4f:	74 1f                	je     0x40bb70
40bb51:	8b 47 08             	mov    0x8(%edi),%eax
40bb54:	85 c0                	test   %eax,%eax
40bb56:	74 18                	je     0x40bb70
40bb58:	c1 e0 02             	shl    $0x2,%eax
40bb5b:	50                   	push   %eax
40bb5c:	ff 77 04             	push   0x4(%edi)
40bb5f:	56                   	push   %esi
40bb60:	e8 1b 33 01 00       	call   0x41ee80
40bb65:	ff 77 04             	push   0x4(%edi)
40bb68:	e8 f1 39 01 00       	call   0x41f55e
40bb6d:	83 c4 10             	add    $0x10,%esp
40bb70:	89 77 04             	mov    %esi,0x4(%edi)
40bb73:	e9 20 ff ff ff       	jmp    0x40ba98
40bb78:	dd 03                	fldl   (%ebx)
40bb7a:	dd 1e                	fstpl  (%esi)
40bb7c:	e9 5f ff ff ff       	jmp    0x40bae0
40bb81:	33 d2                	xor    %edx,%edx
40bb83:	eb 9c                	jmp    0x40bb21
40bb85:	55                   	push   %ebp
40bb86:	8b ec                	mov    %esp,%ebp
40bb88:	51                   	push   %ecx
40bb89:	51                   	push   %ecx
40bb8a:	8b 45 08             	mov    0x8(%ebp),%eax
40bb8d:	56                   	push   %esi
40bb8e:	8b f1                	mov    %ecx,%esi
40bb90:	40                   	inc    %eax
40bb91:	39 46 08             	cmp    %eax,0x8(%esi)
40bb94:	72 05                	jb     0x40bb9b
40bb96:	5e                   	pop    %esi
40bb97:	c9                   	leave
40bb98:	c2 04 00             	ret    $0x4
40bb9b:	3d c2 41 00 00       	cmp    $0x41c2,%eax
40bba0:	0f 83 d1 5f 06 00    	jae    0x471b77
40bba6:	03 c0                	add    %eax,%eax
40bba8:	89 46 08             	mov    %eax,0x8(%esi)
40bbab:	85 c0                	test   %eax,%eax
40bbad:	74 48                	je     0x40bbf7
40bbaf:	83 c0 07             	add    $0x7,%eax
40bbb2:	83 e0 f8             	and    $0xfffffff8,%eax
40bbb5:	57                   	push   %edi
40bbb6:	33 c9                	xor    %ecx,%ecx
40bbb8:	6a 02                	push   $0x2
40bbba:	5a                   	pop    %edx
40bbbb:	89 46 08             	mov    %eax,0x8(%esi)
40bbbe:	f7 e2                	mul    %edx
40bbc0:	0f 90 c1             	seto   %cl
40bbc3:	f7 d9                	neg    %ecx
40bbc5:	0b c8                	or     %eax,%ecx
40bbc7:	51                   	push   %ecx
40bbc8:	e8 a8 32 01 00       	call   0x41ee75
40bbcd:	83 3e 00             	cmpl   $0x0,(%esi)
40bbd0:	59                   	pop    %ecx