5e68e6:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
5e68e9:	75 ef                	jne    0x5e68da
5e68eb:	5d                   	pop    %ebp
5e68ec:	c3                   	ret
5e68ed:	8b 4d 08             	mov    0x8(%ebp),%ecx
5e68f0:	33 c0                	xor    %eax,%eax
5e68f2:	33 d2                	xor    %edx,%edx
5e68f4:	eb 0f                	jmp    0x5e6905
5e68f6:	66 83 39 0a          	cmpw   $0xa,(%ecx)
5e68fa:	75 06                	jne    0x5e6902
5e68fc:	83 c0 01             	add    $0x1,%eax
5e68ff:	83 d2 00             	adc    $0x0,%edx
5e6902:	83 c1 02             	add    $0x2,%ecx
5e6905:	3b 4d 0c             	cmp    0xc(%ebp),%ecx
5e6908:	75 ec                	jne    0x5e68f6
5e690a:	0f a4 c2 01          	shld   $0x1,%eax,%edx
5e690e:	03 c0                	add    %eax,%eax
5e6910:	5d                   	pop    %ebp
5e6911:	c3                   	ret
5e6912:	8b ff                	mov    %edi,%edi
5e6914:	55                   	push   %ebp
5e6915:	8b ec                	mov    %esp,%ebp
5e6917:	5d                   	pop    %ebp
5e6918:	e9 8d fa ff ff       	jmp    0x5e63aa
5e691d:	8b ff                	mov    %edi,%edi
5e691f:	55                   	push   %ebp
5e6920:	8b ec                	mov    %esp,%ebp
5e6922:	83 ec 28             	sub    $0x28,%esp
5e6925:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5e6928:	56                   	push   %esi
5e6929:	6a 00                	push   $0x0
5e692b:	e8 a4 f5 fe ff       	call   0x5d5ed4
5e6930:	8d 45 d8             	lea    -0x28(%ebp),%eax
5e6933:	50                   	push   %eax
5e6934:	ff 75 08             	push   0x8(%ebp)
5e6937:	e8 bc f9 ff ff       	call   0x5e62f8
5e693c:	59                   	pop    %ecx
5e693d:	59                   	pop    %ecx
5e693e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5e6941:	8b f0                	mov    %eax,%esi
5e6943:	e8 d4 f5 fe ff       	call   0x5d5f1c
5e6948:	8b c6                	mov    %esi,%eax
5e694a:	5e                   	pop    %esi
5e694b:	c9                   	leave
5e694c:	c3                   	ret
5e694d:	6a 0c                	push   $0xc
5e694f:	68 d0 a8 68 00       	push   $0x68a8d0
5e6954:	e8 a7 bf fe ff       	call   0x5d2900
5e6959:	83 65 e4 00          	andl   $0x0,-0x1c(%ebp)
5e695d:	8b 45 08             	mov    0x8(%ebp),%eax
5e6960:	ff 30                	push   (%eax)
5e6962:	e8 05 97 ff ff       	call   0x5e006c
5e6967:	59                   	pop    %ecx
5e6968:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
5e696c:	8b 4d 0c             	mov    0xc(%ebp),%ecx
5e696f:	e8 34 00 00 00       	call   0x5e69a8
5e6974:	8b f0                	mov    %eax,%esi
5e6976:	89 75 e4             	mov    %esi,-0x1c(%ebp)
5e6979:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
5e6980:	e8 17 00 00 00       	call   0x5e699c
5e6985:	8b c6                	mov    %esi,%eax
5e6987:	8b 4d f0             	mov    -0x10(%ebp),%ecx
5e698a:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
5e6991:	59                   	pop    %ecx
5e6992:	5f                   	pop    %edi
5e6993:	5e                   	pop    %esi
5e6994:	5b                   	pop    %ebx
5e6995:	c9                   	leave
5e6996:	c2 0c 00             	ret    $0xc
5e6999:	8b 75 e4             	mov    -0x1c(%ebp),%esi
5e699c:	8b 45 10             	mov    0x10(%ebp),%eax
5e699f:	ff 30                	push   (%eax)
5e69a1:	e8 da 96 ff ff       	call   0x5e0080
5e69a6:	59                   	pop    %ecx
5e69a7:	c3                   	ret
5e69a8:	8b ff                	mov    %edi,%edi
5e69aa:	55                   	push   %ebp
5e69ab:	8b ec                	mov    %esp,%ebp
5e69ad:	51                   	push   %ecx
5e69ae:	53                   	push   %ebx
5e69af:	56                   	push   %esi
5e69b0:	8b f1                	mov    %ecx,%esi
5e69b2:	57                   	push   %edi
5e69b3:	8b 06                	mov    (%esi),%eax
5e69b5:	8b 7e 04             	mov    0x4(%esi),%edi
5e69b8:	8b 18                	mov    (%eax),%ebx
5e69ba:	53                   	push   %ebx
5e69bb:	e8 6b 57 00 00       	call   0x5ec12b
5e69c0:	ff 76 04             	push   0x4(%esi)
5e69c3:	88 45 fc             	mov    %al,-0x4(%ebp)
5e69c6:	8b 06                	mov    (%esi),%eax
5e69c8:	ff 30                	push   (%eax)
5e69ca:	8b 46 10             	mov    0x10(%esi),%eax
5e69cd:	ff 30                	push   (%eax)
5e69cf:	8b 46 0c             	mov    0xc(%esi),%eax
5e69d2:	ff 30                	push   (%eax)
5e69d4:	8b 46 08             	mov    0x8(%esi),%eax
5e69d7:	ff 30                	push   (%eax)
5e69d9:	e8 8d 00 00 00       	call   0x5e6a6b
5e69de:	57                   	push   %edi
5e69df:	53                   	push   %ebx
5e69e0:	ff 75 fc             	push   -0x4(%ebp)
5e69e3:	8b f0                	mov    %eax,%esi
5e69e5:	e8 ec 57 00 00       	call   0x5ec1d6
5e69ea:	83 c4 24             	add    $0x24,%esp
5e69ed:	8b c6                	mov    %esi,%eax
5e69ef:	5f                   	pop    %edi
5e69f0:	5e                   	pop    %esi
5e69f1:	5b                   	pop    %ebx
5e69f2:	c9                   	leave
5e69f3:	c3                   	ret
5e69f4:	8b ff                	mov    %edi,%edi
5e69f6:	55                   	push   %ebp
5e69f7:	8b ec                	mov    %esp,%ebp
5e69f9:	83 ec 20             	sub    $0x20,%esp
5e69fc:	83 7d 0c 00          	cmpl   $0x0,0xc(%ebp)
5e6a00:	74 2b                	je     0x5e6a2d
5e6a02:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
5e6a06:	74 25                	je     0x5e6a2d
5e6a08:	8b 4d 14             	mov    0x14(%ebp),%ecx
5e6a0b:	85 c9                	test   %ecx,%ecx
5e6a0d:	75 22                	jne    0x5e6a31
5e6a0f:	8b 45 18             	mov    0x18(%ebp),%eax
5e6a12:	50                   	push   %eax
5e6a13:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
5e6a17:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
5e6a1e:	33 c0                	xor    %eax,%eax
5e6a20:	50                   	push   %eax
5e6a21:	50                   	push   %eax
5e6a22:	50                   	push   %eax
5e6a23:	50                   	push   %eax
5e6a24:	50                   	push   %eax
5e6a25:	e8 39 f7 fe ff       	call   0x5d6163
5e6a2a:	83 c4 18             	add    $0x18,%esp
5e6a2d:	33 c0                	xor    %eax,%eax
5e6a2f:	c9                   	leave
5e6a30:	c3                   	ret
5e6a31:	8d 45 14             	lea    0x14(%ebp),%eax
5e6a34:	89 4d f8             	mov    %ecx,-0x8(%ebp)
5e6a37:	89 45 e0             	mov    %eax,-0x20(%ebp)
5e6a3a:	8b 45 18             	mov    0x18(%ebp),%eax
5e6a3d:	89 45 e4             	mov    %eax,-0x1c(%ebp)
5e6a40:	8d 45 08             	lea    0x8(%ebp),%eax
5e6a43:	89 45 e8             	mov    %eax,-0x18(%ebp)
5e6a46:	8d 45 0c             	lea    0xc(%ebp),%eax
5e6a49:	89 45 ec             	mov    %eax,-0x14(%ebp)
5e6a4c:	8d 45 10             	lea    0x10(%ebp),%eax
5e6a4f:	89 45 f0             	mov    %eax,-0x10(%ebp)
5e6a52:	8d 45 f8             	lea    -0x8(%ebp),%eax
5e6a55:	50                   	push   %eax
5e6a56:	8d 45 e0             	lea    -0x20(%ebp),%eax
5e6a59:	89 4d f4             	mov    %ecx,-0xc(%ebp)
5e6a5c:	50                   	push   %eax
5e6a5d:	8d 45 f4             	lea    -0xc(%ebp),%eax
5e6a60:	50                   	push   %eax
5e6a61:	8d 4d ff             	lea    -0x1(%ebp),%ecx
5e6a64:	e8 e4 fe ff ff       	call   0x5e694d
5e6a69:	c9                   	leave
5e6a6a:	c3                   	ret
5e6a6b:	8b ff                	mov    %edi,%edi
5e6a6d:	55                   	push   %ebp
5e6a6e:	8b ec                	mov    %esp,%ebp
5e6a70:	83 ec 0c             	sub    $0xc,%esp
5e6a73:	53                   	push   %ebx
5e6a74:	8b 5d 0c             	mov    0xc(%ebp),%ebx
5e6a77:	56                   	push   %esi
5e6a78:	57                   	push   %edi
5e6a79:	85 db                	test   %ebx,%ebx
5e6a7b:	74 2c                	je     0x5e6aa9
5e6a7d:	8b 7d 10             	mov    0x10(%ebp),%edi
5e6a80:	85 ff                	test   %edi,%edi
5e6a82:	74 25                	je     0x5e6aa9
5e6a84:	8b 4d 14             	mov    0x14(%ebp),%ecx
5e6a87:	85 c9                	test   %ecx,%ecx
5e6a89:	75 25                	jne    0x5e6ab0
5e6a8b:	8b 45 18             	mov    0x18(%ebp),%eax
5e6a8e:	50                   	push   %eax
5e6a8f:	c6 40 1c 01          	movb   $0x1,0x1c(%eax)
5e6a93:	c7 40 18 16 00 00 00 	movl   $0x16,0x18(%eax)
5e6a9a:	33 c0                	xor    %eax,%eax
5e6a9c:	50                   	push   %eax
5e6a9d:	50                   	push   %eax
5e6a9e:	50                   	push   %eax
5e6a9f:	50                   	push   %eax
5e6aa0:	50                   	push   %eax
5e6aa1:	e8 bd f6 fe ff       	call   0x5d6163
5e6aa6:	83 c4 18             	add    $0x18,%esp
5e6aa9:	33 c0                	xor    %eax,%eax
5e6aab:	5f                   	pop    %edi
5e6aac:	5e                   	pop    %esi
5e6aad:	5b                   	pop    %ebx
5e6aae:	c9                   	leave
5e6aaf:	c3                   	ret
5e6ab0:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
5e6ab4:	74 d5                	je     0x5e6a8b
5e6ab6:	83 c8 ff             	or     $0xffffffff,%eax
5e6ab9:	33 d2                	xor    %edx,%edx
5e6abb:	f7 f3                	div    %ebx
5e6abd:	3b f8                	cmp    %eax,%edi
5e6abf:	77 ca                	ja     0x5e6a8b
5e6ac1:	8d 41 0c             	lea    0xc(%ecx),%eax
5e6ac4:	89 45 f4             	mov    %eax,-0xc(%ebp)
5e6ac7:	8b 00                	mov    (%eax),%eax
5e6ac9:	90                   	nop
5e6aca:	a9 c0 04 00 00       	test   $0x4c0,%eax
5e6acf:	74 05                	je     0x5e6ad6
5e6ad1:	8b 51 18             	mov    0x18(%ecx),%edx
5e6ad4:	eb 05                	jmp    0x5e6adb
5e6ad6:	ba 00 10 00 00       	mov    $0x1000,%edx
5e6adb:	8b f3                	mov    %ebx,%esi
5e6add:	89 55 fc             	mov    %edx,-0x4(%ebp)
5e6ae0:	0f af f7             	imul   %edi,%esi
5e6ae3:	8b fe                	mov    %esi,%edi
5e6ae5:	85 f6                	test   %esi,%esi
5e6ae7:	0f 84 fe 00 00 00    	je     0x5e6beb
5e6aed:	8d 59 0c             	lea    0xc(%ecx),%ebx
5e6af0:	8b 03                	mov    (%ebx),%eax
5e6af2:	90                   	nop
5e6af3:	a8 c0                	test   $0xc0,%al
5e6af5:	74 3b                	je     0x5e6b32
5e6af7:	8b 41 08             	mov    0x8(%ecx),%eax
5e6afa:	85 c0                	test   %eax,%eax
5e6afc:	74 34                	je     0x5e6b32
5e6afe:	0f 88 ef 00 00 00    	js     0x5e6bf3
5e6b04:	8b 03                	mov    (%ebx),%eax
5e6b06:	90                   	nop
5e6b07:	a8 01                	test   $0x1,%al
5e6b09:	0f 85 ea 00 00 00    	jne    0x5e6bf9
5e6b0f:	8b 59 08             	mov    0x8(%ecx),%ebx
5e6b12:	3b fb                	cmp    %ebx,%edi
5e6b14:	73 02                	jae    0x5e6b18
5e6b16:	8b df                	mov    %edi,%ebx
5e6b18:	53                   	push   %ebx
5e6b19:	ff 75 08             	push   0x8(%ebp)
5e6b1c:	ff 31                	push   (%ecx)
5e6b1e:	e8 ad c2 fe ff       	call   0x5d2dd0
5e6b23:	8b 4d 14             	mov    0x14(%ebp),%ecx
5e6b26:	83 c4 0c             	add    $0xc,%esp
5e6b29:	2b fb                	sub    %ebx,%edi
5e6b2b:	29 59 08             	sub    %ebx,0x8(%ecx)
5e6b2e:	01 19                	add    %ebx,(%ecx)
5e6b30:	eb 7a                	jmp    0x5e6bac
5e6b32:	3b fa                	cmp    %edx,%edi
5e6b34:	72 7b                	jb     0x5e6bb1
5e6b36:	8b 03                	mov    (%ebx),%eax
5e6b38:	90                   	nop
5e6b39:	a8 c0                	test   $0xc0,%al
5e6b3b:	74 19                	je     0x5e6b56
5e6b3d:	ff 75 18             	push   0x18(%ebp)
5e6b40:	51                   	push   %ecx
5e6b41:	e8 87 97 ff ff       	call   0x5e02cd
5e6b46:	59                   	pop    %ecx
5e6b47:	59                   	pop    %ecx
5e6b48:	85 c0                	test   %eax,%eax
5e6b4a:	0f 85 a9 00 00 00    	jne    0x5e6bf9
5e6b50:	8b 4d 14             	mov    0x14(%ebp),%ecx
5e6b53:	8b 55 fc             	mov    -0x4(%ebp),%edx
5e6b56:	8b c7                	mov    %edi,%eax
5e6b58:	85 d2                	test   %edx,%edx
5e6b5a:	74 0e                	je     0x5e6b6a
5e6b5c:	33 d2                	xor    %edx,%edx
5e6b5e:	f7 75 fc             	divl   -0x4(%ebp)
5e6b61:	8b c7                	mov    %edi,%eax
5e6b63:	2b c2                	sub    %edx,%eax
5e6b65:	89 45 f8             	mov    %eax,-0x8(%ebp)
5e6b68:	eb 03                	jmp    0x5e6b6d
5e6b6a:	89 7d f8             	mov    %edi,-0x8(%ebp)
5e6b6d:	83 f8 fe             	cmp    $0xfffffffe,%eax
5e6b70:	72 06                	jb     0x5e6b78
5e6b72:	6a fe                	push   $0xfffffffe
5e6b74:	58                   	pop    %eax
5e6b75:	89 45 f8             	mov    %eax,-0x8(%ebp)
5e6b78:	ff 75 18             	push   0x18(%ebp)
5e6b7b:	50                   	push   %eax
5e6b7c:	ff 75 08             	push   0x8(%ebp)
5e6b7f:	51                   	push   %ecx
5e6b80:	e8 96 f1 ff ff       	call   0x5e5d1b
5e6b85:	59                   	pop    %ecx
5e6b86:	50                   	push   %eax
5e6b87:	e8 36 da ff ff       	call   0x5e45c2
5e6b8c:	8b d8                	mov    %eax,%ebx
5e6b8e:	83 c4 10             	add    $0x10,%esp
5e6b91:	83 fb ff             	cmp    $0xffffffff,%ebx
5e6b94:	74 71                	je     0x5e6c07
5e6b96:	8b 45 f8             	mov    -0x8(%ebp),%eax
5e6b99:	3b d8                	cmp    %eax,%ebx
5e6b9b:	76 06                	jbe    0x5e6ba3
5e6b9d:	8b d8                	mov    %eax,%ebx
5e6b9f:	2b fb                	sub    %ebx,%edi
5e6ba1:	eb 06                	jmp    0x5e6ba9
5e6ba3:	2b fb                	sub    %ebx,%edi
5e6ba5:	3b d8                	cmp    %eax,%ebx
5e6ba7:	72 5e                	jb     0x5e6c07
5e6ba9:	8b 4d 14             	mov    0x14(%ebp),%ecx
5e6bac:	8b 55 fc             	mov    -0x4(%ebp),%edx
5e6baf:	eb 2f                	jmp    0x5e6be0
5e6bb1:	8b 45 08             	mov    0x8(%ebp),%eax
5e6bb4:	ff 75 18             	push   0x18(%ebp)
5e6bb7:	51                   	push   %ecx
5e6bb8:	0f be 00             	movsbl (%eax),%eax
5e6bbb:	50                   	push   %eax
5e6bbc:	e8 27 93 00 00       	call   0x5efee8
5e6bc1:	83 c4 0c             	add    $0xc,%esp
5e6bc4:	83 f8 ff             	cmp    $0xffffffff,%eax
5e6bc7:	74 30                	je     0x5e6bf9
5e6bc9:	8b 4d 14             	mov    0x14(%ebp),%ecx
5e6bcc:	4f                   	dec    %edi
5e6bcd:	33 db                	xor    %ebx,%ebx
5e6bcf:	8b 51 18             	mov    0x18(%ecx),%edx
5e6bd2:	89 55 fc             	mov    %edx,-0x4(%ebp)
5e6bd5:	85 d2                	test   %edx,%edx
5e6bd7:	7f 06                	jg     0x5e6bdf
5e6bd9:	33 d2                	xor    %edx,%edx
5e6bdb:	42                   	inc    %edx
5e6bdc:	89 55 fc             	mov    %edx,-0x4(%ebp)
5e6bdf:	43                   	inc    %ebx
5e6be0:	01 5d 08             	add    %ebx,0x8(%ebp)
5e6be3:	85 ff                	test   %edi,%edi
5e6be5:	0f 85 02 ff ff ff    	jne    0x5e6aed
5e6beb:	8b 45 10             	mov    0x10(%ebp),%eax
5e6bee:	e9 b8 fe ff ff       	jmp    0x5e6aab
5e6bf3:	6a 10                	push   $0x10
5e6bf5:	58                   	pop    %eax
5e6bf6:	f0 09 03             	lock or %eax,(%ebx)
5e6bf9:	2b f7                	sub    %edi,%esi
5e6bfb:	33 d2                	xor    %edx,%edx
5e6bfd:	8b c6                	mov    %esi,%eax
5e6bff:	f7 75 0c             	divl   0xc(%ebp)
5e6c02:	e9 a4 fe ff ff       	jmp    0x5e6aab
5e6c07:	8b 45 f4             	mov    -0xc(%ebp),%eax
5e6c0a:	6a 10                	push   $0x10
5e6c0c:	59                   	pop    %ecx
5e6c0d:	f0 09 08             	lock or %ecx,(%eax)
5e6c10:	eb e7                	jmp    0x5e6bf9
5e6c12:	8b ff                	mov    %edi,%edi
5e6c14:	55                   	push   %ebp
5e6c15:	8b ec                	mov    %esp,%ebp
5e6c17:	83 ec 28             	sub    $0x28,%esp
5e6c1a:	8d 4d d8             	lea    -0x28(%ebp),%ecx
5e6c1d:	56                   	push   %esi
5e6c1e:	6a 00                	push   $0x0
5e6c20:	e8 af f2 fe ff       	call   0x5d5ed4
5e6c25:	8d 45 d8             	lea    -0x28(%ebp),%eax
5e6c28:	50                   	push   %eax
5e6c29:	ff 75 14             	push   0x14(%ebp)
5e6c2c:	ff 75 10             	push   0x10(%ebp)
5e6c2f:	ff 75 0c             	push   0xc(%ebp)
5e6c32:	ff 75 08             	push   0x8(%ebp)
5e6c35:	e8 ba fd ff ff       	call   0x5e69f4
5e6c3a:	83 c4 14             	add    $0x14,%esp