46a837:	68 04 00 00 00       	push   $0x4
46a83c:	e8 69 5d 03 00       	call   0x4a05aa
46a841:	83 c4 0c             	add    $0xc,%esp
46a844:	59                   	pop    %ecx
46a845:	5b                   	pop    %ebx
46a846:	3b c1                	cmp    %ecx,%eax
46a848:	7c 17                	jl     0x46a861
46a84a:	68 c6 02 00 00       	push   $0x2c6
46a84f:	68 a1 d1 03 04       	push   $0x403d1a1
46a854:	68 01 00 00 00       	push   $0x1
46a859:	e8 4c 5d 03 00       	call   0x4a05aa
46a85e:	83 c4 0c             	add    $0xc,%esp
46a861:	c1 e0 02             	shl    $0x2,%eax
46a864:	03 d8                	add    %eax,%ebx
46a866:	8b 1b                	mov    (%ebx),%ebx
46a868:	83 c3 04             	add    $0x4,%ebx
46a86b:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a86e:	ff 75 f0             	push   -0x10(%ebp)
46a871:	6a 04                	push   $0x4
46a873:	b8 02 00 00 00       	mov    $0x2,%eax
46a878:	e8 f3 65 03 00       	call   0x4a0e70
46a87d:	83 c4 08             	add    $0x8,%esp
46a880:	b8 00 00 00 00       	mov    $0x0,%eax
46a885:	89 45 ec             	mov    %eax,-0x14(%ebp)
46a888:	8b 45 0c             	mov    0xc(%ebp),%eax
46a88b:	48                   	dec    %eax
46a88c:	0f 8c 7b 00 00 00    	jl     0x46a90d
46a892:	89 45 e8             	mov    %eax,-0x18(%ebp)
46a895:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a898:	8b 1b                	mov    (%ebx),%ebx
46a89a:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
46a89d:	e8 51 8e f9 ff       	call   0x4036f3
46a8a2:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46a8a5:	39 4d e8             	cmp    %ecx,-0x18(%ebp)
46a8a8:	0f 8f 5f 00 00 00    	jg     0x46a90d
46a8ae:	8b 7d e4             	mov    -0x1c(%ebp),%edi
46a8b1:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
46a8b7:	83 c7 04             	add    $0x4,%edi
46a8ba:	8b c1                	mov    %ecx,%eax
46a8bc:	40                   	inc    %eax
46a8bd:	89 07                	mov    %eax,(%edi)
46a8bf:	83 c7 04             	add    $0x4,%edi
46a8c2:	3b fb                	cmp    %ebx,%edi
46a8c4:	74 04                	je     0x46a8ca
46a8c6:	8b f3                	mov    %ebx,%esi
46a8c8:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a8ca:	8b 45 e0             	mov    -0x20(%ebp),%eax
46a8cd:	40                   	inc    %eax
46a8ce:	c1 e0 02             	shl    $0x2,%eax
46a8d1:	83 c0 08             	add    $0x8,%eax
46a8d4:	50                   	push   %eax
46a8d5:	ff 75 e4             	push   -0x1c(%ebp)
46a8d8:	e8 d3 5c 03 00       	call   0x4a05b0
46a8dd:	83 c4 08             	add    $0x8,%esp
46a8e0:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a8e3:	89 03                	mov    %eax,(%ebx)
46a8e5:	8b f0                	mov    %eax,%esi
46a8e7:	83 c6 08             	add    $0x8,%esi
46a8ea:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46a8ed:	8b d9                	mov    %ecx,%ebx
46a8ef:	c1 e3 02             	shl    $0x2,%ebx
46a8f2:	03 f3                	add    %ebx,%esi
46a8f4:	83 ee 04             	sub    $0x4,%esi
46a8f7:	2b 4d e8             	sub    -0x18(%ebp),%ecx
46a8fa:	8b fe                	mov    %esi,%edi
46a8fc:	83 c7 04             	add    $0x4,%edi
46a8ff:	fd                   	std
46a900:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a902:	8b fe                	mov    %esi,%edi
46a904:	83 c7 04             	add    $0x4,%edi
46a907:	fc                   	cld
46a908:	8b 45 ec             	mov    -0x14(%ebp),%eax
46a90b:	89 07                	mov    %eax,(%edi)
46a90d:	58                   	pop    %eax
46a90e:	5b                   	pop    %ebx
46a90f:	59                   	pop    %ecx
46a910:	e9 e6 fd ff ff       	jmp    0x46a6fb
46a915:	83 c4 0c             	add    $0xc,%esp
46a918:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a91b:	8b 1b                	mov    (%ebx),%ebx
46a91d:	81 c3 28 01 00 00    	add    $0x128,%ebx
46a923:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a926:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a929:	83 3b 00             	cmpl   $0x0,(%ebx)
46a92c:	0f 85 f1 00 00 00    	jne    0x46aa23
46a932:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a935:	8b 1b                	mov    (%ebx),%ebx
46a937:	81 c3 58 01 00 00    	add    $0x158,%ebx
46a93d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a940:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a943:	c7 03 00 00 00 00    	movl   $0x0,(%ebx)
46a949:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a94c:	8b 1b                	mov    (%ebx),%ebx
46a94e:	81 c3 20 01 00 00    	add    $0x120,%ebx
46a954:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a957:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a95a:	8b 1b                	mov    (%ebx),%ebx
46a95c:	e8 e9 3a fa ff       	call   0x40e44a
46a961:	33 c9                	xor    %ecx,%ecx
46a963:	50                   	push   %eax
46a964:	8d 45 f8             	lea    -0x8(%ebp),%eax
46a967:	8b d8                	mov    %eax,%ebx
46a969:	58                   	pop    %eax
46a96a:	41                   	inc    %ecx
46a96b:	51                   	push   %ecx
46a96c:	53                   	push   %ebx
46a96d:	89 0b                	mov    %ecx,(%ebx)
46a96f:	50                   	push   %eax
46a970:	3b c8                	cmp    %eax,%ecx
46a972:	0f 8f a3 00 00 00    	jg     0x46aa1b
46a978:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a97b:	8b 1b                	mov    (%ebx),%ebx
46a97d:	81 c3 58 01 00 00    	add    $0x158,%ebx
46a983:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a986:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a989:	8b 1b                	mov    (%ebx),%ebx
46a98b:	81 c3 58 01 00 00    	add    $0x158,%ebx
46a991:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46a994:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a997:	8b 1b                	mov    (%ebx),%ebx
46a999:	8b 9b 20 01 00 00    	mov    0x120(%ebx),%ebx
46a99f:	e8 4f 8d f9 ff       	call   0x4036f3
46a9a4:	53                   	push   %ebx
46a9a5:	51                   	push   %ecx
46a9a6:	8b 45 f8             	mov    -0x8(%ebp),%eax
46a9a9:	48                   	dec    %eax
46a9aa:	79 17                	jns    0x46a9c3
46a9ac:	68 c9 03 00 00       	push   $0x3c9
46a9b1:	68 a1 d1 03 04       	push   $0x403d1a1
46a9b6:	68 04 00 00 00       	push   $0x4
46a9bb:	e8 ea 5b 03 00       	call   0x4a05aa
46a9c0:	83 c4 0c             	add    $0xc,%esp
46a9c3:	59                   	pop    %ecx
46a9c4:	5b                   	pop    %ebx
46a9c5:	3b c1                	cmp    %ecx,%eax
46a9c7:	7c 17                	jl     0x46a9e0
46a9c9:	68 c9 03 00 00       	push   $0x3c9
46a9ce:	68 a1 d1 03 04       	push   $0x403d1a1
46a9d3:	68 01 00 00 00       	push   $0x1
46a9d8:	e8 cd 5b 03 00       	call   0x4a05aa
46a9dd:	83 c4 0c             	add    $0xc,%esp
46a9e0:	c1 e0 02             	shl    $0x2,%eax
46a9e3:	03 d8                	add    %eax,%ebx
46a9e5:	8b 1b                	mov    (%ebx),%ebx
46a9e7:	83 c3 0c             	add    $0xc,%ebx
46a9ea:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46a9ed:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46a9f0:	db 03                	fildl  (%ebx)
46a9f2:	dd 5d e0             	fstpl  -0x20(%ebp)
46a9f5:	dd 45 e0             	fldl   -0x20(%ebp)
46a9f8:	8b 5d e8             	mov    -0x18(%ebp),%ebx
46a9fb:	db 03                	fildl  (%ebx)
46a9fd:	dd 5d d8             	fstpl  -0x28(%ebp)
46aa00:	dc 45 d8             	faddl  -0x28(%ebp)
46aa03:	dd 5d d0             	fstpl  -0x30(%ebp)
46aa06:	dd 45 d0             	fldl   -0x30(%ebp)
46aa09:	e8 e1 67 f9 ff       	call   0x4011ef
46aa0e:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46aa11:	89 03                	mov    %eax,(%ebx)
46aa13:	58                   	pop    %eax
46aa14:	5b                   	pop    %ebx
46aa15:	59                   	pop    %ecx
46aa16:	e9 4f ff ff ff       	jmp    0x46a96a
46aa1b:	83 c4 0c             	add    $0xc,%esp
46aa1e:	e9 2e 00 00 00       	jmp    0x46aa51
46aa23:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aa26:	8b 1b                	mov    (%ebx),%ebx
46aa28:	81 c3 58 01 00 00    	add    $0x158,%ebx
46aa2e:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46aa31:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aa34:	8b 1b                	mov    (%ebx),%ebx
46aa36:	8b 9b 64 01 00 00    	mov    0x164(%ebx),%ebx
46aa3c:	83 c3 08             	add    $0x8,%ebx
46aa3f:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46aa42:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46aa45:	d9 03                	flds   (%ebx)
46aa47:	e8 a3 67 f9 ff       	call   0x4011ef
46aa4c:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46aa4f:	89 03                	mov    %eax,(%ebx)
46aa51:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aa54:	8b 1b                	mov    (%ebx),%ebx
46aa56:	81 c3 7c 01 00 00    	add    $0x17c,%ebx
46aa5c:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46aa5f:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
46aa66:	6a 00                	push   $0x0
46aa68:	ff 75 ec             	push   -0x14(%ebp)
46aa6b:	ff 75 f0             	push   -0x10(%ebp)
46aa6e:	8b 04 24             	mov    (%esp),%eax
46aa71:	8b 00                	mov    (%eax),%eax
46aa73:	8b 00                	mov    (%eax),%eax
46aa75:	ff 90 ac 00 00 00    	call   *0xac(%eax)
46aa7b:	83 e0 01             	and    $0x1,%eax
46aa7e:	83 f0 01             	xor    $0x1,%eax
46aa81:	85 c0                	test   %eax,%eax
46aa83:	0f 84 25 01 00 00    	je     0x46abae
46aa89:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aa8c:	8b 1b                	mov    (%ebx),%ebx
46aa8e:	81 c3 58 01 00 00    	add    $0x158,%ebx
46aa94:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46aa97:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aa9a:	8b 1b                	mov    (%ebx),%ebx
46aa9c:	8b 9b 64 01 00 00    	mov    0x164(%ebx),%ebx
46aaa2:	83 c3 08             	add    $0x8,%ebx
46aaa5:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46aaa8:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46aaab:	db 03                	fildl  (%ebx)
46aaad:	dd 5d e4             	fstpl  -0x1c(%ebp)
46aab0:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46aab3:	d9 03                	flds   (%ebx)
46aab5:	dd 5d dc             	fstpl  -0x24(%ebp)
46aab8:	dd 45 e4             	fldl   -0x1c(%ebp)
46aabb:	dc 65 dc             	fsubl  -0x24(%ebp)
46aabe:	dc 1d 7a 0a 4e 00    	fcompl 0x4e0a7a
46aac4:	df e0                	fnstsw %ax
46aac6:	f6 c4 41             	test   $0x41,%ah
46aac9:	0f 85 df 00 00 00    	jne    0x46abae
46aacf:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aad2:	8b 1b                	mov    (%ebx),%ebx
46aad4:	81 c3 7c 01 00 00    	add    $0x17c,%ebx
46aada:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46aadd:	ff 75 f0             	push   -0x10(%ebp)
46aae0:	8b 04 24             	mov    (%esp),%eax
46aae3:	8b 00                	mov    (%eax),%eax
46aae5:	8b 00                	mov    (%eax),%eax
46aae7:	ff 50 68             	call   *0x68(%eax)
46aaea:	89 45 ec             	mov    %eax,-0x14(%ebp)
46aaed:	68 00 80 00 00       	push   $0x8000
46aaf2:	ff 75 ec             	push   -0x14(%ebp)
46aaf5:	e8 aa 54 fc ff       	call   0x42ffa4
46aafa:	8b 5d 08             	mov    0x8(%ebp),%ebx
46aafd:	8b 1b                	mov    (%ebx),%ebx
46aaff:	81 c3 78 01 00 00    	add    $0x178,%ebx
46ab05:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46ab08:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
46ab0f:	6a 00                	push   $0x0
46ab11:	ff 75 ec             	push   -0x14(%ebp)
46ab14:	ff 75 f0             	push   -0x10(%ebp)
46ab17:	8b 04 24             	mov    (%esp),%eax
46ab1a:	8b 00                	mov    (%eax),%eax
46ab1c:	8b 00                	mov    (%eax),%eax
46ab1e:	ff 90 ac 00 00 00    	call   *0xac(%eax)
46ab24:	85 c0                	test   %eax,%eax
46ab26:	0f 84 82 00 00 00    	je     0x46abae
46ab2c:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ab2f:	8b 1b                	mov    (%ebx),%ebx
46ab31:	81 c3 78 01 00 00    	add    $0x178,%ebx
46ab37:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46ab3a:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ab3d:	8b 1b                	mov    (%ebx),%ebx
46ab3f:	81 c3 5c 01 00 00    	add    $0x15c,%ebx
46ab45:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46ab48:	8b 5d 08             	mov    0x8(%ebp),%ebx
46ab4b:	8b 1b                	mov    (%ebx),%ebx
46ab4d:	81 c3 7c 01 00 00    	add    $0x17c,%ebx
46ab53:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46ab56:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
46ab5d:	6a 00                	push   $0x0
46ab5f:	ff 75 e4             	push   -0x1c(%ebp)
46ab62:	ff 75 e8             	push   -0x18(%ebp)
46ab65:	8b 04 24             	mov    (%esp),%eax
46ab68:	8b 00                	mov    (%eax),%eax
46ab6a:	8b 00                	mov    (%eax),%eax
46ab6c:	ff 90 c0 00 00 00    	call   *0xc0(%eax)
46ab72:	89 45 e0             	mov    %eax,-0x20(%ebp)
46ab75:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46ab78:	db 03                	fildl  (%ebx)
46ab7a:	dd 5d d8             	fstpl  -0x28(%ebp)
46ab7d:	dd 45 d8             	fldl   -0x28(%ebp)
46ab80:	db 45 e0             	fildl  -0x20(%ebp)
46ab83:	dd 5d d0             	fstpl  -0x30(%ebp)
46ab86:	dc 45 d0             	faddl  -0x30(%ebp)
46ab89:	dd 5d c8             	fstpl  -0x38(%ebp)
46ab8c:	6a 01                	push   $0x1
46ab8e:	68 00 00 00 00       	push   $0x0
46ab93:	6a 01                	push   $0x1
46ab95:	dd 45 c8             	fldl   -0x38(%ebp)
46ab98:	e8 52 66 f9 ff       	call   0x4011ef
46ab9d:	50                   	push   %eax
46ab9e:	ff 75 f0             	push   -0x10(%ebp)
46aba1:	8b 04 24             	mov    (%esp),%eax
46aba4:	8b 00                	mov    (%eax),%eax
46aba6:	8b 00                	mov    (%eax),%eax
46aba8:	ff 90 9c 01 00 00    	call   *0x19c(%eax)
46abae:	8b 5d 08             	mov    0x8(%ebp),%ebx
46abb1:	8b 1b                	mov    (%ebx),%ebx
46abb3:	81 c3 7c 01 00 00    	add    $0x17c,%ebx
46abb9:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46abbc:	8b 5d 08             	mov    0x8(%ebp),%ebx
46abbf:	8b 1b                	mov    (%ebx),%ebx
46abc1:	81 c3 58 01 00 00    	add    $0x158,%ebx
46abc7:	89 5d ec             	mov    %ebx,-0x14(%ebp)
46abca:	8b 5d 08             	mov    0x8(%ebp),%ebx
46abcd:	8b 1b                	mov    (%ebx),%ebx
46abcf:	81 c3 78 01 00 00    	add    $0x178,%ebx
46abd5:	89 5d e8             	mov    %ebx,-0x18(%ebp)
46abd8:	c7 45 e4 00 00 00 00 	movl   $0x0,-0x1c(%ebp)
46abdf:	6a 00                	push   $0x0
46abe1:	ff 75 e4             	push   -0x1c(%ebp)
46abe4:	ff 75 e8             	push   -0x18(%ebp)
46abe7:	8b 04 24             	mov    (%esp),%eax
46abea:	8b 00                	mov    (%eax),%eax
46abec:	8b 00                	mov    (%eax),%eax
46abee:	ff 90 ac 00 00 00    	call   *0xac(%eax)
46abf4:	89 45 e0             	mov    %eax,-0x20(%ebp)
46abf7:	8b 5d 08             	mov    0x8(%ebp),%ebx
46abfa:	8b 1b                	mov    (%ebx),%ebx
46abfc:	81 c3 78 01 00 00    	add    $0x178,%ebx
46ac02:	89 5d dc             	mov    %ebx,-0x24(%ebp)
46ac05:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
46ac0c:	6a 00                	push   $0x0
46ac0e:	ff 75 d8             	push   -0x28(%ebp)
46ac11:	ff 75 dc             	push   -0x24(%ebp)
46ac14:	8b 04 24             	mov    (%esp),%eax
46ac17:	8b 00                	mov    (%eax),%eax
46ac19:	8b 00                	mov    (%eax),%eax
46ac1b:	ff 90 bc 00 00 00    	call   *0xbc(%eax)
46ac21:	89 45 d4             	mov    %eax,-0x2c(%ebp)
46ac24:	83 7d e0 00          	cmpl   $0x0,-0x20(%ebp)
46ac28:	0f 84 08 00 00 00    	je     0x46ac36
46ac2e:	8b 45 d4             	mov    -0x2c(%ebp),%eax
46ac31:	e9 05 00 00 00       	jmp    0x46ac3b
46ac36:	b8 00 00 00 00       	mov    $0x0,%eax
46ac3b:	89 45 d0             	mov    %eax,-0x30(%ebp)
46ac3e:	8b 5d ec             	mov    -0x14(%ebp),%ebx
46ac41:	db 03                	fildl  (%ebx)
46ac43:	dd 5d c8             	fstpl  -0x38(%ebp)
46ac46:	dd 45 c8             	fldl   -0x38(%ebp)
46ac49:	db 45 d0             	fildl  -0x30(%ebp)
46ac4c:	dd 5d c0             	fstpl  -0x40(%ebp)
46ac4f:	dc 45 c0             	faddl  -0x40(%ebp)
46ac52:	dd 5d b8             	fstpl  -0x48(%ebp)
46ac55:	6a 01                	push   $0x1
46ac57:	68 00 00 00 00       	push   $0x0
46ac5c:	6a 01                	push   $0x1
46ac5e:	dd 45 b8             	fldl   -0x48(%ebp)
46ac61:	e8 89 65 f9 ff       	call   0x4011ef
46ac66:	50                   	push   %eax
46ac67:	ff 75 f0             	push   -0x10(%ebp)
46ac6a:	8b 04 24             	mov    (%esp),%eax
46ac6d:	8b 00                	mov    (%eax),%eax
46ac6f:	8b 00                	mov    (%eax),%eax
46ac71:	ff 90 9c 01 00 00    	call   *0x19c(%eax)
46ac77:	ff 75 08             	push   0x8(%ebp)
46ac7a:	8b 04 24             	mov    (%esp),%eax
46ac7d:	8b 00                	mov    (%eax),%eax
46ac7f:	8b 00                	mov    (%eax),%eax
46ac81:	ff 90 a8 01 00 00    	call   *0x1a8(%eax)
46ac87:	8b 45 0c             	mov    0xc(%ebp),%eax
46ac8a:	e9 00 00 00 00       	jmp    0x46ac8f
46ac8f:	50                   	push   %eax