45989d:	b0 01                	mov    $0x1,%al
45989f:	5e                   	pop    %esi
4598a0:	e8 81 81 17 00       	call   0x5d1a26
4598a5:	8b e5                	mov    %ebp,%esp
4598a7:	5d                   	pop    %ebp
4598a8:	c2 04 00             	ret    $0x4
4598ab:	cc                   	int3
4598ac:	cc                   	int3
4598ad:	cc                   	int3
4598ae:	cc                   	int3
4598af:	cc                   	int3
4598b0:	55                   	push   %ebp
4598b1:	8b ec                	mov    %esp,%ebp
4598b3:	6a ff                	push   $0xffffffff
4598b5:	68 b6 88 5f 00       	push   $0x5f88b6
4598ba:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
4598c0:	50                   	push   %eax
4598c1:	83 ec 64             	sub    $0x64,%esp
4598c4:	a1 c0 14 69 00       	mov    0x6914c0,%eax
4598c9:	33 c5                	xor    %ebp,%eax
4598cb:	89 45 f0             	mov    %eax,-0x10(%ebp)
4598ce:	53                   	push   %ebx
4598cf:	56                   	push   %esi
4598d0:	57                   	push   %edi
4598d1:	50                   	push   %eax
4598d2:	8d 45 f4             	lea    -0xc(%ebp),%eax
4598d5:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
4598db:	8b f1                	mov    %ecx,%esi
4598dd:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4598e0:	33 db                	xor    %ebx,%ebx
4598e2:	8b 55 08             	mov    0x8(%ebp),%edx
4598e5:	89 5d 90             	mov    %ebx,-0x70(%ebp)
4598e8:	8b 7e 04             	mov    0x4(%esi),%edi
4598eb:	8b 06                	mov    (%esi),%eax
4598ed:	2b f8                	sub    %eax,%edi
4598ef:	89 55 a4             	mov    %edx,-0x5c(%ebp)
4598f2:	89 4d a0             	mov    %ecx,-0x60(%ebp)
4598f5:	3b f9                	cmp    %ecx,%edi
4598f7:	0f 8d 2d 01 00 00    	jge    0x459a2a
4598fd:	0f 1f 00             	nopl   (%eax)
459900:	57                   	push   %edi
459901:	50                   	push   %eax
459902:	52                   	push   %edx
459903:	e8 c8 94 17 00       	call   0x5d2dd0
459908:	01 7d a4             	add    %edi,-0x5c(%ebp)
45990b:	83 c4 0c             	add    $0xc,%esp
45990e:	29 7d a0             	sub    %edi,-0x60(%ebp)
459911:	01 3e                	add    %edi,(%esi)
459913:	8b 4e 20             	mov    0x20(%esi),%ecx
459916:	85 c9                	test   %ecx,%ecx
459918:	0f 8f 4d 01 00 00    	jg     0x459a6b
45991e:	83 7e 10 00          	cmpl   $0x0,0x10(%esi)
459922:	0f 8f 43 01 00 00    	jg     0x459a6b
459928:	8b 46 0c             	mov    0xc(%esi),%eax
45992b:	3b 46 1c             	cmp    0x1c(%esi),%eax
45992e:	0f 84 37 01 00 00    	je     0x459a6b
459934:	8b 7e 08             	mov    0x8(%esi),%edi
459937:	8b 07                	mov    (%edi),%eax
459939:	8d 4d 98             	lea    -0x68(%ebp),%ecx
45993c:	51                   	push   %ecx
45993d:	8d 4d 94             	lea    -0x6c(%ebp),%ecx
459940:	51                   	push   %ecx
459941:	8b 40 04             	mov    0x4(%eax),%eax
459944:	8b cf                	mov    %edi,%ecx
459946:	ff d0                	call   *%eax
459948:	8b 4d 98             	mov    -0x68(%ebp),%ecx
45994b:	84 c0                	test   %al,%al
45994d:	0f 84 07 01 00 00    	je     0x459a5a
459953:	85 c9                	test   %ecx,%ecx
459955:	74 e0                	je     0x459937
459957:	84 c0                	test   %al,%al
459959:	0f 84 fb 00 00 00    	je     0x459a5a
45995f:	8b 45 94             	mov    -0x6c(%ebp),%eax
459962:	89 06                	mov    %eax,(%esi)
459964:	8d 14 08             	lea    (%eax,%ecx,1),%edx
459967:	89 56 04             	mov    %edx,0x4(%esi)
45996a:	85 c9                	test   %ecx,%ecx
45996c:	79 3c                	jns    0x4599aa
45996e:	68 7e 02 00 00       	push   $0x27e
459973:	68 98 64 60 00       	push   $0x606498
459978:	6a 03                	push   $0x3
45997a:	8d 4d cc             	lea    -0x34(%ebp),%ecx
45997d:	e8 5e b9 01 00       	call   0x4752e0
459982:	83 cb 02             	or     $0x2,%ebx
459985:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
45998c:	68 f4 65 60 00       	push   $0x6065f4
459991:	8b c8                	mov    %eax,%ecx
459993:	89 5d 90             	mov    %ebx,-0x70(%ebp)
459996:	e8 55 bf 01 00       	call   0x4758f0
45999b:	50                   	push   %eax
45999c:	8d 4d 9f             	lea    -0x61(%ebp),%ecx
45999f:	e8 dc bc 01 00       	call   0x475680
4599a4:	8b 56 04             	mov    0x4(%esi),%edx
4599a7:	8b 4d 98             	mov    -0x68(%ebp),%ecx
4599aa:	c7 45 fc ff ff ff ff 	movl   $0xffffffff,-0x4(%ebp)
4599b1:	f6 c3 02             	test   $0x2,%bl
4599b4:	74 11                	je     0x4599c7
4599b6:	8d 4d cc             	lea    -0x34(%ebp),%ecx
4599b9:	83 e3 fd             	and    $0xfffffffd,%ebx
4599bc:	e8 4f bc 01 00       	call   0x475610
4599c1:	8b 56 04             	mov    0x4(%esi),%edx
4599c4:	8b 4d 98             	mov    -0x68(%ebp),%ecx
4599c7:	8b 7e 0c             	mov    0xc(%esi),%edi
4599ca:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
4599cf:	2b c1                	sub    %ecx,%eax
4599d1:	3b f8                	cmp    %eax,%edi
4599d3:	7f 04                	jg     0x4599d9
4599d5:	03 cf                	add    %edi,%ecx
4599d7:	eb 15                	jmp    0x4599ee
4599d9:	8b 56 04             	mov    0x4(%esi),%edx
4599dc:	8d 87 01 00 00 80    	lea    -0x7fffffff(%edi),%eax
4599e2:	03 c1                	add    %ecx,%eax
4599e4:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
4599e9:	89 46 10             	mov    %eax,0x10(%esi)
4599ec:	2b d0                	sub    %eax,%edx
4599ee:	89 4e 0c             	mov    %ecx,0xc(%esi)
4599f1:	8b 7e 20             	mov    0x20(%esi),%edi
4599f4:	8b 46 0c             	mov    0xc(%esi),%eax
4599f7:	03 fa                	add    %edx,%edi
4599f9:	89 7e 04             	mov    %edi,0x4(%esi)
4599fc:	8b 4e 1c             	mov    0x1c(%esi),%ecx
4599ff:	39 4e 24             	cmp    %ecx,0x24(%esi)
459a02:	0f 4c 4e 24          	cmovl  0x24(%esi),%ecx
459a06:	3b c8                	cmp    %eax,%ecx
459a08:	7d 09                	jge    0x459a13
459a0a:	2b c1                	sub    %ecx,%eax
459a0c:	2b f8                	sub    %eax,%edi
459a0e:	89 7e 04             	mov    %edi,0x4(%esi)
459a11:	eb 02                	jmp    0x459a15
459a13:	33 c0                	xor    %eax,%eax
459a15:	8b 4d a0             	mov    -0x60(%ebp),%ecx
459a18:	8b 55 a4             	mov    -0x5c(%ebp),%edx
459a1b:	89 46 20             	mov    %eax,0x20(%esi)
459a1e:	8b 06                	mov    (%esi),%eax
459a20:	2b f8                	sub    %eax,%edi
459a22:	3b f9                	cmp    %ecx,%edi
459a24:	0f 8c d6 fe ff ff    	jl     0x459900
459a2a:	51                   	push   %ecx
459a2b:	50                   	push   %eax
459a2c:	52                   	push   %edx
459a2d:	e8 9e 93 17 00       	call   0x5d2dd0
459a32:	8b 45 a0             	mov    -0x60(%ebp),%eax
459a35:	83 c4 0c             	add    $0xc,%esp
459a38:	01 06                	add    %eax,(%esi)
459a3a:	b0 01                	mov    $0x1,%al
459a3c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
459a3f:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
459a46:	59                   	pop    %ecx
459a47:	5f                   	pop    %edi
459a48:	5e                   	pop    %esi
459a49:	5b                   	pop    %ebx
459a4a:	8b 4d f0             	mov    -0x10(%ebp),%ecx
459a4d:	33 cd                	xor    %ebp,%ecx
459a4f:	e8 d2 7f 17 00       	call   0x5d1a26
459a54:	8b e5                	mov    %ebp,%esp
459a56:	5d                   	pop    %ebp
459a57:	c2 08 00             	ret    $0x8
459a5a:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
459a60:	32 c0                	xor    %al,%al
459a62:	c7 46 04 00 00 00 00 	movl   $0x0,0x4(%esi)
459a69:	eb d1                	jmp    0x459a3c
459a6b:	8b 46 0c             	mov    0xc(%esi),%eax
459a6e:	2b c1                	sub    %ecx,%eax
459a70:	8b 4e 24             	mov    0x24(%esi),%ecx
459a73:	3b c1                	cmp    %ecx,%eax
459a75:	7c 53                	jl     0x459aca
459a77:	3b 4e 1c             	cmp    0x1c(%esi),%ecx
459a7a:	74 4e                	je     0x459aca
459a7c:	68 c1 00 00 00       	push   $0xc1
459a81:	68 98 64 60 00       	push   $0x606498
459a86:	6a 02                	push   $0x2
459a88:	8d 4d a8             	lea    -0x58(%ebp),%ecx
459a8b:	e8 50 b8 01 00       	call   0x4752e0
459a90:	68 48 65 60 00       	push   $0x606548
459a95:	ff 76 24             	push   0x24(%esi)
459a98:	8b c8                	mov    %eax,%ecx
459a9a:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
459aa1:	68 00 65 60 00       	push   $0x606500
459aa6:	e8 45 be 01 00       	call   0x4758f0
459aab:	8b c8                	mov    %eax,%ecx
459aad:	e8 5e bd 01 00       	call   0x475810
459ab2:	8b c8                	mov    %eax,%ecx
459ab4:	e8 37 be 01 00       	call   0x4758f0
459ab9:	50                   	push   %eax
459aba:	8d 4d 9e             	lea    -0x62(%ebp),%ecx
459abd:	e8 be bb 01 00       	call   0x475680
459ac2:	8d 4d a8             	lea    -0x58(%ebp),%ecx
459ac5:	e8 46 bb 01 00       	call   0x475610
459aca:	32 c0                	xor    %al,%al
459acc:	e9 6b ff ff ff       	jmp    0x459a3c
459ad1:	cc                   	int3
459ad2:	cc                   	int3
459ad3:	cc                   	int3
459ad4:	cc                   	int3
459ad5:	cc                   	int3
459ad6:	cc                   	int3
459ad7:	cc                   	int3
459ad8:	cc                   	int3
459ad9:	cc                   	int3
459ada:	cc                   	int3
459adb:	cc                   	int3
459adc:	cc                   	int3
459add:	cc                   	int3
459ade:	cc                   	int3
459adf:	cc                   	int3
459ae0:	55                   	push   %ebp
459ae1:	8b ec                	mov    %esp,%ebp
459ae3:	53                   	push   %ebx
459ae4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
459ae7:	56                   	push   %esi
459ae8:	8b 75 08             	mov    0x8(%ebp),%esi
459aeb:	57                   	push   %edi
459aec:	8b f9                	mov    %ecx,%edi
459aee:	85 db                	test   %ebx,%ebx
459af0:	79 09                	jns    0x459afb
459af2:	5f                   	pop    %edi
459af3:	5e                   	pop    %esi
459af4:	32 c0                	xor    %al,%al
459af6:	5b                   	pop    %ebx
459af7:	5d                   	pop    %ebp
459af8:	c2 08 00             	ret    $0x8
459afb:	8b 47 04             	mov    0x4(%edi),%eax
459afe:	2b 07                	sub    (%edi),%eax
459b00:	3b c3                	cmp    %ebx,%eax
459b02:	7c 29                	jl     0x459b2d
459b04:	6a 00                	push   $0x0
459b06:	53                   	push   %ebx
459b07:	8b ce                	mov    %esi,%ecx
459b09:	e8 32 13 00 00       	call   0x45ae40
459b0e:	83 7e 14 10          	cmpl   $0x10,0x14(%esi)
459b12:	72 02                	jb     0x459b16
459b14:	8b 36                	mov    (%esi),%esi
459b16:	53                   	push   %ebx
459b17:	ff 37                	push   (%edi)
459b19:	56                   	push   %esi
459b1a:	e8 b1 92 17 00       	call   0x5d2dd0
459b1f:	83 c4 0c             	add    $0xc,%esp
459b22:	b0 01                	mov    $0x1,%al
459b24:	01 1f                	add    %ebx,(%edi)
459b26:	5f                   	pop    %edi
459b27:	5e                   	pop    %esi
459b28:	5b                   	pop    %ebx
459b29:	5d                   	pop    %ebp
459b2a:	c2 08 00             	ret    $0x8
459b2d:	53                   	push   %ebx
459b2e:	56                   	push   %esi
459b2f:	e8 0c 00 00 00       	call   0x459b40
459b34:	5f                   	pop    %edi
459b35:	5e                   	pop    %esi
459b36:	5b                   	pop    %ebx
459b37:	5d                   	pop    %ebp
459b38:	c2 08 00             	ret    $0x8
459b3b:	cc                   	int3
459b3c:	cc                   	int3
459b3d:	cc                   	int3
459b3e:	cc                   	int3
459b3f:	cc                   	int3
459b40:	55                   	push   %ebp
459b41:	8b ec                	mov    %esp,%ebp
459b43:	83 ec 14             	sub    $0x14,%esp
459b46:	53                   	push   %ebx
459b47:	8b 5d 08             	mov    0x8(%ebp),%ebx
459b4a:	56                   	push   %esi
459b4b:	57                   	push   %edi
459b4c:	8b f9                	mov    %ecx,%edi
459b4e:	83 7b 10 00          	cmpl   $0x0,0x10(%ebx)
459b52:	89 7d f8             	mov    %edi,-0x8(%ebp)
459b55:	74 14                	je     0x459b6b
459b57:	c7 43 10 00 00 00 00 	movl   $0x0,0x10(%ebx)
459b5e:	8b c3                	mov    %ebx,%eax
459b60:	83 7b 14 10          	cmpl   $0x10,0x14(%ebx)
459b64:	72 02                	jb     0x459b68
459b66:	8b 03                	mov    (%ebx),%eax
459b68:	c6 00 00             	movb   $0x0,(%eax)
459b6b:	8b 4f 1c             	mov    0x1c(%edi),%ecx
459b6e:	39 4f 24             	cmp    %ecx,0x24(%edi)
459b71:	0f 4c 4f 24          	cmovl  0x24(%edi),%ecx
459b75:	81 f9 ff ff ff 7f    	cmp    $0x7fffffff,%ecx
459b7b:	74 24                	je     0x459ba1
459b7d:	8b 47 20             	mov    0x20(%edi),%eax
459b80:	2b 47 0c             	sub    0xc(%edi),%eax
459b83:	03 47 04             	add    0x4(%edi),%eax
459b86:	2b 07                	sub    (%edi),%eax
459b88:	03 c1                	add    %ecx,%eax
459b8a:	85 c0                	test   %eax,%eax
459b8c:	7e 13                	jle    0x459ba1
459b8e:	8b 75 0c             	mov    0xc(%ebp),%esi
459b91:	85 f6                	test   %esi,%esi
459b93:	7e 0c                	jle    0x459ba1
459b95:	3b f0                	cmp    %eax,%esi
459b97:	7f 08                	jg     0x459ba1
459b99:	56                   	push   %esi
459b9a:	8b cb                	mov    %ebx,%ecx
459b9c:	e8 3f 11 00 00       	call   0x45ace0
459ba1:	8b 77 04             	mov    0x4(%edi),%esi
459ba4:	8b 07                	mov    (%edi),%eax
459ba6:	2b f0                	sub    %eax,%esi
459ba8:	3b 75 0c             	cmp    0xc(%ebp),%esi
459bab:	0f 8d 8e 01 00 00    	jge    0x459d3f
459bb1:	89 45 fc             	mov    %eax,-0x4(%ebp)
459bb4:	85 f6                	test   %esi,%esi
459bb6:	0f 84 60 01 00 00    	je     0x459d1c
459bbc:	8b 53 14             	mov    0x14(%ebx),%edx
459bbf:	8b c2                	mov    %edx,%eax
459bc1:	8b 4b 10             	mov    0x10(%ebx),%ecx
459bc4:	2b c1                	sub    %ecx,%eax
459bc6:	89 4d f4             	mov    %ecx,-0xc(%ebp)
459bc9:	89 55 f0             	mov    %edx,-0x10(%ebp)
459bcc:	3b f0                	cmp    %eax,%esi
459bce:	77 28                	ja     0x459bf8
459bd0:	8d 04 31             	lea    (%ecx,%esi,1),%eax
459bd3:	89 43 10             	mov    %eax,0x10(%ebx)
459bd6:	8b c3                	mov    %ebx,%eax
459bd8:	83 fa 10             	cmp    $0x10,%edx
459bdb:	72 02                	jb     0x459bdf
459bdd:	8b 03                	mov    (%ebx),%eax
459bdf:	56                   	push   %esi
459be0:	ff 75 fc             	push   -0x4(%ebp)
459be3:	8d 3c 08             	lea    (%eax,%ecx,1),%edi
459be6:	57                   	push   %edi
459be7:	e8 e4 91 17 00       	call   0x5d2dd0
459bec:	83 c4 0c             	add    $0xc,%esp
459bef:	c6 04 37 00          	movb   $0x0,(%edi,%esi,1)
459bf3:	e9 21 01 00 00       	jmp    0x459d19
459bf8:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
459bfd:	2b c1                	sub    %ecx,%eax
459bff:	3b c6                	cmp    %esi,%eax
459c01:	0f 82 66 01 00 00    	jb     0x459d6d
459c07:	8d 3c 31             	lea    (%ecx,%esi,1),%edi
459c0a:	83 cf 0f             	or     $0xf,%edi
459c0d:	81 ff ff ff ff 7f    	cmp    $0x7fffffff,%edi
459c13:	76 0a                	jbe    0x459c1f
459c15:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
459c1a:	8d 47 24             	lea    0x24(%edi),%eax
459c1d:	eb 3f                	jmp    0x459c5e
459c1f:	8b c2                	mov    %edx,%eax
459c21:	d1 e8                	shr    $1,%eax
459c23:	89 45 08             	mov    %eax,0x8(%ebp)
459c26:	b8 ff ff ff 7f       	mov    $0x7fffffff,%eax
459c2b:	2b 45 08             	sub    0x8(%ebp),%eax
459c2e:	3b d0                	cmp    %eax,%edx
459c30:	76 0a                	jbe    0x459c3c
459c32:	bf ff ff ff 7f       	mov    $0x7fffffff,%edi
459c37:	8d 47 24             	lea    0x24(%edi),%eax
459c3a:	eb 22                	jmp    0x459c5e
459c3c:	8b 45 08             	mov    0x8(%ebp),%eax
459c3f:	03 c2                	add    %edx,%eax
459c41:	3b f8                	cmp    %eax,%edi
459c43:	0f 42 f8             	cmovb  %eax,%edi
459c46:	8d 47 01             	lea    0x1(%edi),%eax