4729b5:	66 83 38 5c          	cmpw   $0x5c,(%eax)
4729b9:	0f 84 84 00 00 00    	je     0x472a43
4729bf:	57                   	push   %edi
4729c0:	8b ce                	mov    %esi,%ecx
4729c2:	e8 bf f6 f8 ff       	call   0x402086
4729c7:	66 83 38 24          	cmpw   $0x24,(%eax)
4729cb:	74 76                	je     0x472a43
4729cd:	57                   	push   %edi
4729ce:	8b ce                	mov    %esi,%ecx
4729d0:	e8 b1 f6 f8 ff       	call   0x402086
4729d5:	0f b7 00             	movzwl (%eax),%eax
4729d8:	50                   	push   %eax
4729d9:	e8 47 f3 fa ff       	call   0x421d25
4729de:	83 c4 04             	add    $0x4,%esp
4729e1:	85 c0                	test   %eax,%eax
4729e3:	74 2e                	je     0x472a13
4729e5:	6a 00                	push   $0x0
4729e7:	8d 45 fc             	lea    -0x4(%ebp),%eax
4729ea:	50                   	push   %eax
4729eb:	4f                   	dec    %edi
4729ec:	56                   	push   %esi
4729ed:	89 7d fc             	mov    %edi,-0x4(%ebp)
4729f0:	e8 00 f9 fc ff       	call   0x4422f5
4729f5:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
4729f8:	51                   	push   %ecx
4729f9:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
4729fc:	50                   	push   %eax
4729fd:	e8 af f6 fc ff       	call   0x4420b1
472a02:	8d 45 c4             	lea    -0x3c(%ebp),%eax
472a05:	50                   	push   %eax
472a06:	8b cb                	mov    %ebx,%ecx
472a08:	e8 00 27 f9 ff       	call   0x40510d
472a0d:	ff 45 f4             	incl   -0xc(%ebp)
472a10:	8b 7d fc             	mov    -0x4(%ebp),%edi
472a13:	dd 05 10 27 4b 00    	fldl   0x4b2710
472a19:	dd 05 08 27 4b 00    	fldl   0x4b2708
472a1f:	dd 05 00 27 4b 00    	fldl   0x4b2700
472a25:	e9 46 86 f9 ff       	jmp    0x40b070
472a2a:	6a 01                	push   $0x1
472a2c:	dd da                	fstp   %st(2)
472a2e:	8d 45 fc             	lea    -0x4(%ebp),%eax
472a31:	dd d8                	fstp   %st(0)
472a33:	50                   	push   %eax
472a34:	dd d8                	fstp   %st(0)
472a36:	56                   	push   %esi
472a37:	e8 b9 f8 fc ff       	call   0x4422f5
472a3c:	85 c0                	test   %eax,%eax
472a3e:	79 b5                	jns    0x4729f5
472a40:	8b 7d fc             	mov    -0x4(%ebp),%edi
472a43:	57                   	push   %edi
472a44:	47                   	inc    %edi
472a45:	8b ce                	mov    %esi,%ecx
472a47:	89 7d fc             	mov    %edi,-0x4(%ebp)
472a4a:	e8 37 f6 f8 ff       	call   0x402086
472a4f:	0f b7 00             	movzwl (%eax),%eax
472a52:	50                   	push   %eax
472a53:	8b cb                	mov    %ebx,%ecx
472a55:	e8 3f 9d f9 ff       	call   0x40c799
472a5a:	eb b7                	jmp    0x472a13
472a5c:	dd da                	fstp   %st(2)
472a5e:	48                   	dec    %eax
472a5f:	89 01                	mov    %eax,(%ecx)
472a61:	dd d8                	fstp   %st(0)
472a63:	8b cb                	mov    %ebx,%ecx
472a65:	dd d8                	fstp   %st(0)
472a67:	e8 de 40 f9 ff       	call   0x406b4a
472a6c:	8b 43 04             	mov    0x4(%ebx),%eax
472a6f:	83 c0 02             	add    $0x2,%eax
472a72:	50                   	push   %eax
472a73:	e8 7e 40 f9 ff       	call   0x406af6
472a78:	33 c9                	xor    %ecx,%ecx
472a7a:	89 43 08             	mov    %eax,0x8(%ebx)
472a7d:	ba 02 00 00 00       	mov    $0x2,%edx
472a82:	f7 e2                	mul    %edx
472a84:	0f 90 c1             	seto   %cl
472a87:	f7 d9                	neg    %ecx
472a89:	0b c8                	or     %eax,%ecx
472a8b:	51                   	push   %ecx
472a8c:	e8 59 ca fa ff       	call   0x41f4ea
472a91:	8b f0                	mov    %eax,%esi
472a93:	8b 43 04             	mov    0x4(%ebx),%eax
472a96:	83 c4 04             	add    $0x4,%esp
472a99:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
472aa0:	50                   	push   %eax
472aa1:	ff 33                	push   (%ebx)
472aa3:	56                   	push   %esi
472aa4:	e8 d7 c3 fa ff       	call   0x41ee80
472aa9:	89 33                	mov    %esi,(%ebx)
472aab:	8b 75 08             	mov    0x8(%ebp),%esi
472aae:	83 c4 0c             	add    $0xc,%esp
472ab1:	e9 1a 01 00 00       	jmp    0x472bd0
472ab6:	3d c2 41 00 00       	cmp    $0x41c2,%eax
472abb:	73 0d                	jae    0x472aca
472abd:	dd da                	fstp   %st(2)
472abf:	03 c0                	add    %eax,%eax
472ac1:	dd d8                	fstp   %st(0)
472ac3:	dd d8                	fstp   %st(0)
472ac5:	e9 b2 00 00 00       	jmp    0x472b7c
472aca:	3d 00 00 00 02       	cmp    $0x2000000,%eax
472acf:	73 37                	jae    0x472b08
472ad1:	dd d9                	fstp   %st(1)
472ad3:	89 45 0c             	mov    %eax,0xc(%ebp)
472ad6:	dd d8                	fstp   %st(0)
472ad8:	db 45 0c             	fildl  0xc(%ebp)
472adb:	85 c0                	test   %eax,%eax
472add:	79 06                	jns    0x472ae5
472adf:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
472ae5:	dd 5d e8             	fstpl  -0x18(%ebp)
472ae8:	d9 7d 0e             	fnstcw 0xe(%ebp)
472aeb:	dc 4d e8             	fmull  -0x18(%ebp)
472aee:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
472af2:	0d 00 0c 00 00       	or     $0xc00,%eax
472af7:	89 45 ec             	mov    %eax,-0x14(%ebp)
472afa:	d9 6d ec             	fldcw  -0x14(%ebp)
472afd:	df 7d e8             	fistpll -0x18(%ebp)
472b00:	8b 45 e8             	mov    -0x18(%ebp),%eax
472b03:	d9 6d 0e             	fldcw  0xe(%ebp)
472b06:	eb 71                	jmp    0x472b79
472b08:	dd da                	fstp   %st(2)
472b0a:	3d 00 00 00 08       	cmp    $0x8000000,%eax
472b0f:	73 35                	jae    0x472b46
472b11:	dd d9                	fstp   %st(1)
472b13:	89 45 0c             	mov    %eax,0xc(%ebp)
472b16:	db 45 0c             	fildl  0xc(%ebp)
472b19:	85 c0                	test   %eax,%eax
472b1b:	79 06                	jns    0x472b23
472b1d:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
472b23:	dd 5d e8             	fstpl  -0x18(%ebp)
472b26:	d9 7d 0e             	fnstcw 0xe(%ebp)
472b29:	dc 4d e8             	fmull  -0x18(%ebp)
472b2c:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
472b30:	0d 00 0c 00 00       	or     $0xc00,%eax
472b35:	89 45 ec             	mov    %eax,-0x14(%ebp)
472b38:	d9 6d ec             	fldcw  -0x14(%ebp)
472b3b:	df 7d e8             	fistpll -0x18(%ebp)
472b3e:	8b 45 e8             	mov    -0x18(%ebp),%eax
472b41:	d9 6d 0e             	fldcw  0xe(%ebp)
472b44:	eb 33                	jmp    0x472b79
472b46:	dd d8                	fstp   %st(0)
472b48:	89 45 0c             	mov    %eax,0xc(%ebp)
472b4b:	db 45 0c             	fildl  0xc(%ebp)
472b4e:	85 c0                	test   %eax,%eax
472b50:	79 06                	jns    0x472b58
472b52:	dc 05 00 6a 4b 00    	faddl  0x4b6a00
472b58:	dd 5d e8             	fstpl  -0x18(%ebp)
472b5b:	d9 7d 0e             	fnstcw 0xe(%ebp)
472b5e:	dc 4d e8             	fmull  -0x18(%ebp)
472b61:	0f b7 45 0e          	movzwl 0xe(%ebp),%eax
472b65:	0d 00 0c 00 00       	or     $0xc00,%eax
472b6a:	89 45 ec             	mov    %eax,-0x14(%ebp)
472b6d:	d9 6d ec             	fldcw  -0x14(%ebp)
472b70:	df 7d e8             	fistpll -0x18(%ebp)
472b73:	8b 45 e8             	mov    -0x18(%ebp),%eax
472b76:	d9 6d 0e             	fldcw  0xe(%ebp)
472b79:	8b 7d fc             	mov    -0x4(%ebp),%edi
472b7c:	50                   	push   %eax
472b7d:	89 43 08             	mov    %eax,0x8(%ebx)
472b80:	e8 71 3f f9 ff       	call   0x406af6
472b85:	33 c9                	xor    %ecx,%ecx
472b87:	89 43 08             	mov    %eax,0x8(%ebx)
472b8a:	ba 02 00 00 00       	mov    $0x2,%edx
472b8f:	f7 e2                	mul    %edx
472b91:	0f 90 c1             	seto   %cl
472b94:	f7 d9                	neg    %ecx
472b96:	0b c8                	or     %eax,%ecx
472b98:	51                   	push   %ecx
472b99:	e8 d7 c2 fa ff       	call   0x41ee75
472b9e:	8b 13                	mov    (%ebx),%edx
472ba0:	83 c4 04             	add    $0x4,%esp
472ba3:	8b c8                	mov    %eax,%ecx
472ba5:	89 4d 0c             	mov    %ecx,0xc(%ebp)
472ba8:	85 d2                	test   %edx,%edx
472baa:	74 22                	je     0x472bce
472bac:	8b 43 04             	mov    0x4(%ebx),%eax
472baf:	8d 04 45 02 00 00 00 	lea    0x2(,%eax,2),%eax
472bb6:	50                   	push   %eax
472bb7:	52                   	push   %edx
472bb8:	51                   	push   %ecx
472bb9:	e8 c2 c2 fa ff       	call   0x41ee80
472bbe:	83 c4 0c             	add    $0xc,%esp
472bc1:	ff 33                	push   (%ebx)
472bc3:	e8 18 e2 fa ff       	call   0x420de0
472bc8:	8b 4d 0c             	mov    0xc(%ebp),%ecx
472bcb:	83 c4 04             	add    $0x4,%esp
472bce:	89 0b                	mov    %ecx,(%ebx)
472bd0:	dd 05 10 27 4b 00    	fldl   0x4b2710
472bd6:	dd 05 08 27 4b 00    	fldl   0x4b2708
472bdc:	dd 05 00 27 4b 00    	fldl   0x4b2700
472be2:	e9 6f 84 f9 ff       	jmp    0x40b056
472be7:	3b f9                	cmp    %ecx,%edi
472be9:	0f 83 09 85 f9 ff    	jae    0x40b0f8
472bef:	83 fa ff             	cmp    $0xffffffff,%edx
472bf2:	74 07                	je     0x472bfb
472bf4:	8d 04 17             	lea    (%edi,%edx,1),%eax
472bf7:	3b c1                	cmp    %ecx,%eax
472bf9:	76 03                	jbe    0x472bfe
472bfb:	89 55 e4             	mov    %edx,-0x1c(%ebp)
472bfe:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
472c01:	e8 e4 3e f9 ff       	call   0x406aea
472c06:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
472c09:	84 c0                	test   %al,%al
472c0b:	74 31                	je     0x472c3e
472c0d:	8b 45 fc             	mov    -0x4(%ebp),%eax
472c10:	ff 08                	decl   (%eax)
472c12:	e8 33 3f f9 ff       	call   0x406b4a
472c17:	8b 75 e4             	mov    -0x1c(%ebp),%esi
472c1a:	8d 46 01             	lea    0x1(%esi),%eax
472c1d:	50                   	push   %eax
472c1e:	e8 d3 3e f9 ff       	call   0x406af6
472c23:	33 c9                	xor    %ecx,%ecx
472c25:	ba 02 00 00 00       	mov    $0x2,%edx
472c2a:	f7 e2                	mul    %edx
472c2c:	0f 90 c1             	seto   %cl
472c2f:	f7 d9                	neg    %ecx
472c31:	0b c8                	or     %eax,%ecx
472c33:	51                   	push   %ecx
472c34:	e8 b1 c8 fa ff       	call   0x41f4ea
472c39:	83 c4 04             	add    $0x4,%esp
472c3c:	eb 0c                	jmp    0x472c4a
472c3e:	8b 75 e4             	mov    -0x1c(%ebp),%esi
472c41:	56                   	push   %esi
472c42:	e8 22 97 f9 ff       	call   0x40c369
472c47:	8b 45 d4             	mov    -0x2c(%ebp),%eax
472c4a:	89 45 f8             	mov    %eax,-0x8(%ebp)
472c4d:	8b 45 08             	mov    0x8(%ebp),%eax
472c50:	89 75 0c             	mov    %esi,0xc(%ebp)
472c53:	8b 00                	mov    (%eax),%eax
472c55:	03 f6                	add    %esi,%esi
472c57:	8d 04 78             	lea    (%eax,%edi,2),%eax
472c5a:	8b 7d f8             	mov    -0x8(%ebp),%edi
472c5d:	56                   	push   %esi
472c5e:	50                   	push   %eax
472c5f:	57                   	push   %edi
472c60:	e8 1b c2 fa ff       	call   0x41ee80
472c65:	83 c4 0c             	add    $0xc,%esp
472c68:	33 c0                	xor    %eax,%eax
472c6a:	66 89 04 3e          	mov    %ax,(%esi,%edi,1)
472c6e:	8b 45 e0             	mov    -0x20(%ebp),%eax
472c71:	8b 75 ec             	mov    -0x14(%ebp),%esi
472c74:	89 45 fc             	mov    %eax,-0x4(%ebp)
472c77:	e9 7f 84 f9 ff       	jmp    0x40b0fb
472c7c:	53                   	push   %ebx
472c7d:	8d 45 b4             	lea    -0x4c(%ebp),%eax
472c80:	50                   	push   %eax
472c81:	8b cb                	mov    %ebx,%ecx
472c83:	e8 07 79 fc ff       	call   0x43a58f
472c88:	50                   	push   %eax
472c89:	8b cb                	mov    %ebx,%ecx
472c8b:	e8 5d 42 f9 ff       	call   0x406eed
472c90:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
472c93:	e8 9f 9e f9 ff       	call   0x40cb37
472c98:	8b 45 fc             	mov    -0x4(%ebp),%eax
472c9b:	e9 70 84 f9 ff       	jmp    0x40b110
472ca0:	8b cb                	mov    %ebx,%ecx
472ca2:	e8 43 3e f9 ff       	call   0x406aea
472ca7:	8b cb                	mov    %ebx,%ecx
472ca9:	84 c0                	test   %al,%al
472cab:	74 54                	je     0x472d01
472cad:	8b 43 0c             	mov    0xc(%ebx),%eax
472cb0:	ff 08                	decl   (%eax)
472cb2:	e8 93 3e f9 ff       	call   0x406b4a
472cb7:	8b 4d 0c             	mov    0xc(%ebp),%ecx
472cba:	8b 43 04             	mov    0x4(%ebx),%eax
472cbd:	41                   	inc    %ecx
472cbe:	03 c1                	add    %ecx,%eax
472cc0:	50                   	push   %eax
472cc1:	e8 30 3e f9 ff       	call   0x406af6
472cc6:	33 c9                	xor    %ecx,%ecx
472cc8:	89 43 08             	mov    %eax,0x8(%ebx)
472ccb:	ba 02 00 00 00       	mov    $0x2,%edx
472cd0:	f7 e2                	mul    %edx
472cd2:	0f 90 c1             	seto   %cl
472cd5:	f7 d9                	neg    %ecx
472cd7:	0b c8                	or     %eax,%ecx
472cd9:	51                   	push   %ecx
472cda:	e8 0b c8 fa ff       	call   0x41f4ea
472cdf:	8b 4b 04             	mov    0x4(%ebx),%ecx
472ce2:	83 c4 04             	add    $0x4,%esp
472ce5:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
472cec:	51                   	push   %ecx
472ced:	ff 33                	push   (%ebx)
472cef:	8b f0                	mov    %eax,%esi
472cf1:	56                   	push   %esi
472cf2:	e8 89 c1 fa ff       	call   0x41ee80
472cf7:	89 33                	mov    %esi,(%ebx)
472cf9:	8b 75 ec             	mov    -0x14(%ebp),%esi
472cfc:	83 c4 0c             	add    $0xc,%esp
472cff:	eb 0c                	jmp    0x472d0d
472d01:	8b 43 04             	mov    0x4(%ebx),%eax
472d04:	03 45 0c             	add    0xc(%ebp),%eax
472d07:	50                   	push   %eax
472d08:	e8 78 8e f9 ff       	call   0x40bb85
472d0d:	8b 45 0c             	mov    0xc(%ebp),%eax
472d10:	8b 4b 04             	mov    0x4(%ebx),%ecx
472d13:	03 c0                	add    %eax,%eax
472d15:	50                   	push   %eax
472d16:	8b 03                	mov    (%ebx),%eax
472d18:	57                   	push   %edi
472d19:	8d 04 48             	lea    (%eax,%ecx,2),%eax
472d1c:	50                   	push   %eax
472d1d:	e8 5e c1 fa ff       	call   0x41ee80
472d22:	8b 45 0c             	mov    0xc(%ebp),%eax
472d25:	01 43 04             	add    %eax,0x4(%ebx)
472d28:	8b 03                	mov    (%ebx),%eax
472d2a:	8b 4b 04             	mov    0x4(%ebx),%ecx
472d2d:	83 c4 0c             	add    $0xc,%esp
472d30:	33 d2                	xor    %edx,%edx
472d32:	66 89 14 48          	mov    %dx,(%eax,%ecx,2)
472d36:	8b 45 fc             	mov    -0x4(%ebp),%eax
472d39:	e9 d2 83 f9 ff       	jmp    0x40b110
472d3e:	56                   	push   %esi
472d3f:	8d 4c 24 24          	lea    0x24(%esp),%ecx
472d43:	e8 5e 34 f9 ff       	call   0x4061a6
472d48:	66 8b 00             	mov    (%eax),%ax
472d4b:	66 89 44 24 0c       	mov    %ax,0xc(%esp)
472d50:	33 c0                	xor    %eax,%eax
472d52:	56                   	push   %esi
472d53:	8d 4c 24 24          	lea    0x24(%esp),%ecx
472d57:	66 89 44 24 12       	mov    %ax,0x12(%esp)
472d5c:	e8 45 34 f9 ff       	call   0x4061a6
472d61:	66 39 18             	cmp    %bx,(%eax)
472d64:	74 23                	je     0x472d89
472d66:	56                   	push   %esi
472d67:	8d 4c 24 24          	lea    0x24(%esp),%ecx
472d6b:	e8 36 34 f9 ff       	call   0x4061a6
472d70:	66 83 38 3b          	cmpw   $0x3b,(%eax)
472d74:	74 13                	je     0x472d89
472d76:	8d 44 24 0c          	lea    0xc(%esp),%eax
472d7a:	50                   	push   %eax
472d7b:	8d 44 24 44          	lea    0x44(%esp),%eax
472d7f:	50                   	push   %eax
472d80:	e8 6f df fa ff       	call   0x420cf4
472d85:	59                   	pop    %ecx
472d86:	59                   	pop    %ecx
472d87:	eb 70                	jmp    0x472df9
472d89:	8d 44 24 40          	lea    0x40(%esp),%eax
472d8d:	50                   	push   %eax
472d8e:	e8 48 df fa ff       	call   0x420cdb
472d93:	59                   	pop    %ecx
472d94:	85 c0                	test   %eax,%eax
472d96:	74 24                	je     0x472dbc
472d98:	8d 44 24 40          	lea    0x40(%esp),%eax
472d9c:	50                   	push   %eax
472d9d:	e8 39 df fa ff       	call   0x420cdb
472da2:	66 83 7c 44 42 5c    	cmpw   $0x5c,0x42(%esp,%eax,2)
472da8:	59                   	pop    %ecx
472da9:	74 11                	je     0x472dbc
472dab:	8d 44 24 40          	lea    0x40(%esp),%eax
472daf:	68 54 dc 49 00       	push   $0x49dc54
472db4:	50                   	push   %eax