409841:	7c d0                	jl     0x409813
409843:	8b f0                	mov    %eax,%esi
409845:	6a 02                	push   $0x2
409847:	c1 e6 02             	shl    $0x2,%esi
40984a:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40984d:	5a                   	pop    %edx
40984e:	2b ce                	sub    %esi,%ecx
409850:	3b d0                	cmp    %eax,%edx
409852:	7c 08                	jl     0x40985c
409854:	8b 31                	mov    (%ecx),%esi
409856:	89 74 95 e0          	mov    %esi,-0x20(%ebp,%edx,4)
40985a:	eb 05                	jmp    0x409861
40985c:	83 64 95 e0 00       	andl   $0x0,-0x20(%ebp,%edx,4)
409861:	4a                   	dec    %edx
409862:	83 e9 04             	sub    $0x4,%ecx
409865:	85 d2                	test   %edx,%edx
409867:	7d e7                	jge    0x409850
409869:	33 c0                	xor    %eax,%eax
40986b:	5e                   	pop    %esi
40986c:	6a 1f                	push   $0x1f
40986e:	59                   	pop    %ecx
40986f:	2b 0d 44 fd 41 00    	sub    0x41fd44,%ecx
409875:	d3 e3                	shl    %cl,%ebx
409877:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40987a:	f7 d9                	neg    %ecx
40987c:	1b c9                	sbb    %ecx,%ecx
40987e:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
409884:	0b d9                	or     %ecx,%ebx
409886:	8b 0d 48 fd 41 00    	mov    0x41fd48,%ecx
40988c:	0b 5d e0             	or     -0x20(%ebp),%ebx
40988f:	83 f9 40             	cmp    $0x40,%ecx
409892:	75 0d                	jne    0x4098a1
409894:	8b 4d 0c             	mov    0xc(%ebp),%ecx
409897:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40989a:	89 59 04             	mov    %ebx,0x4(%ecx)
40989d:	89 11                	mov    %edx,(%ecx)
40989f:	eb 0a                	jmp    0x4098ab
4098a1:	83 f9 20             	cmp    $0x20,%ecx
4098a4:	75 05                	jne    0x4098ab
4098a6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4098a9:	89 19                	mov    %ebx,(%ecx)
4098ab:	5f                   	pop    %edi
4098ac:	5b                   	pop    %ebx
4098ad:	c9                   	leave
4098ae:	c3                   	ret
4098af:	8b ff                	mov    %edi,%edi
4098b1:	55                   	push   %ebp
4098b2:	8b ec                	mov    %esp,%ebp
4098b4:	83 ec 7c             	sub    $0x7c,%esp
4098b7:	a1 04 f0 41 00       	mov    0x41f004,%eax
4098bc:	33 c5                	xor    %ebp,%eax
4098be:	89 45 fc             	mov    %eax,-0x4(%ebp)
4098c1:	8b 45 08             	mov    0x8(%ebp),%eax
4098c4:	53                   	push   %ebx
4098c5:	33 db                	xor    %ebx,%ebx
4098c7:	56                   	push   %esi
4098c8:	33 f6                	xor    %esi,%esi
4098ca:	89 45 88             	mov    %eax,-0x78(%ebp)
4098cd:	8b 45 0c             	mov    0xc(%ebp),%eax
4098d0:	46                   	inc    %esi
4098d1:	33 c9                	xor    %ecx,%ecx
4098d3:	57                   	push   %edi
4098d4:	89 45 90             	mov    %eax,-0x70(%ebp)
4098d7:	8d 7d e0             	lea    -0x20(%ebp),%edi
4098da:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
4098dd:	89 75 98             	mov    %esi,-0x68(%ebp)
4098e0:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
4098e3:	89 5d a8             	mov    %ebx,-0x58(%ebp)
4098e6:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
4098e9:	89 5d a0             	mov    %ebx,-0x60(%ebp)
4098ec:	89 5d 9c             	mov    %ebx,-0x64(%ebp)
4098ef:	89 5d b0             	mov    %ebx,-0x50(%ebp)
4098f2:	89 5d 94             	mov    %ebx,-0x6c(%ebp)
4098f5:	39 5d 24             	cmp    %ebx,0x24(%ebp)
4098f8:	75 1f                	jne    0x409919
4098fa:	e8 4d 95 ff ff       	call   0x402e4c
4098ff:	53                   	push   %ebx
409900:	53                   	push   %ebx
409901:	53                   	push   %ebx
409902:	53                   	push   %ebx
409903:	53                   	push   %ebx
409904:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40990a:	e8 32 a3 ff ff       	call   0x403c41
40990f:	83 c4 14             	add    $0x14,%esp
409912:	33 c0                	xor    %eax,%eax
409914:	e9 4e 06 00 00       	jmp    0x409f67
409919:	8b 55 10             	mov    0x10(%ebp),%edx
40991c:	89 55 ac             	mov    %edx,-0x54(%ebp)
40991f:	8a 02                	mov    (%edx),%al
409921:	3c 20                	cmp    $0x20,%al
409923:	74 0c                	je     0x409931
409925:	3c 09                	cmp    $0x9,%al
409927:	74 08                	je     0x409931
409929:	3c 0a                	cmp    $0xa,%al
40992b:	74 04                	je     0x409931
40992d:	3c 0d                	cmp    $0xd,%al
40992f:	75 03                	jne    0x409934
409931:	42                   	inc    %edx
409932:	eb eb                	jmp    0x40991f
409934:	b3 30                	mov    $0x30,%bl
409936:	8a 02                	mov    (%edx),%al
409938:	42                   	inc    %edx
409939:	83 f9 0b             	cmp    $0xb,%ecx
40993c:	0f 87 2f 02 00 00    	ja     0x409b71
409942:	ff 24 8d 77 9f 40 00 	jmp    *0x409f77(,%ecx,4)
409949:	8a c8                	mov    %al,%cl
40994b:	80 e9 31             	sub    $0x31,%cl
40994e:	80 f9 08             	cmp    $0x8,%cl
409951:	77 06                	ja     0x409959
409953:	6a 03                	push   $0x3
409955:	59                   	pop    %ecx
409956:	4a                   	dec    %edx
409957:	eb dd                	jmp    0x409936
409959:	8b 4d 24             	mov    0x24(%ebp),%ecx
40995c:	8b 09                	mov    (%ecx),%ecx
40995e:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
409964:	8b 09                	mov    (%ecx),%ecx
409966:	3a 01                	cmp    (%ecx),%al
409968:	75 05                	jne    0x40996f
40996a:	6a 05                	push   $0x5
40996c:	59                   	pop    %ecx
40996d:	eb c7                	jmp    0x409936
40996f:	0f be c0             	movsbl %al,%eax
409972:	83 e8 2b             	sub    $0x2b,%eax
409975:	74 1d                	je     0x409994
409977:	48                   	dec    %eax
409978:	48                   	dec    %eax
409979:	74 0d                	je     0x409988
40997b:	83 e8 03             	sub    $0x3,%eax
40997e:	0f 85 8b 01 00 00    	jne    0x409b0f
409984:	8b ce                	mov    %esi,%ecx
409986:	eb ae                	jmp    0x409936
409988:	6a 02                	push   $0x2
40998a:	59                   	pop    %ecx
40998b:	c7 45 8c 00 80 00 00 	movl   $0x8000,-0x74(%ebp)
409992:	eb a2                	jmp    0x409936
409994:	83 65 8c 00          	andl   $0x0,-0x74(%ebp)
409998:	6a 02                	push   $0x2
40999a:	59                   	pop    %ecx
40999b:	eb 99                	jmp    0x409936
40999d:	8a c8                	mov    %al,%cl
40999f:	80 e9 31             	sub    $0x31,%cl
4099a2:	89 75 a8             	mov    %esi,-0x58(%ebp)
4099a5:	80 f9 08             	cmp    $0x8,%cl
4099a8:	76 a9                	jbe    0x409953
4099aa:	8b 4d 24             	mov    0x24(%ebp),%ecx
4099ad:	8b 09                	mov    (%ecx),%ecx
4099af:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
4099b5:	8b 09                	mov    (%ecx),%ecx
4099b7:	3a 01                	cmp    (%ecx),%al
4099b9:	75 04                	jne    0x4099bf
4099bb:	6a 04                	push   $0x4
4099bd:	eb ad                	jmp    0x40996c
4099bf:	3c 2b                	cmp    $0x2b,%al
4099c1:	74 28                	je     0x4099eb
4099c3:	3c 2d                	cmp    $0x2d,%al
4099c5:	74 24                	je     0x4099eb
4099c7:	3a c3                	cmp    %bl,%al
4099c9:	74 b9                	je     0x409984
4099cb:	3c 43                	cmp    $0x43,%al
4099cd:	0f 8e 3c 01 00 00    	jle    0x409b0f
4099d3:	3c 45                	cmp    $0x45,%al
4099d5:	7e 10                	jle    0x4099e7
4099d7:	3c 63                	cmp    $0x63,%al
4099d9:	0f 8e 30 01 00 00    	jle    0x409b0f
4099df:	3c 65                	cmp    $0x65,%al
4099e1:	0f 8f 28 01 00 00    	jg     0x409b0f
4099e7:	6a 06                	push   $0x6
4099e9:	eb 81                	jmp    0x40996c
4099eb:	4a                   	dec    %edx
4099ec:	6a 0b                	push   $0xb
4099ee:	e9 79 ff ff ff       	jmp    0x40996c
4099f3:	8a c8                	mov    %al,%cl
4099f5:	80 e9 31             	sub    $0x31,%cl
4099f8:	80 f9 08             	cmp    $0x8,%cl
4099fb:	0f 86 52 ff ff ff    	jbe    0x409953
409a01:	8b 4d 24             	mov    0x24(%ebp),%ecx
409a04:	8b 09                	mov    (%ecx),%ecx
409a06:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
409a0c:	8b 09                	mov    (%ecx),%ecx
409a0e:	3a 01                	cmp    (%ecx),%al
409a10:	0f 84 54 ff ff ff    	je     0x40996a
409a16:	3a c3                	cmp    %bl,%al
409a18:	0f 84 66 ff ff ff    	je     0x409984
409a1e:	8b 55 ac             	mov    -0x54(%ebp),%edx
409a21:	e9 14 01 00 00       	jmp    0x409b3a
409a26:	89 75 a8             	mov    %esi,-0x58(%ebp)
409a29:	eb 1a                	jmp    0x409a45
409a2b:	3c 39                	cmp    $0x39,%al
409a2d:	7f 1a                	jg     0x409a49
409a2f:	83 7d b4 19          	cmpl   $0x19,-0x4c(%ebp)
409a33:	73 0a                	jae    0x409a3f
409a35:	ff 45 b4             	incl   -0x4c(%ebp)
409a38:	2a c3                	sub    %bl,%al
409a3a:	88 07                	mov    %al,(%edi)
409a3c:	47                   	inc    %edi
409a3d:	eb 03                	jmp    0x409a42
409a3f:	ff 45 b0             	incl   -0x50(%ebp)
409a42:	8a 02                	mov    (%edx),%al
409a44:	42                   	inc    %edx
409a45:	3a c3                	cmp    %bl,%al
409a47:	7d e2                	jge    0x409a2b
409a49:	8b 4d 24             	mov    0x24(%ebp),%ecx
409a4c:	8b 09                	mov    (%ecx),%ecx
409a4e:	8b 89 bc 00 00 00    	mov    0xbc(%ecx),%ecx
409a54:	8b 09                	mov    (%ecx),%ecx
409a56:	3a 01                	cmp    (%ecx),%al
409a58:	0f 84 5d ff ff ff    	je     0x4099bb
409a5e:	3c 2b                	cmp    $0x2b,%al
409a60:	74 89                	je     0x4099eb
409a62:	3c 2d                	cmp    $0x2d,%al
409a64:	74 85                	je     0x4099eb
409a66:	e9 60 ff ff ff       	jmp    0x4099cb
409a6b:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
409a6f:	89 75 a8             	mov    %esi,-0x58(%ebp)
409a72:	89 75 a4             	mov    %esi,-0x5c(%ebp)
409a75:	75 26                	jne    0x409a9d
409a77:	eb 06                	jmp    0x409a7f
409a79:	ff 4d b0             	decl   -0x50(%ebp)
409a7c:	8a 02                	mov    (%edx),%al
409a7e:	42                   	inc    %edx
409a7f:	3a c3                	cmp    %bl,%al
409a81:	74 f6                	je     0x409a79
409a83:	eb 18                	jmp    0x409a9d
409a85:	3c 39                	cmp    $0x39,%al
409a87:	7f d5                	jg     0x409a5e
409a89:	83 7d b4 19          	cmpl   $0x19,-0x4c(%ebp)
409a8d:	73 0b                	jae    0x409a9a
409a8f:	ff 45 b4             	incl   -0x4c(%ebp)
409a92:	2a c3                	sub    %bl,%al
409a94:	88 07                	mov    %al,(%edi)
409a96:	47                   	inc    %edi
409a97:	ff 4d b0             	decl   -0x50(%ebp)
409a9a:	8a 02                	mov    (%edx),%al
409a9c:	42                   	inc    %edx
409a9d:	3a c3                	cmp    %bl,%al
409a9f:	7d e4                	jge    0x409a85
409aa1:	eb bb                	jmp    0x409a5e
409aa3:	2a c3                	sub    %bl,%al
409aa5:	89 75 a4             	mov    %esi,-0x5c(%ebp)
409aa8:	3c 09                	cmp    $0x9,%al
409aaa:	0f 87 6e ff ff ff    	ja     0x409a1e
409ab0:	6a 04                	push   $0x4
409ab2:	e9 9e fe ff ff       	jmp    0x409955
409ab7:	8d 4a fe             	lea    -0x2(%edx),%ecx
409aba:	89 4d ac             	mov    %ecx,-0x54(%ebp)
409abd:	8a c8                	mov    %al,%cl
409abf:	80 e9 31             	sub    $0x31,%cl
409ac2:	80 f9 08             	cmp    $0x8,%cl
409ac5:	77 07                	ja     0x409ace
409ac7:	6a 09                	push   $0x9
409ac9:	e9 87 fe ff ff       	jmp    0x409955
409ace:	0f be c0             	movsbl %al,%eax
409ad1:	83 e8 2b             	sub    $0x2b,%eax
409ad4:	74 20                	je     0x409af6
409ad6:	48                   	dec    %eax
409ad7:	48                   	dec    %eax
409ad8:	74 10                	je     0x409aea
409ada:	83 e8 03             	sub    $0x3,%eax
409add:	0f 85 3b ff ff ff    	jne    0x409a1e
409ae3:	6a 08                	push   $0x8
409ae5:	e9 82 fe ff ff       	jmp    0x40996c
409aea:	83 4d 98 ff          	orl    $0xffffffff,-0x68(%ebp)
409aee:	6a 07                	push   $0x7
409af0:	59                   	pop    %ecx
409af1:	e9 40 fe ff ff       	jmp    0x409936
409af6:	6a 07                	push   $0x7
409af8:	e9 6f fe ff ff       	jmp    0x40996c
409afd:	89 75 a0             	mov    %esi,-0x60(%ebp)
409b00:	eb 03                	jmp    0x409b05
409b02:	8a 02                	mov    (%edx),%al
409b04:	42                   	inc    %edx
409b05:	3a c3                	cmp    %bl,%al
409b07:	74 f9                	je     0x409b02
409b09:	2c 31                	sub    $0x31,%al
409b0b:	3c 08                	cmp    $0x8,%al
409b0d:	76 b8                	jbe    0x409ac7
409b0f:	4a                   	dec    %edx
409b10:	eb 28                	jmp    0x409b3a
409b12:	8a c8                	mov    %al,%cl
409b14:	80 e9 31             	sub    $0x31,%cl
409b17:	80 f9 08             	cmp    $0x8,%cl
409b1a:	76 ab                	jbe    0x409ac7
409b1c:	3a c3                	cmp    %bl,%al
409b1e:	eb bd                	jmp    0x409add
409b20:	83 7d 20 00          	cmpl   $0x0,0x20(%ebp)
409b24:	74 47                	je     0x409b6d
409b26:	0f be c0             	movsbl %al,%eax
409b29:	83 e8 2b             	sub    $0x2b,%eax
409b2c:	8d 4a ff             	lea    -0x1(%edx),%ecx
409b2f:	89 4d ac             	mov    %ecx,-0x54(%ebp)
409b32:	74 c2                	je     0x409af6
409b34:	48                   	dec    %eax
409b35:	48                   	dec    %eax
409b36:	74 b2                	je     0x409aea
409b38:	8b d1                	mov    %ecx,%edx
409b3a:	83 7d a8 00          	cmpl   $0x0,-0x58(%ebp)
409b3e:	8b 45 90             	mov    -0x70(%ebp),%eax
409b41:	89 10                	mov    %edx,(%eax)
409b43:	0f 84 d9 03 00 00    	je     0x409f22
409b49:	6a 18                	push   $0x18
409b4b:	58                   	pop    %eax
409b4c:	39 45 b4             	cmp    %eax,-0x4c(%ebp)
409b4f:	76 10                	jbe    0x409b61
409b51:	80 7d f7 05          	cmpb   $0x5,-0x9(%ebp)
409b55:	7c 03                	jl     0x409b5a
409b57:	fe 45 f7             	incb   -0x9(%ebp)
409b5a:	4f                   	dec    %edi
409b5b:	ff 45 b0             	incl   -0x50(%ebp)
409b5e:	89 45 b4             	mov    %eax,-0x4c(%ebp)
409b61:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
409b65:	0f 86 de 03 00 00    	jbe    0x409f49
409b6b:	eb 59                	jmp    0x409bc6
409b6d:	6a 0a                	push   $0xa
409b6f:	59                   	pop    %ecx
409b70:	4a                   	dec    %edx
409b71:	83 f9 0a             	cmp    $0xa,%ecx
409b74:	0f 85 bc fd ff ff    	jne    0x409936
409b7a:	eb be                	jmp    0x409b3a
409b7c:	89 75 a0             	mov    %esi,-0x60(%ebp)
409b7f:	33 c9                	xor    %ecx,%ecx
409b81:	eb 19                	jmp    0x409b9c
409b83:	3c 39                	cmp    $0x39,%al
409b85:	7f 20                	jg     0x409ba7
409b87:	6b c9 0a             	imul   $0xa,%ecx,%ecx
409b8a:	0f be f0             	movsbl %al,%esi
409b8d:	8d 4c 31 d0          	lea    -0x30(%ecx,%esi,1),%ecx
409b91:	81 f9 50 14 00 00    	cmp    $0x1450,%ecx
409b97:	7f 09                	jg     0x409ba2
409b99:	8a 02                	mov    (%edx),%al
409b9b:	42                   	inc    %edx
409b9c:	3a c3                	cmp    %bl,%al
409b9e:	7d e3                	jge    0x409b83
409ba0:	eb 05                	jmp    0x409ba7
409ba2:	b9 51 14 00 00       	mov    $0x1451,%ecx
409ba7:	89 4d 9c             	mov    %ecx,-0x64(%ebp)
409baa:	eb 0b                	jmp    0x409bb7
409bac:	3c 39                	cmp    $0x39,%al
409bae:	0f 8f 5b ff ff ff    	jg     0x409b0f
409bb4:	8a 02                	mov    (%edx),%al
409bb6:	42                   	inc    %edx
409bb7:	3a c3                	cmp    %bl,%al
409bb9:	7d f1                	jge    0x409bac
409bbb:	e9 4f ff ff ff       	jmp    0x409b0f
409bc0:	ff 4d b4             	decl   -0x4c(%ebp)
409bc3:	ff 45 b0             	incl   -0x50(%ebp)
409bc6:	4f                   	dec    %edi
409bc7:	80 3f 00             	cmpb   $0x0,(%edi)
409bca:	74 f4                	je     0x409bc0
409bcc:	8d 45 c4             	lea    -0x3c(%ebp),%eax