46a671:	83 c4 08             	add    $0x8,%esp
46a674:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a677:	89 03                	mov    %eax,(%ebx)
46a679:	8b f0                	mov    %eax,%esi
46a67b:	83 c6 08             	add    $0x8,%esi
46a67e:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46a681:	8b d9                	mov    %ecx,%ebx
46a683:	c1 e3 02             	shl    $0x2,%ebx
46a686:	03 f3                	add    %ebx,%esi
46a688:	83 ee 04             	sub    $0x4,%esi
46a68b:	2b 4d e8             	sub    -0x18(%ebp),%ecx
46a68e:	8b fe                	mov    %esi,%edi
46a690:	83 c7 04             	add    $0x4,%edi
46a693:	fd                   	std
46a694:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a696:	8b fe                	mov    %esi,%edi
46a698:	83 c7 04             	add    $0x4,%edi
46a69b:	fc                   	cld
46a69c:	8b 45 ec             	mov    -0x14(%ebp),%eax
46a69f:	57                   	push   %edi
46a6a0:	50                   	push   %eax
46a6a1:	68 18 00 00 00       	push   $0x18
46a6a6:	e8 f3 5e 03 00       	call   0x4a059e
46a6ab:	83 c4 04             	add    $0x4,%esp
46a6ae:	5e                   	pop    %esi
46a6af:	8b f8                	mov    %eax,%edi
46a6b1:	50                   	push   %eax
46a6b2:	ad                   	lods   %ds:(%esi),%eax
46a6b3:	56                   	push   %esi
46a6b4:	57                   	push   %edi
46a6b5:	85 c0                	test   %eax,%eax
46a6b7:	74 13                	je     0x46a6cc
46a6b9:	50                   	push   %eax
46a6ba:	8b 40 04             	mov    0x4(%eax),%eax
46a6bd:	83 c0 08             	add    $0x8,%eax
46a6c0:	50                   	push   %eax
46a6c1:	e8 d8 5e 03 00       	call   0x4a059e
46a6c6:	59                   	pop    %ecx
46a6c7:	5e                   	pop    %esi
46a6c8:	8b f8                	mov    %eax,%edi
46a6ca:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
46a6cc:	5f                   	pop    %edi
46a6cd:	5e                   	pop    %esi
46a6ce:	ab                   	stos   %eax,%es:(%edi)
46a6cf:	b9 05 00 00 00       	mov    $0x5,%ecx
46a6d4:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a6d6:	58                   	pop    %eax
46a6d7:	5f                   	pop    %edi
46a6d8:	89 07                	mov    %eax,(%edi)
46a6da:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a6dd:	8b 1b                	mov    (%ebx),%ebx
46a6df:	81 c3 1c 01 00 00    	add    $0x11c,%ebx
46a6e5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a6e8:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a6eb:	8b 1b                	mov    (%ebx),%ebx
46a6ed:	e8 58 3d fa ff       	call   0x40e44a
46a6f2:	33 c9                	xor    %ecx,%ecx
46a6f4:	50                   	push   %eax
46a6f5:	8d 45 f8             	lea    -0x8(%ebp),%eax
46a6f8:	8b d8                	mov    %eax,%ebx
46a6fa:	58                   	pop    %eax
46a6fb:	41                   	inc    %ecx
46a6fc:	51                   	push   %ecx
46a6fd:	53                   	push   %ebx
46a6fe:	89 0b                	mov    %ecx,(%ebx)
46a700:	50                   	push   %eax
46a701:	3b c8                	cmp    %eax,%ecx
46a703:	0f 8f 0c 02 00 00    	jg     0x46a915
46a709:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a70c:	8b 1b                	mov    (%ebx),%ebx
46a70e:	8b 9b 1c 01 00 00    	mov    0x11c(%ebx),%ebx
46a714:	e8 da 8f f9 ff       	call   0x4036f3
46a719:	53                   	push   %ebx
46a71a:	51                   	push   %ecx
46a71b:	8b 45 f8             	mov    -0x8(%ebp),%eax
46a71e:	48                   	dec    %eax
46a71f:	79 17                	jns    0x46a738
46a721:	68 8e 02 00 00       	push   $0x28e
46a726:	68 a1 d1 03 04       	push   $0x403d1a1
46a72b:	68 04 00 00 00       	push   $0x4
46a730:	e8 75 5e 03 00       	call   0x4a05aa
46a735:	83 c4 0c             	add    $0xc,%esp
46a738:	59                   	pop    %ecx
46a739:	5b                   	pop    %ebx
46a73a:	3b c1                	cmp    %ecx,%eax
46a73c:	7c 17                	jl     0x46a755
46a73e:	68 8e 02 00 00       	push   $0x28e
46a743:	68 a1 d1 03 04       	push   $0x403d1a1
46a748:	68 01 00 00 00       	push   $0x1
46a74d:	e8 58 5e 03 00       	call   0x4a05aa
46a752:	83 c4 0c             	add    $0xc,%esp
46a755:	c1 e0 02             	shl    $0x2,%eax
46a758:	03 d8                	add    %eax,%ebx
46a75a:	8b 1b                	mov    (%ebx),%ebx
46a75c:	89 5d f0             	mov    %ebx,-0x10(%ebp)
46a75f:	ff 75 f0             	push   -0x10(%ebp)
46a762:	6a 04                	push   $0x4
46a764:	b8 02 00 00 00       	mov    $0x2,%eax
46a769:	e8 02 67 03 00       	call   0x4a0e70
46a76e:	83 c4 08             	add    $0x8,%esp
46a771:	8b 45 f4             	mov    -0xc(%ebp),%eax
46a774:	89 45 ec             	mov    %eax,-0x14(%ebp)
46a777:	8b 45 0c             	mov    0xc(%ebp),%eax
46a77a:	48                   	dec    %eax
46a77b:	0f 8c 94 00 00 00    	jl     0x46a815
46a781:	89 45 e8             	mov    %eax,-0x18(%ebp)
46a784:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a787:	8b 1b                	mov    (%ebx),%ebx
46a789:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
46a78c:	e8 62 8f f9 ff       	call   0x4036f3
46a791:	89 4d e0             	mov    %ecx,-0x20(%ebp)
46a794:	39 4d e8             	cmp    %ecx,-0x18(%ebp)
46a797:	0f 8f 78 00 00 00    	jg     0x46a815
46a79d:	8b 7d e4             	mov    -0x1c(%ebp),%edi
46a7a0:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
46a7a6:	83 c7 04             	add    $0x4,%edi
46a7a9:	8b c1                	mov    %ecx,%eax
46a7ab:	40                   	inc    %eax
46a7ac:	89 07                	mov    %eax,(%edi)
46a7ae:	83 c7 04             	add    $0x4,%edi
46a7b1:	3b fb                	cmp    %ebx,%edi
46a7b3:	74 04                	je     0x46a7b9
46a7b5:	8b f3                	mov    %ebx,%esi
46a7b7:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a7b9:	8b 45 e0             	mov    -0x20(%ebp),%eax
46a7bc:	40                   	inc    %eax
46a7bd:	c1 e0 02             	shl    $0x2,%eax
46a7c0:	83 c0 08             	add    $0x8,%eax
46a7c3:	50                   	push   %eax
46a7c4:	ff 75 e4             	push   -0x1c(%ebp)
46a7c7:	e8 e4 5d 03 00       	call   0x4a05b0
46a7cc:	83 c4 08             	add    $0x8,%esp
46a7cf:	8b 5d f0             	mov    -0x10(%ebp),%ebx
46a7d2:	89 03                	mov    %eax,(%ebx)
46a7d4:	8b f0                	mov    %eax,%esi
46a7d6:	83 c6 08             	add    $0x8,%esi
46a7d9:	8b 4d e0             	mov    -0x20(%ebp),%ecx
46a7dc:	8b d9                	mov    %ecx,%ebx
46a7de:	c1 e3 02             	shl    $0x2,%ebx
46a7e1:	03 f3                	add    %ebx,%esi
46a7e3:	83 ee 04             	sub    $0x4,%esi
46a7e6:	2b 4d e8             	sub    -0x18(%ebp),%ecx
46a7e9:	8b fe                	mov    %esi,%edi
46a7eb:	83 c7 04             	add    $0x4,%edi
46a7ee:	fd                   	std
46a7ef:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
46a7f1:	8b fe                	mov    %esi,%edi
46a7f3:	83 c7 04             	add    $0x4,%edi
46a7f6:	fc                   	cld
46a7f7:	8b 45 ec             	mov    -0x14(%ebp),%eax
46a7fa:	57                   	push   %edi
46a7fb:	85 c0                	test   %eax,%eax
46a7fd:	74 13                	je     0x46a812
46a7ff:	50                   	push   %eax
46a800:	8b 40 04             	mov    0x4(%eax),%eax
46a803:	83 c0 08             	add    $0x8,%eax
46a806:	50                   	push   %eax
46a807:	e8 92 5d 03 00       	call   0x4a059e
46a80c:	59                   	pop    %ecx
46a80d:	5e                   	pop    %esi
46a80e:	8b f8                	mov    %eax,%edi
46a810:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
46a812:	5f                   	pop    %edi
46a813:	89 07                	mov    %eax,(%edi)
46a815:	8b 5d 08             	mov    0x8(%ebp),%ebx
46a818:	8b 1b                	mov    (%ebx),%ebx
46a81a:	8b 9b 1c 01 00 00    	mov    0x11c(%ebx),%ebx
46a820:	e8 ce 8e f9 ff       	call   0x4036f3
46a825:	53                   	push   %ebx
46a826:	51                   	push   %ecx
46a827:	8b 45 f8             	mov    -0x8(%ebp),%eax
46a82a:	48                   	dec    %eax
46a82b:	79 17                	jns    0x46a844
46a82d:	68 c6 02 00 00       	push   $0x2c6
46a832:	68 a1 d1 03 04       	push   $0x403d1a1
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