5c08e1:	83 c4 08             	add    $0x8,%esp
5c08e4:	85 db                	test   %ebx,%ebx
5c08e6:	75 ed                	jne    0x5c08d5
5c08e8:	5f                   	pop    %edi
5c08e9:	5e                   	pop    %esi
5c08ea:	5b                   	pop    %ebx
5c08eb:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c08ee:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c08f5:	8b e5                	mov    %ebp,%esp
5c08f7:	5d                   	pop    %ebp
5c08f8:	c2 08 00             	ret    $0x8
5c08fb:	3b d7                	cmp    %edi,%edx
5c08fd:	74 e9                	je     0x5c08e8
5c08ff:	8b 42 04             	mov    0x4(%edx),%eax
5c0902:	33 db                	xor    %ebx,%ebx
5c0904:	89 38                	mov    %edi,(%eax)
5c0906:	89 47 04             	mov    %eax,0x4(%edi)
5c0909:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
5c0910:	8b 32                	mov    (%edx),%esi
5c0912:	6a 1c                	push   $0x1c
5c0914:	52                   	push   %edx
5c0915:	e8 3b 09 01 00       	call   0x5d1255
5c091a:	83 c4 08             	add    $0x8,%esp
5c091d:	43                   	inc    %ebx
5c091e:	8b d6                	mov    %esi,%edx
5c0920:	3b f7                	cmp    %edi,%esi
5c0922:	75 ec                	jne    0x5c0910
5c0924:	8b 45 f0             	mov    -0x10(%ebp),%eax
5c0927:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c092a:	5f                   	pop    %edi
5c092b:	5e                   	pop    %esi
5c092c:	29 58 04             	sub    %ebx,0x4(%eax)
5c092f:	5b                   	pop    %ebx
5c0930:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c0937:	8b e5                	mov    %ebp,%esp
5c0939:	5d                   	pop    %ebp
5c093a:	c2 08 00             	ret    $0x8
5c093d:	cc                   	int3
5c093e:	cc                   	int3
5c093f:	cc                   	int3
5c0940:	55                   	push   %ebp
5c0941:	8b ec                	mov    %esp,%ebp
5c0943:	6a ff                	push   $0xffffffff
5c0945:	68 90 02 60 00       	push   $0x600290
5c094a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5c0950:	50                   	push   %eax
5c0951:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5c0958:	83 ec 1c             	sub    $0x1c,%esp
5c095b:	53                   	push   %ebx
5c095c:	56                   	push   %esi
5c095d:	57                   	push   %edi
5c095e:	89 65 f0             	mov    %esp,-0x10(%ebp)
5c0961:	8b f9                	mov    %ecx,%edi
5c0963:	89 7d d8             	mov    %edi,-0x28(%ebp)
5c0966:	8b 37                	mov    (%edi),%esi
5c0968:	8b 55 08             	mov    0x8(%ebp),%edx
5c096b:	2b d6                	sub    %esi,%edx
5c096d:	b8 67 66 66 66       	mov    $0x66666667,%eax
5c0972:	f7 ea                	imul   %edx
5c0974:	c1 fa 03             	sar    $0x3,%edx
5c0977:	8b c2                	mov    %edx,%eax
5c0979:	c1 e8 1f             	shr    $0x1f,%eax
5c097c:	03 c2                	add    %edx,%eax
5c097e:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5c0981:	8b 4f 04             	mov    0x4(%edi),%ecx
5c0984:	2b ce                	sub    %esi,%ecx
5c0986:	b8 67 66 66 66       	mov    $0x66666667,%eax
5c098b:	f7 e9                	imul   %ecx
5c098d:	c1 fa 03             	sar    $0x3,%edx
5c0990:	8b c2                	mov    %edx,%eax
5c0992:	c1 e8 1f             	shr    $0x1f,%eax
5c0995:	03 c2                	add    %edx,%eax
5c0997:	89 45 e0             	mov    %eax,-0x20(%ebp)
5c099a:	3d cc cc cc 0c       	cmp    $0xccccccc,%eax
5c099f:	0f 84 f7 00 00 00    	je     0x5c0a9c
5c09a5:	8d 58 01             	lea    0x1(%eax),%ebx
5c09a8:	8b 4f 08             	mov    0x8(%edi),%ecx
5c09ab:	2b ce                	sub    %esi,%ecx
5c09ad:	b8 67 66 66 66       	mov    $0x66666667,%eax
5c09b2:	f7 e9                	imul   %ecx
5c09b4:	c1 fa 03             	sar    $0x3,%edx
5c09b7:	8b ca                	mov    %edx,%ecx
5c09b9:	c1 e9 1f             	shr    $0x1f,%ecx
5c09bc:	03 ca                	add    %edx,%ecx
5c09be:	8b d1                	mov    %ecx,%edx
5c09c0:	d1 ea                	shr    $1,%edx
5c09c2:	b8 cc cc cc 0c       	mov    $0xccccccc,%eax
5c09c7:	2b c2                	sub    %edx,%eax
5c09c9:	3b c8                	cmp    %eax,%ecx
5c09cb:	76 07                	jbe    0x5c09d4
5c09cd:	be cc cc cc 0c       	mov    $0xccccccc,%esi
5c09d2:	eb 08                	jmp    0x5c09dc
5c09d4:	8d 34 0a             	lea    (%edx,%ecx,1),%esi
5c09d7:	3b f3                	cmp    %ebx,%esi
5c09d9:	0f 42 f3             	cmovb  %ebx,%esi
5c09dc:	89 75 e8             	mov    %esi,-0x18(%ebp)
5c09df:	89 75 ec             	mov    %esi,-0x14(%ebp)
5c09e2:	8d 45 ec             	lea    -0x14(%ebp),%eax
5c09e5:	50                   	push   %eax
5c09e6:	57                   	push   %edi
5c09e7:	e8 04 fd ff ff       	call   0x5c06f0
5c09ec:	83 c4 08             	add    $0x8,%esp
5c09ef:	8b d8                	mov    %eax,%ebx
5c09f1:	89 5d dc             	mov    %ebx,-0x24(%ebp)
5c09f4:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
5c09fb:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5c09fe:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
5c0a01:	8d 14 8b             	lea    (%ebx,%ecx,4),%edx
5c0a04:	89 55 ec             	mov    %edx,-0x14(%ebp)
5c0a07:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5c0a0a:	8b 01                	mov    (%ecx),%eax
5c0a0c:	89 02                	mov    %eax,(%edx)
5c0a0e:	8b 41 04             	mov    0x4(%ecx),%eax
5c0a11:	89 42 04             	mov    %eax,0x4(%edx)
5c0a14:	8b 41 08             	mov    0x8(%ecx),%eax
5c0a17:	89 42 08             	mov    %eax,0x8(%edx)
5c0a1a:	8b 41 0c             	mov    0xc(%ecx),%eax
5c0a1d:	89 42 0c             	mov    %eax,0xc(%edx)
5c0a20:	8b 41 10             	mov    0x10(%ecx),%eax
5c0a23:	89 42 10             	mov    %eax,0x10(%edx)
5c0a26:	8b 57 04             	mov    0x4(%edi),%edx
5c0a29:	8b 0f                	mov    (%edi),%ecx
5c0a2b:	8b 45 08             	mov    0x8(%ebp),%eax
5c0a2e:	3b c2                	cmp    %edx,%eax
5c0a30:	75 04                	jne    0x5c0a36
5c0a32:	8b c3                	mov    %ebx,%eax
5c0a34:	eb 18                	jmp    0x5c0a4e
5c0a36:	57                   	push   %edi
5c0a37:	53                   	push   %ebx
5c0a38:	50                   	push   %eax
5c0a39:	51                   	push   %ecx
5c0a3a:	e8 51 10 00 00       	call   0x5c1a90
5c0a3f:	83 c4 10             	add    $0x10,%esp
5c0a42:	8b 4d 08             	mov    0x8(%ebp),%ecx
5c0a45:	8b 57 04             	mov    0x4(%edi),%edx
5c0a48:	8b 45 ec             	mov    -0x14(%ebp),%eax
5c0a4b:	83 c0 14             	add    $0x14,%eax
5c0a4e:	57                   	push   %edi
5c0a4f:	50                   	push   %eax
5c0a50:	52                   	push   %edx
5c0a51:	51                   	push   %ecx
5c0a52:	e8 39 10 00 00       	call   0x5c1a90
5c0a57:	83 c4 10             	add    $0x10,%esp
5c0a5a:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
5c0a61:	56                   	push   %esi
5c0a62:	8b 45 e0             	mov    -0x20(%ebp),%eax
5c0a65:	40                   	inc    %eax
5c0a66:	50                   	push   %eax
5c0a67:	53                   	push   %ebx
5c0a68:	8b cf                	mov    %edi,%ecx
5c0a6a:	e8 51 59 00 00       	call   0x5c63c0
5c0a6f:	8b 45 ec             	mov    -0x14(%ebp),%eax
5c0a72:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c0a75:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c0a7c:	5f                   	pop    %edi
5c0a7d:	5e                   	pop    %esi
5c0a7e:	5b                   	pop    %ebx
5c0a7f:	8b e5                	mov    %ebp,%esp
5c0a81:	5d                   	pop    %ebp
5c0a82:	c2 08 00             	ret    $0x8
5c0a85:	ff 75 e8             	push   -0x18(%ebp)
5c0a88:	ff 75 dc             	push   -0x24(%ebp)
5c0a8b:	8b 4d d8             	mov    -0x28(%ebp),%ecx
5c0a8e:	e8 fd 5f 00 00       	call   0x5c6a90
5c0a93:	6a 00                	push   $0x0
5c0a95:	6a 00                	push   $0x0
5c0a97:	e8 a3 30 01 00       	call   0x5d3b3f
5c0a9c:	e8 ff bc e9 ff       	call   0x45c7a0
5c0aa1:	cc                   	int3
5c0aa2:	cc                   	int3
5c0aa3:	cc                   	int3
5c0aa4:	cc                   	int3
5c0aa5:	cc                   	int3
5c0aa6:	cc                   	int3
5c0aa7:	cc                   	int3
5c0aa8:	cc                   	int3
5c0aa9:	cc                   	int3
5c0aaa:	cc                   	int3
5c0aab:	cc                   	int3
5c0aac:	cc                   	int3
5c0aad:	cc                   	int3
5c0aae:	cc                   	int3
5c0aaf:	cc                   	int3
5c0ab0:	55                   	push   %ebp
5c0ab1:	8b ec                	mov    %esp,%ebp
5c0ab3:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
5c0ab9:	6a ff                	push   $0xffffffff
5c0abb:	68 20 fc 5f 00       	push   $0x5ffc20
5c0ac0:	50                   	push   %eax
5c0ac1:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
5c0ac8:	53                   	push   %ebx
5c0ac9:	56                   	push   %esi
5c0aca:	8b 75 0c             	mov    0xc(%ebp),%esi
5c0acd:	8b d9                	mov    %ecx,%ebx
5c0acf:	57                   	push   %edi
5c0ad0:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
5c0ad4:	75 26                	jne    0x5c0afc
5c0ad6:	8b 7d 08             	mov    0x8(%ebp),%edi
5c0ad9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
5c0ae0:	ff 76 08             	push   0x8(%esi)
5c0ae3:	8b cb                	mov    %ebx,%ecx
5c0ae5:	57                   	push   %edi
5c0ae6:	e8 c5 ff ff ff       	call   0x5c0ab0
5c0aeb:	56                   	push   %esi
5c0aec:	8b 36                	mov    (%esi),%esi
5c0aee:	e8 3a f4 01 00       	call   0x5dff2d
5c0af3:	83 c4 04             	add    $0x4,%esp
5c0af6:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
5c0afa:	74 e4                	je     0x5c0ae0
5c0afc:	8b 4d f4             	mov    -0xc(%ebp),%ecx
5c0aff:	5f                   	pop    %edi
5c0b00:	5e                   	pop    %esi
5c0b01:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5c0b08:	5b                   	pop    %ebx
5c0b09:	8b e5                	mov    %ebp,%esp
5c0b0b:	5d                   	pop    %ebp
5c0b0c:	c2 08 00             	ret    $0x8
5c0b0f:	cc                   	int3
5c0b10:	cc                   	int3
5c0b11:	cc                   	int3
5c0b12:	cc                   	int3
5c0b13:	cc                   	int3
5c0b14:	cc                   	int3
5c0b15:	cc                   	int3
5c0b16:	cc                   	int3
5c0b17:	cc                   	int3
5c0b18:	cc                   	int3
5c0b19:	cc                   	int3
5c0b1a:	cc                   	int3
5c0b1b:	cc                   	int3
5c0b1c:	cc                   	int3
5c0b1d:	cc                   	int3
5c0b1e:	cc                   	int3
5c0b1f:	cc                   	int3
5c0b20:	55                   	push   %ebp
5c0b21:	8b ec                	mov    %esp,%ebp
5c0b23:	8b 51 18             	mov    0x18(%ecx),%edx
5c0b26:	8b 41 0c             	mov    0xc(%ecx),%eax
5c0b29:	23 55 10             	and    0x10(%ebp),%edx
5c0b2c:	8b 49 04             	mov    0x4(%ecx),%ecx
5c0b2f:	8d 14 d0             	lea    (%eax,%edx,8),%edx
5c0b32:	8b 42 04             	mov    0x4(%edx),%eax
5c0b35:	3b c1                	cmp    %ecx,%eax
5c0b37:	75 10                	jne    0x5c0b49
5c0b39:	8b 45 08             	mov    0x8(%ebp),%eax
5c0b3c:	89 08                	mov    %ecx,(%eax)
5c0b3e:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
5c0b45:	5d                   	pop    %ebp
5c0b46:	c2 0c 00             	ret    $0xc
5c0b49:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5c0b4c:	8b 12                	mov    (%edx),%edx
5c0b4e:	8b 09                	mov    (%ecx),%ecx
5c0b50:	3b 48 08             	cmp    0x8(%eax),%ecx
5c0b53:	74 0c                	je     0x5c0b61
5c0b55:	3b c2                	cmp    %edx,%eax
5c0b57:	74 18                	je     0x5c0b71
5c0b59:	8b 40 04             	mov    0x4(%eax),%eax
5c0b5c:	3b 48 08             	cmp    0x8(%eax),%ecx
5c0b5f:	75 f4                	jne    0x5c0b55
5c0b61:	8b 55 08             	mov    0x8(%ebp),%edx
5c0b64:	8b 08                	mov    (%eax),%ecx
5c0b66:	89 42 04             	mov    %eax,0x4(%edx)
5c0b69:	8b c2                	mov    %edx,%eax
5c0b6b:	89 0a                	mov    %ecx,(%edx)
5c0b6d:	5d                   	pop    %ebp
5c0b6e:	c2 0c 00             	ret    $0xc
5c0b71:	8b 4d 08             	mov    0x8(%ebp),%ecx
5c0b74:	89 01                	mov    %eax,(%ecx)
5c0b76:	8b c1                	mov    %ecx,%eax
5c0b78:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
5c0b7f:	5d                   	pop    %ebp
5c0b80:	c2 0c 00             	ret    $0xc
5c0b83:	cc                   	int3
5c0b84:	cc                   	int3
5c0b85:	cc                   	int3
5c0b86:	cc                   	int3
5c0b87:	cc                   	int3
5c0b88:	cc                   	int3
5c0b89:	cc                   	int3
5c0b8a:	cc                   	int3
5c0b8b:	cc                   	int3
5c0b8c:	cc                   	int3
5c0b8d:	cc                   	int3
5c0b8e:	cc                   	int3
5c0b8f:	cc                   	int3
5c0b90:	55                   	push   %ebp
5c0b91:	8b ec                	mov    %esp,%ebp
5c0b93:	8b 51 18             	mov    0x18(%ecx),%edx
5c0b96:	8b 41 0c             	mov    0xc(%ecx),%eax
5c0b99:	23 55 10             	and    0x10(%ebp),%edx
5c0b9c:	8b 49 04             	mov    0x4(%ecx),%ecx
5c0b9f:	56                   	push   %esi
5c0ba0:	8d 34 d0             	lea    (%eax,%edx,8),%esi
5c0ba3:	8b 46 04             	mov    0x4(%esi),%eax
5c0ba6:	3b c1                	cmp    %ecx,%eax
5c0ba8:	75 11                	jne    0x5c0bbb
5c0baa:	8b 45 08             	mov    0x8(%ebp),%eax
5c0bad:	5e                   	pop    %esi
5c0bae:	89 08                	mov    %ecx,(%eax)
5c0bb0:	c7 40 04 00 00 00 00 	movl   $0x0,0x4(%eax)
5c0bb7:	5d                   	pop    %ebp
5c0bb8:	c2 0c 00             	ret    $0xc
5c0bbb:	8b 55 0c             	mov    0xc(%ebp),%edx
5c0bbe:	8b 36                	mov    (%esi),%esi
5c0bc0:	57                   	push   %edi
5c0bc1:	8b 3a                	mov    (%edx),%edi
5c0bc3:	3b 78 08             	cmp    0x8(%eax),%edi
5c0bc6:	75 10                	jne    0x5c0bd8
5c0bc8:	8b 4a 04             	mov    0x4(%edx),%ecx
5c0bcb:	3b 48 0c             	cmp    0xc(%eax),%ecx
5c0bce:	75 08                	jne    0x5c0bd8
5c0bd0:	8b 4a 0c             	mov    0xc(%edx),%ecx
5c0bd3:	3b 48 14             	cmp    0x14(%eax),%ecx
5c0bd6:	74 09                	je     0x5c0be1
5c0bd8:	3b c6                	cmp    %esi,%eax
5c0bda:	74 17                	je     0x5c0bf3
5c0bdc:	8b 40 04             	mov    0x4(%eax),%eax
5c0bdf:	eb e2                	jmp    0x5c0bc3
5c0be1:	8b 55 08             	mov    0x8(%ebp),%edx
5c0be4:	8b 08                	mov    (%eax),%ecx
5c0be6:	5f                   	pop    %edi
5c0be7:	5e                   	pop    %esi
5c0be8:	89 42 04             	mov    %eax,0x4(%edx)
5c0beb:	8b c2                	mov    %edx,%eax
5c0bed:	89 0a                	mov    %ecx,(%edx)
5c0bef:	5d                   	pop    %ebp
5c0bf0:	c2 0c 00             	ret    $0xc
5c0bf3:	8b 4d 08             	mov    0x8(%ebp),%ecx
5c0bf6:	5f                   	pop    %edi
5c0bf7:	5e                   	pop    %esi
5c0bf8:	89 01                	mov    %eax,(%ecx)
5c0bfa:	8b c1                	mov    %ecx,%eax
5c0bfc:	c7 41 04 00 00 00 00 	movl   $0x0,0x4(%ecx)
5c0c03:	5d                   	pop    %ebp
5c0c04:	c2 0c 00             	ret    $0xc
5c0c07:	cc                   	int3
5c0c08:	cc                   	int3
5c0c09:	cc                   	int3
5c0c0a:	cc                   	int3
5c0c0b:	cc                   	int3
5c0c0c:	cc                   	int3
5c0c0d:	cc                   	int3
5c0c0e:	cc                   	int3
5c0c0f:	cc                   	int3
5c0c10:	55                   	push   %ebp
5c0c11:	8b ec                	mov    %esp,%ebp
5c0c13:	51                   	push   %ecx
5c0c14:	8b 01                	mov    (%ecx),%eax
5c0c16:	8b 4d 08             	mov    0x8(%ebp),%ecx
5c0c19:	53                   	push   %ebx