45d782:	c1 e0 03             	shl    $0x3,%eax
45d785:	50                   	push   %eax
45d786:	8d 46 08             	lea    0x8(%esi),%eax
45d789:	50                   	push   %eax
45d78a:	51                   	push   %ecx
45d78b:	e8 40 56 17 00       	call   0x5d2dd0
45d790:	8b 55 fc             	mov    -0x4(%ebp),%edx
45d793:	83 c4 0c             	add    $0xc,%esp
45d796:	85 f6                	test   %esi,%esi
45d798:	74 16                	je     0x45d7b0
45d79a:	83 3e 00             	cmpl   $0x0,(%esi)
45d79d:	75 11                	jne    0x45d7b0
45d79f:	8d 04 d5 08 00 00 00 	lea    0x8(,%edx,8),%eax
45d7a6:	50                   	push   %eax
45d7a7:	56                   	push   %esi
45d7a8:	e8 a8 3a 17 00       	call   0x5d1255
45d7ad:	83 c4 08             	add    $0x8,%esp
45d7b0:	5e                   	pop    %esi
45d7b1:	5f                   	pop    %edi
45d7b2:	5b                   	pop    %ebx
45d7b3:	8b e5                	mov    %ebp,%esp
45d7b5:	5d                   	pop    %ebp
45d7b6:	c2 04 00             	ret    $0x4
45d7b9:	cc                   	int3
45d7ba:	cc                   	int3
45d7bb:	cc                   	int3
45d7bc:	cc                   	int3
45d7bd:	cc                   	int3
45d7be:	cc                   	int3
45d7bf:	cc                   	int3
45d7c0:	55                   	push   %ebp
45d7c1:	8b ec                	mov    %esp,%ebp
45d7c3:	51                   	push   %ecx
45d7c4:	8b 55 08             	mov    0x8(%ebp),%edx
45d7c7:	53                   	push   %ebx
45d7c8:	57                   	push   %edi
45d7c9:	8b f9                	mov    %ecx,%edi
45d7cb:	8b 5f 04             	mov    0x4(%edi),%ebx
45d7ce:	3b da                	cmp    %edx,%ebx
45d7d0:	0f 8d a4 00 00 00    	jge    0x45d87a
45d7d6:	8b 4f 08             	mov    0x8(%edi),%ecx
45d7d9:	56                   	push   %esi
45d7da:	85 db                	test   %ebx,%ebx
45d7dc:	7e 17                	jle    0x45d7f5
45d7de:	8b f1                	mov    %ecx,%esi
45d7e0:	83 ee 04             	sub    $0x4,%esi
45d7e3:	8b 49 fc             	mov    -0x4(%ecx),%ecx
45d7e6:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45d7e9:	83 fa 04             	cmp    $0x4,%edx
45d7ec:	7d 12                	jge    0x45d800
45d7ee:	bb 04 00 00 00       	mov    $0x4,%ebx
45d7f3:	eb 21                	jmp    0x45d816
45d7f5:	33 f6                	xor    %esi,%esi
45d7f7:	89 4d fc             	mov    %ecx,-0x4(%ebp)
45d7fa:	85 db                	test   %ebx,%ebx
45d7fc:	75 e5                	jne    0x45d7e3
45d7fe:	eb e9                	jmp    0x45d7e9
45d800:	81 fb 00 00 00 40    	cmp    $0x40000000,%ebx
45d806:	7d 09                	jge    0x45d811
45d808:	03 db                	add    %ebx,%ebx
45d80a:	3b da                	cmp    %edx,%ebx
45d80c:	0f 4c da             	cmovl  %edx,%ebx
45d80f:	eb 05                	jmp    0x45d816
45d811:	bb ff ff ff 7f       	mov    $0x7fffffff,%ebx
45d816:	8d 43 04             	lea    0x4(%ebx),%eax
45d819:	85 c9                	test   %ecx,%ecx
45d81b:	75 0b                	jne    0x45d828
45d81d:	50                   	push   %eax
45d81e:	e8 02 3a 17 00       	call   0x5d1225
45d823:	83 c4 04             	add    $0x4,%esp
45d826:	eb 0e                	jmp    0x45d836
45d828:	83 c0 07             	add    $0x7,%eax
45d82b:	6a 00                	push   $0x0
45d82d:	83 e0 f8             	and    $0xfffffff8,%eax
45d830:	50                   	push   %eax
45d831:	e8 0a dd ff ff       	call   0x45b540
45d836:	8b c8                	mov    %eax,%ecx
45d838:	8b 45 fc             	mov    -0x4(%ebp),%eax
45d83b:	89 01                	mov    %eax,(%ecx)
45d83d:	83 c1 04             	add    $0x4,%ecx
45d840:	8b 57 04             	mov    0x4(%edi),%edx
45d843:	8b 07                	mov    (%edi),%eax
45d845:	89 55 fc             	mov    %edx,-0x4(%ebp)
45d848:	89 5f 04             	mov    %ebx,0x4(%edi)
45d84b:	89 4f 08             	mov    %ecx,0x8(%edi)
45d84e:	85 c0                	test   %eax,%eax
45d850:	7e 11                	jle    0x45d863
45d852:	50                   	push   %eax
45d853:	8d 46 04             	lea    0x4(%esi),%eax
45d856:	50                   	push   %eax
45d857:	51                   	push   %ecx
45d858:	e8 73 55 17 00       	call   0x5d2dd0
45d85d:	8b 55 fc             	mov    -0x4(%ebp),%edx
45d860:	83 c4 0c             	add    $0xc,%esp
45d863:	85 f6                	test   %esi,%esi
45d865:	74 12                	je     0x45d879
45d867:	83 3e 00             	cmpl   $0x0,(%esi)
45d86a:	75 0d                	jne    0x45d879
45d86c:	8d 42 04             	lea    0x4(%edx),%eax
45d86f:	50                   	push   %eax
45d870:	56                   	push   %esi
45d871:	e8 df 39 17 00       	call   0x5d1255
45d876:	83 c4 08             	add    $0x8,%esp
45d879:	5e                   	pop    %esi
45d87a:	5f                   	pop    %edi
45d87b:	5b                   	pop    %ebx
45d87c:	8b e5                	mov    %ebp,%esp
45d87e:	5d                   	pop    %ebp
45d87f:	c2 04 00             	ret    $0x4
45d882:	cc                   	int3
45d883:	cc                   	int3
45d884:	cc                   	int3
45d885:	cc                   	int3
45d886:	cc                   	int3
45d887:	cc                   	int3
45d888:	cc                   	int3
45d889:	cc                   	int3
45d88a:	cc                   	int3
45d88b:	cc                   	int3
45d88c:	cc                   	int3
45d88d:	cc                   	int3
45d88e:	cc                   	int3
45d88f:	cc                   	int3
45d890:	55                   	push   %ebp
45d891:	8b ec                	mov    %esp,%ebp
45d893:	8b 51 04             	mov    0x4(%ecx),%edx
45d896:	8b 45 08             	mov    0x8(%ebp),%eax
45d899:	3b c2                	cmp    %edx,%eax
45d89b:	7e 0b                	jle    0x45d8a8
45d89d:	2b c2                	sub    %edx,%eax
45d89f:	89 45 08             	mov    %eax,0x8(%ebp)
45d8a2:	5d                   	pop    %ebp
45d8a3:	e9 58 fa ff ff       	jmp    0x45d300
45d8a8:	5d                   	pop    %ebp
45d8a9:	c2 04 00             	ret    $0x4
45d8ac:	cc                   	int3
45d8ad:	cc                   	int3
45d8ae:	cc                   	int3
45d8af:	cc                   	int3
45d8b0:	55                   	push   %ebp
45d8b1:	8b ec                	mov    %esp,%ebp
45d8b3:	8b 45 0c             	mov    0xc(%ebp),%eax
45d8b6:	8b 55 08             	mov    0x8(%ebp),%edx
45d8b9:	8b 49 08             	mov    0x8(%ecx),%ecx
45d8bc:	8b 00                	mov    (%eax),%eax
45d8be:	89 04 91             	mov    %eax,(%ecx,%edx,4)
45d8c1:	5d                   	pop    %ebp
45d8c2:	c2 08 00             	ret    $0x8
45d8c5:	cc                   	int3
45d8c6:	cc                   	int3
45d8c7:	cc                   	int3
45d8c8:	cc                   	int3
45d8c9:	cc                   	int3
45d8ca:	cc                   	int3
45d8cb:	cc                   	int3
45d8cc:	cc                   	int3
45d8cd:	cc                   	int3
45d8ce:	cc                   	int3
45d8cf:	cc                   	int3
45d8d0:	55                   	push   %ebp
45d8d1:	8b ec                	mov    %esp,%ebp
45d8d3:	8b 45 0c             	mov    0xc(%ebp),%eax
45d8d6:	8b 55 08             	mov    0x8(%ebp),%edx
45d8d9:	8b 49 08             	mov    0x8(%ecx),%ecx
45d8dc:	f2 0f 10 00          	movsd  (%eax),%xmm0
45d8e0:	f2 0f 11 04 d1       	movsd  %xmm0,(%ecx,%edx,8)
45d8e5:	5d                   	pop    %ebp
45d8e6:	c2 08 00             	ret    $0x8
45d8e9:	cc                   	int3
45d8ea:	cc                   	int3
45d8eb:	cc                   	int3
45d8ec:	cc                   	int3
45d8ed:	cc                   	int3
45d8ee:	cc                   	int3
45d8ef:	cc                   	int3
45d8f0:	55                   	push   %ebp
45d8f1:	8b ec                	mov    %esp,%ebp
45d8f3:	8b 45 0c             	mov    0xc(%ebp),%eax
45d8f6:	56                   	push   %esi
45d8f7:	57                   	push   %edi
45d8f8:	8b 7d 08             	mov    0x8(%ebp),%edi
45d8fb:	8b 70 04             	mov    0x4(%eax),%esi
45d8fe:	8b 10                	mov    (%eax),%edx
45d900:	8b 41 08             	mov    0x8(%ecx),%eax
45d903:	89 14 f8             	mov    %edx,(%eax,%edi,8)
45d906:	89 74 f8 04          	mov    %esi,0x4(%eax,%edi,8)
45d90a:	5f                   	pop    %edi
45d90b:	5e                   	pop    %esi
45d90c:	5d                   	pop    %ebp
45d90d:	c2 08 00             	ret    $0x8
45d910:	55                   	push   %ebp
45d911:	8b ec                	mov    %esp,%ebp
45d913:	8b 45 0c             	mov    0xc(%ebp),%eax
45d916:	8b 55 08             	mov    0x8(%ebp),%edx
45d919:	8b 49 08             	mov    0x8(%ecx),%ecx
45d91c:	8a 00                	mov    (%eax),%al
45d91e:	88 04 0a             	mov    %al,(%edx,%ecx,1)
45d921:	5d                   	pop    %ebp
45d922:	c2 08 00             	ret    $0x8
45d925:	cc                   	int3
45d926:	cc                   	int3
45d927:	cc                   	int3
45d928:	cc                   	int3
45d929:	cc                   	int3
45d92a:	cc                   	int3
45d92b:	cc                   	int3
45d92c:	cc                   	int3
45d92d:	cc                   	int3
45d92e:	cc                   	int3
45d92f:	cc                   	int3
45d930:	8b 41 04             	mov    0x4(%ecx),%eax
45d933:	85 c0                	test   %eax,%eax
45d935:	7e 08                	jle    0x45d93f
45d937:	8d 04 85 04 00 00 00 	lea    0x4(,%eax,4),%eax
45d93e:	c3                   	ret
45d93f:	33 c0                	xor    %eax,%eax
45d941:	c3                   	ret
45d942:	cc                   	int3
45d943:	cc                   	int3
45d944:	cc                   	int3
45d945:	cc                   	int3
45d946:	cc                   	int3
45d947:	cc                   	int3
45d948:	cc                   	int3
45d949:	cc                   	int3
45d94a:	cc                   	int3
45d94b:	cc                   	int3
45d94c:	cc                   	int3
45d94d:	cc                   	int3
45d94e:	cc                   	int3
45d94f:	cc                   	int3
45d950:	8b 41 04             	mov    0x4(%ecx),%eax
45d953:	85 c0                	test   %eax,%eax
45d955:	7e 08                	jle    0x45d95f
45d957:	8d 04 c5 08 00 00 00 	lea    0x8(,%eax,8),%eax
45d95e:	c3                   	ret
45d95f:	33 c0                	xor    %eax,%eax
45d961:	c3                   	ret
45d962:	cc                   	int3
45d963:	cc                   	int3
45d964:	cc                   	int3
45d965:	cc                   	int3
45d966:	cc                   	int3
45d967:	cc                   	int3
45d968:	cc                   	int3
45d969:	cc                   	int3
45d96a:	cc                   	int3
45d96b:	cc                   	int3
45d96c:	cc                   	int3
45d96d:	cc                   	int3
45d96e:	cc                   	int3
45d96f:	cc                   	int3
45d970:	8b 49 04             	mov    0x4(%ecx),%ecx
45d973:	33 d2                	xor    %edx,%edx
45d975:	85 c9                	test   %ecx,%ecx
45d977:	8d 41 04             	lea    0x4(%ecx),%eax
45d97a:	0f 4e c2             	cmovle %edx,%eax
45d97d:	c3                   	ret
45d97e:	cc                   	int3
45d97f:	cc                   	int3
45d980:	53                   	push   %ebx
45d981:	8b d9                	mov    %ecx,%ebx
45d983:	56                   	push   %esi
45d984:	8b 73 08             	mov    0x8(%ebx),%esi
45d987:	8b 43 0c             	mov    0xc(%ebx),%eax
45d98a:	c1 e6 02             	shl    $0x2,%esi
45d98d:	85 c0                	test   %eax,%eax
45d98f:	74 2f                	je     0x45d9c0
45d991:	57                   	push   %edi
45d992:	33 ff                	xor    %edi,%edi
45d994:	39 38                	cmp    %edi,(%eax)
45d996:	7e 21                	jle    0x45d9b9
45d998:	0f 1f 84 00 00 00 00 	nopl   0x0(%eax,%eax,1)
45d99f:	00
45d9a0:	ff 74 b8 04          	push   0x4(%eax,%edi,4)
45d9a4:	e8 07 ba ff ff       	call   0x4593b0
45d9a9:	83 c0 18             	add    $0x18,%eax
45d9ac:	47                   	inc    %edi
45d9ad:	03 f0                	add    %eax,%esi
45d9af:	83 c4 04             	add    $0x4,%esp
45d9b2:	8b 43 0c             	mov    0xc(%ebx),%eax
45d9b5:	3b 38                	cmp    (%eax),%edi
45d9b7:	7c e7                	jl     0x45d9a0
45d9b9:	5f                   	pop    %edi
45d9ba:	8d 46 04             	lea    0x4(%esi),%eax
45d9bd:	5e                   	pop    %esi
45d9be:	5b                   	pop    %ebx
45d9bf:	c3                   	ret
45d9c0:	8b c6                	mov    %esi,%eax
45d9c2:	5e                   	pop    %esi
45d9c3:	5b                   	pop    %ebx
45d9c4:	c3                   	ret
45d9c5:	cc                   	int3
45d9c6:	cc                   	int3
45d9c7:	cc                   	int3
45d9c8:	cc                   	int3
45d9c9:	cc                   	int3
45d9ca:	cc                   	int3
45d9cb:	cc                   	int3
45d9cc:	cc                   	int3
45d9cd:	cc                   	int3
45d9ce:	cc                   	int3
45d9cf:	cc                   	int3
45d9d0:	55                   	push   %ebp
45d9d1:	8b ec                	mov    %esp,%ebp
45d9d3:	6a ff                	push   $0xffffffff
45d9d5:	68 8d 8c 5f 00       	push   $0x5f8c8d
45d9da:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
45d9e0:	50                   	push   %eax
45d9e1:	83 ec 10             	sub    $0x10,%esp
45d9e4:	53                   	push   %ebx
45d9e5:	56                   	push   %esi
45d9e6:	57                   	push   %edi
45d9e7:	a1 c0 14 69 00       	mov    0x6914c0,%eax
45d9ec:	33 c5                	xor    %ebp,%eax
45d9ee:	50                   	push   %eax
45d9ef:	8d 45 f4             	lea    -0xc(%ebp),%eax
45d9f2:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
45d9f8:	8b f9                	mov    %ecx,%edi
45d9fa:	8b 5d 08             	mov    0x8(%ebp),%ebx
45d9fd:	3b fb                	cmp    %ebx,%edi
45d9ff:	0f 84 0c 01 00 00    	je     0x45db11
45da05:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
45da09:	8b 47 08             	mov    0x8(%edi),%eax
45da0c:	74 03                	je     0x45da11
45da0e:	8b 40 fc             	mov    -0x4(%eax),%eax
45da11:	8b 4b 04             	mov    0x4(%ebx),%ecx
45da14:	8b 73 08             	mov    0x8(%ebx),%esi
45da17:	8b d6                	mov    %esi,%edx
45da19:	85 c9                	test   %ecx,%ecx
45da1b:	74 03                	je     0x45da20
45da1d:	8b 56 fc             	mov    -0x4(%esi),%edx
45da20:	3b c2                	cmp    %edx,%eax
45da22:	75 31                	jne    0x45da55
45da24:	8b 03                	mov    (%ebx),%eax
45da26:	8b 17                	mov    (%edi),%edx
45da28:	8b 77 04             	mov    0x4(%edi),%esi
45da2b:	89 07                	mov    %eax,(%edi)
45da2d:	89 4f 04             	mov    %ecx,0x4(%edi)
45da30:	89 13                	mov    %edx,(%ebx)
45da32:	89 73 04             	mov    %esi,0x4(%ebx)
45da35:	8b 4f 08             	mov    0x8(%edi),%ecx
45da38:	8b 43 08             	mov    0x8(%ebx),%eax
45da3b:	89 47 08             	mov    %eax,0x8(%edi)
45da3e:	89 4b 08             	mov    %ecx,0x8(%ebx)
45da41:	8b 4d f4             	mov    -0xc(%ebp),%ecx
45da44:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
45da4b:	59                   	pop    %ecx
45da4c:	5f                   	pop    %edi
45da4d:	5e                   	pop    %esi