4708c3:	85 c9                	test   %ecx,%ecx
4708c5:	74 3f                	je     0x470906
4708c7:	e8 ec e4 ff ff       	call   0x46edb8
4708cc:	59                   	pop    %ecx
4708cd:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4708d0:	89 45 94             	mov    %eax,-0x6c(%ebp)
4708d3:	8b 45 c0             	mov    -0x40(%ebp),%eax
4708d6:	89 4d f4             	mov    %ecx,-0xc(%ebp)
4708d9:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4708dc:	6a 20                	push   $0x20
4708de:	89 55 98             	mov    %edx,-0x68(%ebp)
4708e1:	89 45 f8             	mov    %eax,-0x8(%ebp)
4708e4:	e8 a9 e3 ff ff       	call   0x46ec92
4708e9:	8d 45 94             	lea    -0x6c(%ebp),%eax
4708ec:	50                   	push   %eax
4708ed:	8d 45 ac             	lea    -0x54(%ebp),%eax
4708f0:	50                   	push   %eax
4708f1:	8d 4d f4             	lea    -0xc(%ebp),%ecx
4708f4:	e8 62 e2 ff ff       	call   0x46eb5b
4708f9:	8b 08                	mov    (%eax),%ecx
4708fb:	8b 40 04             	mov    0x4(%eax),%eax
4708fe:	89 4d bc             	mov    %ecx,-0x44(%ebp)
470901:	89 45 c0             	mov    %eax,-0x40(%ebp)
470904:	eb 78                	jmp    0x47097e
470906:	e8 ad e4 ff ff       	call   0x46edb8
47090b:	59                   	pop    %ecx
47090c:	89 45 8c             	mov    %eax,-0x74(%ebp)
47090f:	8d 4d bc             	lea    -0x44(%ebp),%ecx
470912:	8d 45 8c             	lea    -0x74(%ebp),%eax
470915:	89 55 90             	mov    %edx,-0x70(%ebp)
470918:	50                   	push   %eax
470919:	e8 3f e1 ff ff       	call   0x46ea5d
47091e:	eb 5e                	jmp    0x47097e
470920:	0f b7 05 96 83 4c 00 	movzwl 0x4c8396,%eax
470927:	0b 05 94 83 4c 00    	or     0x4c8394,%eax
47092d:	d1 e8                	shr    $1,%eax
47092f:	f7 d0                	not    %eax
470931:	a8 01                	test   $0x1,%al
470933:	74 49                	je     0x47097e
470935:	6a 0c                	push   $0xc
470937:	e8 7c e4 ff ff       	call   0x46edb8
47093c:	59                   	pop    %ecx
47093d:	85 f6                	test   %esi,%esi
47093f:	74 25                	je     0x470966
470941:	6a 20                	push   $0x20
470943:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
470946:	89 45 84             	mov    %eax,-0x7c(%ebp)
470949:	89 55 88             	mov    %edx,-0x78(%ebp)
47094c:	89 75 c4             	mov    %esi,-0x3c(%ebp)
47094f:	89 7d c8             	mov    %edi,-0x38(%ebp)
470952:	e8 3b e3 ff ff       	call   0x46ec92
470957:	8d 45 84             	lea    -0x7c(%ebp),%eax
47095a:	50                   	push   %eax
47095b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
47095e:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
470961:	e9 02 ff ff ff       	jmp    0x470868
470966:	89 45 e8             	mov    %eax,-0x18(%ebp)
470969:	8d 45 e8             	lea    -0x18(%ebp),%eax
47096c:	89 55 ec             	mov    %edx,-0x14(%ebp)
47096f:	50                   	push   %eax
470970:	8d 4d cc             	lea    -0x34(%ebp),%ecx
470973:	e8 e5 e0 ff ff       	call   0x46ea5d
470978:	8b 75 cc             	mov    -0x34(%ebp),%esi
47097b:	8b 7d d0             	mov    -0x30(%ebp),%edi
47097e:	8a 45 ff             	mov    -0x1(%ebp),%al
470981:	8a 4d f3             	mov    -0xd(%ebp),%cl
470984:	88 45 ff             	mov    %al,-0x1(%ebp)
470987:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
47098c:	40                   	inc    %eax
47098d:	88 4d f3             	mov    %cl,-0xd(%ebp)
470990:	a3 8c 83 4c 00       	mov    %eax,0x4c838c
470995:	80 38 24             	cmpb   $0x24,(%eax)
470998:	75 22                	jne    0x4709bc
47099a:	ff 75 18             	push   0x18(%ebp)
47099d:	8d 45 e7             	lea    -0x19(%ebp),%eax
4709a0:	50                   	push   %eax
4709a1:	8d 45 10             	lea    0x10(%ebp),%eax
4709a4:	50                   	push   %eax
4709a5:	8d 45 b4             	lea    -0x4c(%ebp),%eax
4709a8:	50                   	push   %eax
4709a9:	e8 c7 0c 00 00       	call   0x471675
4709ae:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
4709b1:	83 c4 10             	add    $0x10,%esp
4709b4:	85 c9                	test   %ecx,%ecx
4709b6:	0f 85 d3 04 00 00    	jne    0x470e8f
4709bc:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
4709c1:	33 c9                	xor    %ecx,%ecx
4709c3:	80 38 41             	cmpb   $0x41,(%eax)
4709c6:	0f be 18             	movsbl (%eax),%ebx
4709c9:	0f 9c c1             	setl   %cl
4709cc:	49                   	dec    %ecx
4709cd:	83 e1 2b             	and    $0x2b,%ecx
4709d0:	83 c1 16             	add    $0x16,%ecx
4709d3:	2b d9                	sub    %ecx,%ebx
4709d5:	8b 4d bc             	mov    -0x44(%ebp),%ecx
4709d8:	e9 20 fe ff ff       	jmp    0x4707fd
4709dd:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
4709e2:	80 38 00             	cmpb   $0x0,(%eax)
4709e5:	74 06                	je     0x4709ed
4709e7:	ff 05 8c 83 4c 00    	incl   0x4c838c
4709ed:	83 fb 1f             	cmp    $0x1f,%ebx
4709f0:	0f 87 95 04 00 00    	ja     0x470e8b
4709f6:	8b 45 10             	mov    0x10(%ebp),%eax
4709f9:	8b 0c c5 b8 0b 4a 00 	mov    0x4a0bb8(,%eax,8),%ecx
470a00:	8b 3c c5 bc 0b 4a 00 	mov    0x4a0bbc(,%eax,8),%edi
470a07:	8d 45 e8             	lea    -0x18(%ebp),%eax
470a0a:	89 4d e8             	mov    %ecx,-0x18(%ebp)
470a0d:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470a10:	50                   	push   %eax
470a11:	89 7d ec             	mov    %edi,-0x14(%ebp)
470a14:	e8 cd dd ff ff       	call   0x46e7e6
470a19:	83 65 dc 00          	andl   $0x0,-0x24(%ebp)
470a1d:	8d 45 f4             	lea    -0xc(%ebp),%eax
470a20:	83 65 e0 00          	andl   $0x0,-0x20(%ebp)
470a24:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470a27:	50                   	push   %eax
470a28:	e8 0e e2 ff ff       	call   0x46ec3b
470a2d:	8b 45 dc             	mov    -0x24(%ebp),%eax
470a30:	8b 4d e0             	mov    -0x20(%ebp),%ecx
470a33:	89 45 f4             	mov    %eax,-0xc(%ebp)
470a36:	89 4d f8             	mov    %ecx,-0x8(%ebp)
470a39:	85 f6                	test   %esi,%esi
470a3b:	74 6c                	je     0x470aa9
470a3d:	89 45 dc             	mov    %eax,-0x24(%ebp)
470a40:	89 4d e0             	mov    %ecx,-0x20(%ebp)
470a43:	80 f9 01             	cmp    $0x1,%cl
470a46:	7f 46                	jg     0x470a8e
470a48:	85 c0                	test   %eax,%eax
470a4a:	75 12                	jne    0x470a5e
470a4c:	21 45 dc             	and    %eax,-0x24(%ebp)
470a4f:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470a52:	21 45 e0             	and    %eax,-0x20(%ebp)
470a55:	6a 20                	push   $0x20
470a57:	e8 7b f0 ff ff       	call   0x46fad7
470a5c:	eb 30                	jmp    0x470a8e
470a5e:	6a 08                	push   $0x8
470a60:	b9 a8 83 4c 00       	mov    $0x4c83a8,%ecx
470a65:	e8 c9 13 00 00       	call   0x471e33
470a6a:	8b f0                	mov    %eax,%esi
470a6c:	85 f6                	test   %esi,%esi
470a6e:	74 13                	je     0x470a83
470a70:	8b ce                	mov    %esi,%ecx
470a72:	e8 24 df ff ff       	call   0x46e99b
470a77:	c7 06 58 16 4a 00    	movl   $0x4a1658,(%esi)
470a7d:	c6 46 04 20          	movb   $0x20,0x4(%esi)
470a81:	eb 02                	jmp    0x470a85
470a83:	33 f6                	xor    %esi,%esi
470a85:	56                   	push   %esi
470a86:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470a89:	e8 ff da ff ff       	call   0x46e58d
470a8e:	8d 45 cc             	lea    -0x34(%ebp),%eax
470a91:	50                   	push   %eax
470a92:	8d 45 d4             	lea    -0x2c(%ebp),%eax
470a95:	50                   	push   %eax
470a96:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470a99:	e8 df e0 ff ff       	call   0x46eb7d
470a9e:	8b 08                	mov    (%eax),%ecx
470aa0:	8b 40 04             	mov    0x4(%eax),%eax
470aa3:	89 4d f4             	mov    %ecx,-0xc(%ebp)
470aa6:	89 45 f8             	mov    %eax,-0x8(%ebp)
470aa9:	8b 4d bc             	mov    -0x44(%ebp),%ecx
470aac:	85 c9                	test   %ecx,%ecx
470aae:	74 2e                	je     0x470ade
470ab0:	8b 45 c0             	mov    -0x40(%ebp),%eax
470ab3:	89 4d c4             	mov    %ecx,-0x3c(%ebp)
470ab6:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
470ab9:	6a 20                	push   $0x20
470abb:	89 45 c8             	mov    %eax,-0x38(%ebp)
470abe:	e8 cf e1 ff ff       	call   0x46ec92
470ac3:	8d 45 f4             	lea    -0xc(%ebp),%eax
470ac6:	50                   	push   %eax
470ac7:	8d 45 d4             	lea    -0x2c(%ebp),%eax
470aca:	50                   	push   %eax
470acb:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
470ace:	e8 aa e0 ff ff       	call   0x46eb7d
470ad3:	8b 08                	mov    (%eax),%ecx
470ad5:	8b 40 04             	mov    0x4(%eax),%eax
470ad8:	89 4d f4             	mov    %ecx,-0xc(%ebp)
470adb:	89 45 f8             	mov    %eax,-0x8(%ebp)
470ade:	f6 c3 10             	test   $0x10,%bl
470ae1:	0f 84 f5 00 00 00    	je     0x470bdc
470ae7:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
470aeb:	0f 85 9a 03 00 00    	jne    0x470e8b
470af1:	85 ff                	test   %edi,%edi
470af3:	0f 8e 89 00 00 00    	jle    0x470b82
470af9:	8d 45 e8             	lea    -0x18(%ebp),%eax
470afc:	c7 45 e8 18 12 4a 00 	movl   $0x4a1218,-0x18(%ebp)
470b03:	50                   	push   %eax
470b04:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
470b07:	c7 45 ec 02 00 00 00 	movl   $0x2,-0x14(%ebp)
470b0e:	e8 d3 dc ff ff       	call   0x46e7e6
470b13:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470b16:	51                   	push   %ecx
470b17:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470b1a:	51                   	push   %ecx
470b1b:	8b c8                	mov    %eax,%ecx
470b1d:	e8 5b e0 ff ff       	call   0x46eb7d
470b22:	8b 45 e8             	mov    -0x18(%ebp),%eax
470b25:	89 45 f4             	mov    %eax,-0xc(%ebp)
470b28:	8b 45 ec             	mov    -0x14(%ebp),%eax
470b2b:	89 45 f8             	mov    %eax,-0x8(%ebp)
470b2e:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
470b33:	80 38 00             	cmpb   $0x0,(%eax)
470b36:	74 23                	je     0x470b5b
470b38:	8d 45 d4             	lea    -0x2c(%ebp),%eax
470b3b:	50                   	push   %eax
470b3c:	e8 24 24 00 00       	call   0x472f65
470b41:	59                   	pop    %ecx
470b42:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470b45:	51                   	push   %ecx
470b46:	8d 4d ac             	lea    -0x54(%ebp),%ecx
470b49:	51                   	push   %ecx
470b4a:	8b c8                	mov    %eax,%ecx
470b4c:	e8 2c e0 ff ff       	call   0x46eb7d
470b51:	8b 08                	mov    (%eax),%ecx
470b53:	8b 40 04             	mov    0x4(%eax),%eax
470b56:	89 4d f4             	mov    %ecx,-0xc(%ebp)
470b59:	eb 22                	jmp    0x470b7d
470b5b:	6a 01                	push   $0x1
470b5d:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
470b60:	e8 f1 dc ff ff       	call   0x46e856
470b65:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470b68:	51                   	push   %ecx
470b69:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470b6c:	51                   	push   %ecx
470b6d:	8b c8                	mov    %eax,%ecx
470b6f:	e8 09 e0 ff ff       	call   0x46eb7d
470b74:	8b 45 e8             	mov    -0x18(%ebp),%eax
470b77:	89 45 f4             	mov    %eax,-0xc(%ebp)
470b7a:	8b 45 ec             	mov    -0x14(%ebp),%eax
470b7d:	89 45 f8             	mov    %eax,-0x8(%ebp)
470b80:	eb 1d                	jmp    0x470b9f
470b82:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
470b87:	80 38 00             	cmpb   $0x0,(%eax)
470b8a:	74 13                	je     0x470b9f
470b8c:	8d 45 d4             	lea    -0x2c(%ebp),%eax
470b8f:	50                   	push   %eax
470b90:	e8 d0 23 00 00       	call   0x472f65
470b95:	59                   	pop    %ecx
470b96:	50                   	push   %eax
470b97:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470b9a:	e8 c8 e1 ff ff       	call   0x46ed67
470b9f:	a1 8c 83 4c 00       	mov    0x4c838c,%eax
470ba4:	8a 00                	mov    (%eax),%al
470ba6:	84 c0                	test   %al,%al
470ba8:	75 24                	jne    0x470bce
470baa:	80 7d f8 01          	cmpb   $0x1,-0x8(%ebp)
470bae:	7f 2c                	jg     0x470bdc
470bb0:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
470bb4:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470bb7:	74 0c                	je     0x470bc5
470bb9:	68 cc 17 4a 00       	push   $0x4a17cc
470bbe:	e8 ca d9 ff ff       	call   0x46e58d
470bc3:	eb 17                	jmp    0x470bdc
470bc5:	6a 01                	push   $0x1
470bc7:	e8 b2 de ff ff       	call   0x46ea7e
470bcc:	eb 0e                	jmp    0x470bdc
470bce:	ff 05 8c 83 4c 00    	incl   0x4c838c
470bd4:	3c 40                	cmp    $0x40,%al
470bd6:	0f 85 af 02 00 00    	jne    0x470e8b
470bdc:	a1 94 83 4c 00       	mov    0x4c8394,%eax
470be1:	8b cb                	mov    %ebx,%ecx
470be3:	d1 e8                	shr    $1,%eax
470be5:	83 e1 0c             	and    $0xc,%ecx
470be8:	f7 d0                	not    %eax
470bea:	a8 01                	test   $0x1,%al
470bec:	74 35                	je     0x470c23
470bee:	83 f9 0c             	cmp    $0xc,%ecx
470bf1:	75 48                	jne    0x470c3b
470bf3:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
470bf7:	0f 85 8e 02 00 00    	jne    0x470e8b
470bfd:	8d 45 d4             	lea    -0x2c(%ebp),%eax
470c00:	50                   	push   %eax
470c01:	e8 7f f4 ff ff       	call   0x470085
470c06:	59                   	pop    %ecx
470c07:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470c0a:	51                   	push   %ecx
470c0b:	8d 4d ac             	lea    -0x54(%ebp),%ecx
470c0e:	51                   	push   %ecx
470c0f:	8b c8                	mov    %eax,%ecx
470c11:	e8 67 df ff ff       	call   0x46eb7d
470c16:	8b 08                	mov    (%eax),%ecx
470c18:	8b 40 04             	mov    0x4(%eax),%eax
470c1b:	89 4d f4             	mov    %ecx,-0xc(%ebp)
470c1e:	89 45 f8             	mov    %eax,-0x8(%ebp)
470c21:	eb 18                	jmp    0x470c3b
470c23:	83 f9 0c             	cmp    $0xc,%ecx
470c26:	75 13                	jne    0x470c3b
470c28:	8d 45 d4             	lea    -0x2c(%ebp),%eax
470c2b:	50                   	push   %eax
470c2c:	e8 54 f4 ff ff       	call   0x470085
470c31:	59                   	pop    %ecx
470c32:	50                   	push   %eax
470c33:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470c36:	e8 2c e1 ff ff       	call   0x46ed67
470c3b:	f6 c3 02             	test   $0x2,%bl
470c3e:	74 35                	je     0x470c75
470c40:	8d 45 e8             	lea    -0x18(%ebp),%eax
470c43:	c7 45 e8 60 14 4a 00 	movl   $0x4a1460,-0x18(%ebp)
470c4a:	50                   	push   %eax
470c4b:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
470c4e:	c7 45 ec 09 00 00 00 	movl   $0x9,-0x14(%ebp)
470c55:	e8 8c db ff ff       	call   0x46e7e6
470c5a:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470c5d:	51                   	push   %ecx
470c5e:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470c61:	51                   	push   %ecx
470c62:	8b c8                	mov    %eax,%ecx
470c64:	e8 14 df ff ff       	call   0x46eb7d
470c69:	8b 45 e8             	mov    -0x18(%ebp),%eax
470c6c:	89 45 f4             	mov    %eax,-0xc(%ebp)
470c6f:	8b 45 ec             	mov    -0x14(%ebp),%eax
470c72:	89 45 f8             	mov    %eax,-0x8(%ebp)
470c75:	f6 c3 01             	test   $0x1,%bl
470c78:	74 35                	je     0x470caf
470c7a:	8d 45 e8             	lea    -0x18(%ebp),%eax
470c7d:	c7 45 e8 fc 15 4a 00 	movl   $0x4a15fc,-0x18(%ebp)
470c84:	50                   	push   %eax
470c85:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
470c88:	c7 45 ec 06 00 00 00 	movl   $0x6,-0x14(%ebp)
470c8f:	e8 52 db ff ff       	call   0x46e7e6
470c94:	8d 4d f4             	lea    -0xc(%ebp),%ecx
470c97:	51                   	push   %ecx
470c98:	8d 4d e8             	lea    -0x18(%ebp),%ecx
470c9b:	51                   	push   %ecx
470c9c:	8b c8                	mov    %eax,%ecx
470c9e:	e8 da de ff ff       	call   0x46eb7d
470ca3:	8b 45 e8             	mov    -0x18(%ebp),%eax
470ca6:	89 45 f4             	mov    %eax,-0xc(%ebp)
470ca9:	8b 45 ec             	mov    -0x14(%ebp),%eax
470cac:	89 45 f8             	mov    %eax,-0x8(%ebp)
470caf:	80 7d ff 00          	cmpb   $0x0,-0x1(%ebp)
470cb3:	74 6f                	je     0x470d24
470cb5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
470cb8:	bf 04 16 4a 00       	mov    $0x4a1604,%edi
470cbd:	8b 45 f4             	mov    -0xc(%ebp),%eax
470cc0:	89 7d e8             	mov    %edi,-0x18(%ebp)
470cc3:	89 45 dc             	mov    %eax,-0x24(%ebp)
470cc6:	89 4d e0             	mov    %ecx,-0x20(%ebp)
470cc9:	6a 02                	push   $0x2
470ccb:	5b                   	pop    %ebx
470ccc:	89 5d ec             	mov    %ebx,-0x14(%ebp)
470ccf:	80 f9 01             	cmp    $0x1,%cl
470cd2:	7f 44                	jg     0x470d18
470cd4:	85 c0                	test   %eax,%eax
470cd6:	75 0e                	jne    0x470ce6
470cd8:	8d 45 e8             	lea    -0x18(%ebp),%eax
470cdb:	50                   	push   %eax
470cdc:	8d 4d dc             	lea    -0x24(%ebp),%ecx
470cdf:	e8 79 dd ff ff       	call   0x46ea5d