45f748:	e8 13 17 00 00       	call   0x460e60
45f74d:	83 c4 04             	add    $0x4,%esp
45f750:	89 45 a8             	mov    %eax,-0x58(%ebp)
45f753:	ff 75 0c             	push   0xc(%ebp)
45f756:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
45f75d:	8b 4d a4             	mov    -0x5c(%ebp),%ecx
45f760:	8d 49 14             	lea    0x14(%ecx),%ecx
45f763:	e8 c8 ee fe ff       	call   0x44e630
45f768:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
45f76b:	8b 75 14             	mov    0x14(%ebp),%esi
45f76e:	c1 e1 02             	shl    $0x2,%ecx
45f771:	89 4d d0             	mov    %ecx,-0x30(%ebp)
45f774:	03 4d a4             	add    -0x5c(%ebp),%ecx
45f777:	56                   	push   %esi
45f778:	e8 b3 ee fe ff       	call   0x44e630
45f77d:	83 7d e4 01          	cmpl   $0x1,-0x1c(%ebp)
45f781:	8b 0b                	mov    (%ebx),%ecx
45f783:	8b 7d a4             	mov    -0x5c(%ebp),%edi
45f786:	75 27                	jne    0x45f7af
45f788:	56                   	push   %esi
45f789:	8b 71 0c             	mov    0xc(%ecx),%esi
45f78c:	8b ce                	mov    %esi,%ecx
45f78e:	ff 75 0c             	push   0xc(%ebp)
45f791:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45f797:	8b cb                	mov    %ebx,%ecx
45f799:	ff d6                	call   *%esi
45f79b:	50                   	push   %eax
45f79c:	8d 4f 3c             	lea    0x3c(%edi),%ecx
45f79f:	e8 8c ee fe ff       	call   0x44e630
45f7a4:	8b 45 ec             	mov    -0x14(%ebp),%eax
45f7a7:	89 45 ec             	mov    %eax,-0x14(%ebp)
45f7aa:	e9 5b 02 00 00       	jmp    0x45fa0a
45f7af:	8b 71 18             	mov    0x18(%ecx),%esi
45f7b2:	8b ce                	mov    %esi,%ecx
45f7b4:	ff 75 0c             	push   0xc(%ebp)
45f7b7:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45f7bd:	8b cb                	mov    %ebx,%ecx
45f7bf:	ff d6                	call   *%esi
45f7c1:	50                   	push   %eax
45f7c2:	8d 4f 28             	lea    0x28(%edi),%ecx
45f7c5:	e8 66 ee fe ff       	call   0x44e630
45f7ca:	8b 45 ec             	mov    -0x14(%ebp),%eax
45f7cd:	8b 7d a4             	mov    -0x5c(%ebp),%edi
45f7d0:	ff 75 14             	push   0x14(%ebp)
45f7d3:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
45f7d6:	8b 03                	mov    (%ebx),%eax
45f7d8:	c1 e1 03             	shl    $0x3,%ecx
45f7db:	89 4d b8             	mov    %ecx,-0x48(%ebp)
45f7de:	03 f9                	add    %ecx,%edi
45f7e0:	8b 70 18             	mov    0x18(%eax),%esi
45f7e3:	8b ce                	mov    %esi,%ecx
45f7e5:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45f7eb:	8b cb                	mov    %ebx,%ecx
45f7ed:	ff d6                	call   *%esi
45f7ef:	50                   	push   %eax
45f7f0:	8b cf                	mov    %edi,%ecx
45f7f2:	e8 39 ee fe ff       	call   0x44e630
45f7f7:	8b 55 ec             	mov    -0x14(%ebp),%edx
45f7fa:	83 fa 03             	cmp    $0x3,%edx
45f7fd:	76 61                	jbe    0x45f860
45f7ff:	8d 42 fc             	lea    -0x4(%edx),%eax
45f802:	89 55 ec             	mov    %edx,-0x14(%ebp)
45f805:	d1 e8                	shr    $1,%eax
45f807:	b9 3c 00 00 00       	mov    $0x3c,%ecx
45f80c:	40                   	inc    %eax
45f80d:	89 4d d8             	mov    %ecx,-0x28(%ebp)
45f810:	89 45 d4             	mov    %eax,-0x2c(%ebp)
45f813:	8b 45 e4             	mov    -0x1c(%ebp),%eax
45f816:	89 45 e4             	mov    %eax,-0x1c(%ebp)
45f819:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
45f820:	8b 45 a4             	mov    -0x5c(%ebp),%eax
45f823:	8d 70 28             	lea    0x28(%eax),%esi
45f826:	8d 3c 01             	lea    (%ecx,%eax,1),%edi
45f829:	8d 50 d8             	lea    -0x28(%eax),%edx
45f82c:	8b 03                	mov    (%ebx),%eax
45f82e:	03 d1                	add    %ecx,%edx
45f830:	56                   	push   %esi
45f831:	52                   	push   %edx
45f832:	8b 70 0c             	mov    0xc(%eax),%esi
45f835:	8b ce                	mov    %esi,%ecx
45f837:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45f83d:	8b cb                	mov    %ebx,%ecx
45f83f:	ff d6                	call   *%esi
45f841:	50                   	push   %eax
45f842:	8b cf                	mov    %edi,%ecx
45f844:	e8 e7 ed fe ff       	call   0x44e630
45f849:	8b 4d d8             	mov    -0x28(%ebp),%ecx
45f84c:	83 c1 28             	add    $0x28,%ecx
45f84f:	83 6d d4 01          	subl   $0x1,-0x2c(%ebp)
45f853:	89 4d d8             	mov    %ecx,-0x28(%ebp)
45f856:	75 c8                	jne    0x45f820
45f858:	8b 45 e8             	mov    -0x18(%ebp),%eax
45f85b:	8b 55 ec             	mov    -0x14(%ebp),%edx
45f85e:	eb 21                	jmp    0x45f881
45f860:	8b 45 e4             	mov    -0x1c(%ebp),%eax
45f863:	8b 4d dc             	mov    -0x24(%ebp),%ecx
45f866:	89 45 e4             	mov    %eax,-0x1c(%ebp)
45f869:	8b 45 e0             	mov    -0x20(%ebp),%eax
45f86c:	89 45 e0             	mov    %eax,-0x20(%ebp)
45f86f:	8b 45 e8             	mov    -0x18(%ebp),%eax
45f872:	89 45 e8             	mov    %eax,-0x18(%ebp)
45f875:	89 4d dc             	mov    %ecx,-0x24(%ebp)
45f878:	83 fa 01             	cmp    $0x1,%edx
45f87b:	0f 86 a2 00 00 00    	jbe    0x45f923
45f881:	8b 75 d0             	mov    -0x30(%ebp),%esi
45f884:	8d 4a 01             	lea    0x1(%edx),%ecx
45f887:	83 c2 fe             	add    $0xfffffffe,%edx
45f88a:	89 4d c8             	mov    %ecx,-0x38(%ebp)
45f88d:	83 c6 14             	add    $0x14,%esi
45f890:	d1 ea                	shr    $1,%edx
45f892:	bf 14 00 00 00       	mov    $0x14,%edi
45f897:	89 75 c4             	mov    %esi,-0x3c(%ebp)
45f89a:	42                   	inc    %edx
45f89b:	89 7d c0             	mov    %edi,-0x40(%ebp)
45f89e:	89 55 bc             	mov    %edx,-0x44(%ebp)
45f8a1:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
45f8a4:	3b c8                	cmp    %eax,%ecx
45f8a6:	73 5e                	jae    0x45f906
45f8a8:	8b ce                	mov    %esi,%ecx
45f8aa:	89 75 d8             	mov    %esi,-0x28(%ebp)
45f8ad:	8b d7                	mov    %edi,%edx
45f8af:	89 7d cc             	mov    %edi,-0x34(%ebp)
45f8b2:	8b 45 a4             	mov    -0x5c(%ebp),%eax
45f8b5:	03 d0                	add    %eax,%edx
45f8b7:	ff 75 14             	push   0x14(%ebp)
45f8ba:	52                   	push   %edx
45f8bb:	8d 3c 01             	lea    (%ecx,%eax,1),%edi
45f8be:	8b 03                	mov    (%ebx),%eax
45f8c0:	8b 70 0c             	mov    0xc(%eax),%esi
45f8c3:	8b ce                	mov    %esi,%ecx
45f8c5:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45f8cb:	8b cb                	mov    %ebx,%ecx
45f8cd:	ff d6                	call   *%esi
45f8cf:	50                   	push   %eax
45f8d0:	8b cf                	mov    %edi,%ecx
45f8d2:	e8 59 ed fe ff       	call   0x44e630
45f8d7:	8b 45 d4             	mov    -0x2c(%ebp),%eax
45f8da:	8b 4d d8             	mov    -0x28(%ebp),%ecx
45f8dd:	8b 55 cc             	mov    -0x34(%ebp),%edx
45f8e0:	03 45 ec             	add    -0x14(%ebp),%eax
45f8e3:	03 4d d0             	add    -0x30(%ebp),%ecx
45f8e6:	03 55 d0             	add    -0x30(%ebp),%edx
45f8e9:	89 45 d4             	mov    %eax,-0x2c(%ebp)
45f8ec:	89 4d d8             	mov    %ecx,-0x28(%ebp)
45f8ef:	89 55 cc             	mov    %edx,-0x34(%ebp)
45f8f2:	3b 45 e8             	cmp    -0x18(%ebp),%eax
45f8f5:	72 bb                	jb     0x45f8b2
45f8f7:	8b 45 e8             	mov    -0x18(%ebp),%eax
45f8fa:	8b 4d c8             	mov    -0x38(%ebp),%ecx
45f8fd:	8b 75 c4             	mov    -0x3c(%ebp),%esi
45f900:	8b 7d c0             	mov    -0x40(%ebp),%edi
45f903:	8b 55 bc             	mov    -0x44(%ebp),%edx
45f906:	83 c1 02             	add    $0x2,%ecx
45f909:	83 c6 28             	add    $0x28,%esi
45f90c:	83 c7 28             	add    $0x28,%edi
45f90f:	89 4d c8             	mov    %ecx,-0x38(%ebp)
45f912:	83 ea 01             	sub    $0x1,%edx
45f915:	89 75 c4             	mov    %esi,-0x3c(%ebp)
45f918:	89 7d c0             	mov    %edi,-0x40(%ebp)
45f91b:	89 55 bc             	mov    %edx,-0x44(%ebp)
45f91e:	75 81                	jne    0x45f8a1
45f920:	8b 55 ec             	mov    -0x14(%ebp),%edx
45f923:	8b 75 e0             	mov    -0x20(%ebp),%esi
45f926:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
45f929:	03 f6                	add    %esi,%esi
45f92b:	89 4d bc             	mov    %ecx,-0x44(%ebp)
45f92e:	89 75 c8             	mov    %esi,-0x38(%ebp)
45f931:	3b 4d dc             	cmp    -0x24(%ebp),%ecx
45f934:	73 68                	jae    0x45f99e
45f936:	8b c1                	mov    %ecx,%eax
45f938:	8d 3c 89             	lea    (%ecx,%ecx,4),%edi
45f93b:	2b c6                	sub    %esi,%eax
45f93d:	c1 e7 02             	shl    $0x2,%edi
45f940:	89 7d c0             	mov    %edi,-0x40(%ebp)
45f943:	8d 14 80             	lea    (%eax,%eax,4),%edx
45f946:	c1 e2 02             	shl    $0x2,%edx
45f949:	89 55 c4             	mov    %edx,-0x3c(%ebp)
45f94c:	0f 1f 40 00          	nopl   0x0(%eax)
45f950:	8b 45 a4             	mov    -0x5c(%ebp),%eax
45f953:	03 d0                	add    %eax,%edx
45f955:	8b 75 b8             	mov    -0x48(%ebp),%esi
45f958:	03 f8                	add    %eax,%edi
45f95a:	03 f0                	add    %eax,%esi
45f95c:	8b 03                	mov    (%ebx),%eax
45f95e:	56                   	push   %esi
45f95f:	52                   	push   %edx
45f960:	8b 70 0c             	mov    0xc(%eax),%esi
45f963:	8b ce                	mov    %esi,%ecx
45f965:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45f96b:	8b cb                	mov    %ebx,%ecx
45f96d:	ff d6                	call   *%esi
45f96f:	50                   	push   %eax
45f970:	8b cf                	mov    %edi,%ecx
45f972:	e8 b9 ec fe ff       	call   0x44e630
45f977:	8b 4d bc             	mov    -0x44(%ebp),%ecx
45f97a:	8b 7d c0             	mov    -0x40(%ebp),%edi
45f97d:	8b 55 c4             	mov    -0x3c(%ebp),%edx
45f980:	8b 75 c8             	mov    -0x38(%ebp),%esi
45f983:	03 ce                	add    %esi,%ecx
45f985:	03 7d b8             	add    -0x48(%ebp),%edi
45f988:	03 55 b8             	add    -0x48(%ebp),%edx
45f98b:	8b 45 e8             	mov    -0x18(%ebp),%eax
45f98e:	89 4d bc             	mov    %ecx,-0x44(%ebp)
45f991:	89 7d c0             	mov    %edi,-0x40(%ebp)
45f994:	89 55 c4             	mov    %edx,-0x3c(%ebp)
45f997:	3b c8                	cmp    %eax,%ecx
45f999:	72 b5                	jb     0x45f950
45f99b:	8b 55 ec             	mov    -0x14(%ebp),%edx
45f99e:	89 55 c0             	mov    %edx,-0x40(%ebp)
45f9a1:	8b ca                	mov    %edx,%ecx
45f9a3:	3b d0                	cmp    %eax,%edx
45f9a5:	73 63                	jae    0x45fa0a
45f9a7:	8d 04 11             	lea    (%ecx,%edx,1),%eax
45f9aa:	8d 51 02             	lea    0x2(%ecx),%edx
45f9ad:	3b d0                	cmp    %eax,%edx
45f9af:	73 4c                	jae    0x45f9fd
45f9b1:	2b c2                	sub    %edx,%eax
45f9b3:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
45f9b6:	48                   	dec    %eax
45f9b7:	c1 e1 02             	shl    $0x2,%ecx
45f9ba:	d1 e8                	shr    $1,%eax
45f9bc:	40                   	inc    %eax
45f9bd:	89 4d b8             	mov    %ecx,-0x48(%ebp)
45f9c0:	89 45 bc             	mov    %eax,-0x44(%ebp)
45f9c3:	8b 7d a4             	mov    -0x5c(%ebp),%edi
45f9c6:	8b 03                	mov    (%ebx),%eax
45f9c8:	03 f9                	add    %ecx,%edi
45f9ca:	ff 75 0c             	push   0xc(%ebp)
45f9cd:	8b 70 0c             	mov    0xc(%eax),%esi
45f9d0:	8d 57 ec             	lea    -0x14(%edi),%edx
45f9d3:	52                   	push   %edx
45f9d4:	8b ce                	mov    %esi,%ecx
45f9d6:	ff 15 d4 e2 49 00    	call   *0x49e2d4
45f9dc:	8b cb                	mov    %ebx,%ecx
45f9de:	ff d6                	call   *%esi
45f9e0:	50                   	push   %eax
45f9e1:	8b cf                	mov    %edi,%ecx
45f9e3:	e8 48 ec fe ff       	call   0x44e630
45f9e8:	8b 4d b8             	mov    -0x48(%ebp),%ecx
45f9eb:	83 c1 28             	add    $0x28,%ecx
45f9ee:	83 6d bc 01          	subl   $0x1,-0x44(%ebp)
45f9f2:	89 4d b8             	mov    %ecx,-0x48(%ebp)
45f9f5:	75 cc                	jne    0x45f9c3
45f9f7:	8b 4d c0             	mov    -0x40(%ebp),%ecx
45f9fa:	8b 75 c8             	mov    -0x38(%ebp),%esi
45f9fd:	8b 55 ec             	mov    -0x14(%ebp),%edx
45fa00:	03 ce                	add    %esi,%ecx
45fa02:	89 4d c0             	mov    %ecx,-0x40(%ebp)
45fa05:	3b 4d e8             	cmp    -0x18(%ebp),%ecx
45fa08:	72 9d                	jb     0x45f9a7
45fa0a:	8d 4d 94             	lea    -0x6c(%ebp),%ecx
45fa0d:	e8 7e e7 fe ff       	call   0x44e190
45fa12:	51                   	push   %ecx
45fa13:	6a 02                	push   $0x2
45fa15:	c7 45 90 dc 6b 4b 00 	movl   $0x4b6bdc,-0x70(%ebp)
45fa1c:	c7 45 98 02 00 00 00 	movl   $0x2,-0x68(%ebp)
45fa23:	e8 58 3d ff ff       	call   0x453780
45fa28:	89 45 9c             	mov    %eax,-0x64(%ebp)
45fa2b:	c7 45 a0 00 00 00 00 	movl   $0x0,-0x60(%ebp)
45fa32:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
45fa39:	8b 45 9c             	mov    -0x64(%ebp),%eax
45fa3c:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
45fa42:	8b 45 b4             	mov    -0x4c(%ebp),%eax
45fa45:	33 ff                	xor    %edi,%edi
45fa47:	33 f6                	xor    %esi,%esi
45fa49:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
45fa4d:	83 c0 ff             	add    $0xffffffff,%eax
45fa50:	c6 45 f3 01          	movb   $0x1,-0xd(%ebp)
45fa54:	89 45 bc             	mov    %eax,-0x44(%ebp)
45fa57:	8b c8                	mov    %eax,%ecx
45fa59:	89 45 e8             	mov    %eax,-0x18(%ebp)
45fa5c:	0f 88 6c 01 00 00    	js     0x45fbce
45fa62:	8b d1                	mov    %ecx,%edx
45fa64:	8b c1                	mov    %ecx,%eax
45fa66:	c1 ea 05             	shr    $0x5,%edx
45fa69:	83 e0 1f             	and    $0x1f,%eax
45fa6c:	89 45 b8             	mov    %eax,-0x48(%ebp)
45fa6f:	8d 04 95 00 00 00 00 	lea    0x0(,%edx,4),%eax
45fa76:	89 45 dc             	mov    %eax,-0x24(%ebp)
45fa79:	8b 45 10             	mov    0x10(%ebp),%eax
45fa7c:	3b 50 08             	cmp    0x8(%eax),%edx
45fa7f:	72 04                	jb     0x45fa85
45fa81:	33 c0                	xor    %eax,%eax
45fa83:	eb 1a                	jmp    0x45fa9f
45fa85:	8b 40 0c             	mov    0xc(%eax),%eax
45fa88:	8b 4d dc             	mov    -0x24(%ebp),%ecx
45fa8b:	8b 04 01             	mov    (%ecx,%eax,1),%eax
45fa8e:	8b 4d b8             	mov    -0x48(%ebp),%ecx
45fa91:	d3 e8                	shr    %cl,%eax
45fa93:	8b 4d dc             	mov    -0x24(%ebp),%ecx
45fa96:	83 e0 01             	and    $0x1,%eax
45fa99:	89 4d dc             	mov    %ecx,-0x24(%ebp)
45fa9c:	8b 4d e8             	mov    -0x18(%ebp),%ecx
45fa9f:	8d 3c 78             	lea    (%eax,%edi,2),%edi
45faa2:	8b 45 18             	mov    0x18(%ebp),%eax
45faa5:	3b 50 08             	cmp    0x8(%eax),%edx
45faa8:	72 04                	jb     0x45faae
45faaa:	33 c0                	xor    %eax,%eax
45faac:	eb 14                	jmp    0x45fac2
45faae:	8b 40 0c             	mov    0xc(%eax),%eax
45fab1:	8b 4d dc             	mov    -0x24(%ebp),%ecx
45fab4:	8b 04 01             	mov    (%ecx,%eax,1),%eax
45fab7:	8b 4d b8             	mov    -0x48(%ebp),%ecx
45faba:	d3 e8                	shr    %cl,%eax
45fabc:	8b 4d e8             	mov    -0x18(%ebp),%ecx
45fabf:	83 e0 01             	and    $0x1,%eax
45fac2:	8d 34 70             	lea    (%eax,%esi,2),%esi
45fac5:	85 c9                	test   %ecx,%ecx
45fac7:	74 15                	je     0x45fade
45fac9:	8b 55 ec             	mov    -0x14(%ebp),%edx
45facc:	8d 04 3f             	lea    (%edi,%edi,1),%eax
45facf:	3b c2                	cmp    %edx,%eax
45fad1:	73 0b                	jae    0x45fade
45fad3:	8d 04 36             	lea    (%esi,%esi,1),%eax
45fad6:	3b c2                	cmp    %edx,%eax
45fad8:	0f 82 e4 00 00 00    	jb     0x45fbc2
45fade:	8b 55 bc             	mov    -0x44(%ebp),%edx
45fae1:	8b 45 e8             	mov    -0x18(%ebp),%eax
45fae4:	2b d1                	sub    %ecx,%edx
45fae6:	33 c9                	xor    %ecx,%ecx
45fae8:	89 45 bc             	mov    %eax,-0x44(%ebp)
45faeb:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
45faf0:	85 ff                	test   %edi,%edi
45faf2:	75 04                	jne    0x45faf8
45faf4:	85 f6                	test   %esi,%esi
45faf6:	74 10                	je     0x45fb08
45faf8:	8b c6                	mov    %esi,%eax
45fafa:	0b c7                	or     %edi,%eax
45fafc:	a8 01                	test   $0x1,%al
45fafe:	75 08                	jne    0x45fb08
45fb00:	d1 ef                	shr    $1,%edi
45fb02:	4a                   	dec    %edx
45fb03:	d1 ee                	shr    $1,%esi
45fb05:	41                   	inc    %ecx
45fb06:	eb e8                	jmp    0x45faf0
45fb08:	80 7d f3 00          	cmpb   $0x0,-0xd(%ebp)
45fb0c:	89 4d b8             	mov    %ecx,-0x48(%ebp)
45fb0f:	89 7d c0             	mov    %edi,-0x40(%ebp)
45fb12:	74 1f                	je     0x45fb33
45fb14:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
45fb17:	8b 45 a4             	mov    -0x5c(%ebp),%eax
45fb1a:	d3 e6                	shl    %cl,%esi
45fb1c:	03 f7                	add    %edi,%esi
45fb1e:	8d 0c b6             	lea    (%esi,%esi,4),%ecx
45fb21:	8d 04 88             	lea    (%eax,%ecx,4),%eax
45fb24:	50                   	push   %eax
45fb25:	8d 4d 90             	lea    -0x70(%ebp),%ecx
45fb28:	e8 03 eb fe ff       	call   0x44e630
45fb2d:	c6 45 f3 00          	movb   $0x0,-0xd(%ebp)
45fb31:	eb 5e                	jmp    0x45fb91