576c43:	5f                   	pop    %edi
576c44:	5e                   	pop    %esi
576c45:	c3                   	ret
576c46:	8b 46 10             	mov    0x10(%esi),%eax
576c49:	f7 40 14 00 08 00 00 	testl  $0x800,0x14(%eax)
576c50:	74 1a                	je     0x576c6c
576c52:	8b 46 1c             	mov    0x1c(%esi),%eax
576c55:	56                   	push   %esi
576c56:	6a 02                	push   $0x2
576c58:	c7 46 64 00 00 00 00 	movl   $0x0,0x64(%esi)
576c5f:	ff d0                	call   *%eax
576c61:	83 c4 08             	add    $0x8,%esp
576c64:	85 c0                	test   %eax,%eax
576c66:	0f 84 e0 fe ff ff    	je     0x576b4c
576c6c:	5f                   	pop    %edi
576c6d:	b8 01 00 00 00       	mov    $0x1,%eax
576c72:	5e                   	pop    %esi
576c73:	c3                   	ret
576c74:	cc                   	int3
576c75:	cc                   	int3
576c76:	cc                   	int3
576c77:	cc                   	int3
576c78:	cc                   	int3
576c79:	cc                   	int3
576c7a:	cc                   	int3
576c7b:	cc                   	int3
576c7c:	cc                   	int3
576c7d:	cc                   	int3
576c7e:	cc                   	int3
576c7f:	cc                   	int3
576c80:	b8 20 00 00 00       	mov    $0x20,%eax
576c85:	e8 26 ab 05 00       	call   0x5d17b0
576c8a:	53                   	push   %ebx
576c8b:	55                   	push   %ebp
576c8c:	56                   	push   %esi
576c8d:	8b 74 24 30          	mov    0x30(%esp),%esi
576c91:	57                   	push   %edi
576c92:	8b 46 10             	mov    0x10(%esi),%eax
576c95:	8b 40 14             	mov    0x14(%eax),%eax
576c98:	a8 04                	test   $0x4,%al
576c9a:	74 1a                	je     0x576cb6
576c9c:	a8 08                	test   $0x8,%al
576c9e:	74 23                	je     0x576cc3
576ca0:	ff 76 50             	push   0x50(%esi)
576ca3:	e8 18 e4 f6 ff       	call   0x4e50c0
576ca8:	8b c8                	mov    %eax,%ecx
576caa:	83 c4 04             	add    $0x4,%esp
576cad:	83 e9 01             	sub    $0x1,%ecx
576cb0:	89 4c 24 2c          	mov    %ecx,0x2c(%esp)
576cb4:	79 1b                	jns    0x576cd1
576cb6:	5f                   	pop    %edi
576cb7:	5e                   	pop    %esi
576cb8:	5d                   	pop    %ebp
576cb9:	b8 01 00 00 00       	mov    $0x1,%eax
576cbe:	5b                   	pop    %ebx
576cbf:	83 c4 20             	add    $0x20,%esp
576cc2:	c3                   	ret
576cc3:	83 7e 78 00          	cmpl   $0x0,0x78(%esi)
576cc7:	75 ed                	jne    0x576cb6
576cc9:	c7 44 24 2c 00 00 00 	movl   $0x0,0x2c(%esp)
576cd0:	00
576cd1:	33 c0                	xor    %eax,%eax
576cd3:	89 44 24 28          	mov    %eax,0x28(%esp)
576cd7:	50                   	push   %eax
576cd8:	ff 76 50             	push   0x50(%esi)
576cdb:	89 46 5c             	mov    %eax,0x5c(%esi)
576cde:	c7 44 24 3c 00 00 00 	movl   $0x0,0x3c(%esp)
576ce5:	00
576ce6:	e8 95 e5 f6 ff       	call   0x4e5280
576ceb:	8b e8                	mov    %eax,%ebp
576ced:	c7 46 68 00 00 00 00 	movl   $0x0,0x68(%esi)
576cf4:	83 c4 08             	add    $0x8,%esp
576cf7:	89 6e 64             	mov    %ebp,0x64(%esi)
576cfa:	c7 46 70 00 00 00 00 	movl   $0x0,0x70(%esi)
576d01:	c7 46 74 00 00 00 00 	movl   $0x0,0x74(%esi)
576d08:	f7 85 80 00 00 00 00 	testl  $0x400,0x80(%ebp)
576d0f:	04 00 00
576d12:	0f 85 b7 01 00 00    	jne    0x576ecf
576d18:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
576d1f:	00
576d20:	8b 46 2c             	mov    0x2c(%esi),%eax
576d23:	55                   	push   %ebp
576d24:	85 c0                	test   %eax,%eax
576d26:	74 1e                	je     0x576d46
576d28:	8d 4c 24 38          	lea    0x38(%esp),%ecx
576d2c:	51                   	push   %ecx
576d2d:	56                   	push   %esi
576d2e:	ff d0                	call   *%eax
576d30:	83 c4 0c             	add    $0xc,%esp
576d33:	33 ff                	xor    %edi,%edi
576d35:	85 c0                	test   %eax,%eax
576d37:	0f 84 60 01 00 00    	je     0x576e9d
576d3d:	8b 4c 24 34          	mov    0x34(%esp),%ecx
576d41:	e9 c6 00 00 00       	jmp    0x576e0c
576d46:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
576d4d:	00
576d4e:	c7 44 24 1c 00 00 00 	movl   $0x0,0x1c(%esp)
576d55:	00
576d56:	c7 44 24 14 00 00 00 	movl   $0x0,0x14(%esp)
576d5d:	00
576d5e:	c7 44 24 24 00 00 00 	movl   $0x0,0x24(%esp)
576d65:	00
576d66:	e8 25 ab f7 ff       	call   0x4f1890
576d6b:	ff 76 0c             	push   0xc(%esi)
576d6e:	8b 4e 74             	mov    0x74(%esi),%ecx
576d71:	8b f8                	mov    %eax,%edi
576d73:	8d 44 24 24          	lea    0x24(%esp),%eax
576d77:	89 4c 24 24          	mov    %ecx,0x24(%esp)
576d7b:	50                   	push   %eax
576d7c:	8d 44 24 24          	lea    0x24(%esp),%eax
576d80:	50                   	push   %eax
576d81:	8d 44 24 24          	lea    0x24(%esp),%eax
576d85:	50                   	push   %eax
576d86:	8d 44 24 34          	lea    0x34(%esp),%eax
576d8a:	50                   	push   %eax
576d8b:	8d 44 24 28          	lea    0x28(%esp),%eax
576d8f:	50                   	push   %eax
576d90:	56                   	push   %esi
576d91:	e8 ca 0f 00 00       	call   0x577d60
576d96:	83 c4 20             	add    $0x20,%esp
576d99:	85 c0                	test   %eax,%eax
576d9b:	75 46                	jne    0x576de3
576d9d:	8b 46 40             	mov    0x40(%esi),%eax
576da0:	57                   	push   %edi
576da1:	56                   	push   %esi
576da2:	ff d0                	call   *%eax
576da4:	8b f8                	mov    %eax,%edi
576da6:	83 c4 08             	add    $0x8,%esp
576da9:	85 ff                	test   %edi,%edi
576dab:	75 08                	jne    0x576db5
576dad:	8b 4c 24 10          	mov    0x10(%esp),%ecx
576db1:	85 c9                	test   %ecx,%ecx
576db3:	75 3a                	jne    0x576def
576db5:	57                   	push   %edi
576db6:	8d 44 24 20          	lea    0x20(%esp),%eax
576dba:	50                   	push   %eax
576dbb:	8d 44 24 20          	lea    0x20(%esp),%eax
576dbf:	50                   	push   %eax
576dc0:	8d 44 24 20          	lea    0x20(%esp),%eax
576dc4:	50                   	push   %eax
576dc5:	8d 44 24 30          	lea    0x30(%esp),%eax
576dc9:	50                   	push   %eax
576dca:	8d 44 24 24          	lea    0x24(%esp),%eax
576dce:	50                   	push   %eax
576dcf:	56                   	push   %esi
576dd0:	e8 8b 0f 00 00       	call   0x577d60
576dd5:	68 60 78 55 00       	push   $0x557860
576dda:	57                   	push   %edi
576ddb:	e8 10 e3 f6 ff       	call   0x4e50f0
576de0:	83 c4 24             	add    $0x24,%esp
576de3:	8b 4c 24 10          	mov    0x10(%esp),%ecx
576de7:	85 c9                	test   %ecx,%ecx
576de9:	0f 84 ae 00 00 00    	je     0x576e9d
576def:	8b 44 24 14          	mov    0x14(%esp),%eax
576df3:	8b 7c 24 20          	mov    0x20(%esp),%edi
576df7:	89 46 68             	mov    %eax,0x68(%esi)
576dfa:	8b 44 24 18          	mov    0x18(%esp),%eax
576dfe:	89 46 70             	mov    %eax,0x70(%esi)
576e01:	8b 44 24 1c          	mov    0x1c(%esp),%eax
576e05:	89 46 74             	mov    %eax,0x74(%esi)
576e08:	89 4c 24 34          	mov    %ecx,0x34(%esp)
576e0c:	8b 46 30             	mov    0x30(%esi),%eax
576e0f:	51                   	push   %ecx
576e10:	56                   	push   %esi
576e11:	89 4e 6c             	mov    %ecx,0x6c(%esi)
576e14:	ff d0                	call   *%eax
576e16:	83 c4 08             	add    $0x8,%esp
576e19:	85 c0                	test   %eax,%eax
576e1b:	0f 84 ce 00 00 00    	je     0x576eef
576e21:	85 ff                	test   %edi,%edi
576e23:	74 2c                	je     0x576e51
576e25:	8b 46 30             	mov    0x30(%esi),%eax
576e28:	57                   	push   %edi
576e29:	56                   	push   %esi
576e2a:	ff d0                	call   *%eax
576e2c:	83 c4 08             	add    $0x8,%esp
576e2f:	85 c0                	test   %eax,%eax
576e31:	0f 84 b8 00 00 00    	je     0x576eef
576e37:	8b 46 34             	mov    0x34(%esi),%eax
576e3a:	55                   	push   %ebp
576e3b:	57                   	push   %edi
576e3c:	56                   	push   %esi
576e3d:	ff d0                	call   *%eax
576e3f:	8b d8                	mov    %eax,%ebx
576e41:	83 c4 0c             	add    $0xc,%esp
576e44:	85 db                	test   %ebx,%ebx
576e46:	0f 84 a3 00 00 00    	je     0x576eef
576e4c:	83 fb 02             	cmp    $0x2,%ebx
576e4f:	74 18                	je     0x576e69
576e51:	8b 46 34             	mov    0x34(%esi),%eax
576e54:	55                   	push   %ebp
576e55:	ff 74 24 38          	push   0x38(%esp)
576e59:	56                   	push   %esi
576e5a:	ff d0                	call   *%eax
576e5c:	8b d8                	mov    %eax,%ebx
576e5e:	83 c4 0c             	add    $0xc,%esp
576e61:	85 db                	test   %ebx,%ebx
576e63:	0f 84 86 00 00 00    	je     0x576eef
576e69:	ff 74 24 34          	push   0x34(%esp)
576e6d:	e8 ee 09 fe ff       	call   0x557860
576e72:	57                   	push   %edi
576e73:	e8 e8 09 fe ff       	call   0x557860
576e78:	8b 46 74             	mov    0x74(%esi),%eax
576e7b:	83 c4 08             	add    $0x8,%esp
576e7e:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
576e85:	00
576e86:	39 44 24 24          	cmp    %eax,0x24(%esp)
576e8a:	74 11                	je     0x576e9d
576e8c:	89 44 24 24          	mov    %eax,0x24(%esp)
576e90:	3d 7f 80 00 00       	cmp    $0x807f,%eax
576e95:	0f 85 85 fe ff ff    	jne    0x576d20
576e9b:	eb 14                	jmp    0x576eb1
576e9d:	8b 46 1c             	mov    0x1c(%esi),%eax
576ea0:	56                   	push   %esi
576ea1:	6a 00                	push   $0x0
576ea3:	c7 46 60 03 00 00 00 	movl   $0x3,0x60(%esi)
576eaa:	ff d0                	call   *%eax
576eac:	8b d8                	mov    %eax,%ebx
576eae:	83 c4 08             	add    $0x8,%esp
576eb1:	ff 74 24 34          	push   0x34(%esp)
576eb5:	e8 a6 09 fe ff       	call   0x557860
576eba:	6a 00                	push   $0x0
576ebc:	e8 9f 09 fe ff       	call   0x557860
576ec1:	83 c4 08             	add    $0x8,%esp
576ec4:	c7 46 6c 00 00 00 00 	movl   $0x0,0x6c(%esi)
576ecb:	85 db                	test   %ebx,%ebx
576ecd:	74 39                	je     0x576f08
576ecf:	8b 44 24 28          	mov    0x28(%esp),%eax
576ed3:	40                   	inc    %eax
576ed4:	89 44 24 28          	mov    %eax,0x28(%esp)
576ed8:	3b 44 24 2c          	cmp    0x2c(%esp),%eax
576edc:	0f 8e f5 fd ff ff    	jle    0x576cd7
576ee2:	5f                   	pop    %edi
576ee3:	5e                   	pop    %esi
576ee4:	5d                   	pop    %ebp
576ee5:	b8 01 00 00 00       	mov    $0x1,%eax
576eea:	5b                   	pop    %ebx
576eeb:	83 c4 20             	add    $0x20,%esp
576eee:	c3                   	ret
576eef:	ff 74 24 34          	push   0x34(%esp)
576ef3:	e8 68 09 fe ff       	call   0x557860
576ef8:	57                   	push   %edi
576ef9:	e8 62 09 fe ff       	call   0x557860
576efe:	c7 46 6c 00 00 00 00 	movl   $0x0,0x6c(%esi)
576f05:	83 c4 08             	add    $0x8,%esp
576f08:	5f                   	pop    %edi
576f09:	5e                   	pop    %esi
576f0a:	5d                   	pop    %ebp
576f0b:	33 c0                	xor    %eax,%eax
576f0d:	5b                   	pop    %ebx
576f0e:	83 c4 20             	add    $0x20,%esp
576f11:	c3                   	ret
576f12:	cc                   	int3
576f13:	cc                   	int3
576f14:	cc                   	int3
576f15:	cc                   	int3
576f16:	cc                   	int3
576f17:	cc                   	int3
576f18:	cc                   	int3
576f19:	cc                   	int3
576f1a:	cc                   	int3
576f1b:	cc                   	int3
576f1c:	cc                   	int3
576f1d:	cc                   	int3
576f1e:	cc                   	int3
576f1f:	cc                   	int3
576f20:	b8 08 00 00 00       	mov    $0x8,%eax
576f25:	e8 86 a8 05 00       	call   0x5d17b0
576f2a:	53                   	push   %ebx
576f2b:	55                   	push   %ebp
576f2c:	56                   	push   %esi
576f2d:	8b 74 24 18          	mov    0x18(%esp),%esi
576f31:	57                   	push   %edi
576f32:	8b be 80 00 00 00    	mov    0x80(%esi),%edi
576f38:	ff 76 50             	push   0x50(%esi)
576f3b:	89 7c 24 18          	mov    %edi,0x18(%esp)
576f3f:	e8 7c e1 f6 ff       	call   0x4e50c0
576f44:	8b 5c 24 24          	mov    0x24(%esp),%ebx
576f48:	83 c4 04             	add    $0x4,%esp
576f4b:	8b e8                	mov    %eax,%ebp
576f4d:	85 ff                	test   %edi,%edi
576f4f:	74 24                	je     0x576f75
576f51:	f6 47 14 05          	testb  $0x5,0x14(%edi)
576f55:	74 1e                	je     0x576f75
576f57:	85 db                	test   %ebx,%ebx
576f59:	7e 1a                	jle    0x576f75
576f5b:	3b dd                	cmp    %ebp,%ebx
576f5d:	7d 16                	jge    0x576f75
576f5f:	53                   	push   %ebx
576f60:	56                   	push   %esi
576f61:	e8 ba f6 ff ff       	call   0x576620
576f66:	83 c4 08             	add    $0x8,%esp
576f69:	8d 48 ff             	lea    -0x1(%eax),%ecx
576f6c:	83 f9 01             	cmp    $0x1,%ecx
576f6f:	0f 86 da 00 00 00    	jbe    0x57704f
576f75:	8b fb                	mov    %ebx,%edi
576f77:	3b dd                	cmp    %ebp,%ebx
576f79:	7d 55                	jge    0x576fd0
576f7b:	0f 1f 44 00 00       	nopl   0x0(%eax,%eax,1)
576f80:	57                   	push   %edi
576f81:	ff 76 50             	push   0x50(%esi)
576f84:	e8 f7 e2 f6 ff       	call   0x4e5280
576f89:	8b 4e 10             	mov    0x10(%esi),%ecx
576f8c:	8b d8                	mov    %eax,%ebx
576f8e:	6a 00                	push   $0x0
576f90:	ff 71 1c             	push   0x1c(%ecx)
576f93:	53                   	push   %ebx
576f94:	e8 b7 9a 00 00       	call   0x580a50
576f99:	83 c4 14             	add    $0x14,%esp
576f9c:	83 f8 01             	cmp    $0x1,%eax
576f9f:	0f 84 58 01 00 00    	je     0x5770fd
576fa5:	83 f8 02             	cmp    $0x2,%eax
576fa8:	0f 84 f7 00 00 00    	je     0x5770a5
576fae:	47                   	inc    %edi
576faf:	3b fd                	cmp    %ebp,%edi
576fb1:	7c cd                	jl     0x576f80
576fb3:	8b 46 10             	mov    0x10(%esi),%eax
576fb6:	f7 40 14 00 00 08 00 	testl  $0x80000,0x14(%eax)
576fbd:	0f 85 3a 01 00 00    	jne    0x5770fd
576fc3:	5f                   	pop    %edi
576fc4:	5e                   	pop    %esi
576fc5:	5d                   	pop    %ebp
576fc6:	b8 03 00 00 00       	mov    $0x3,%eax
576fcb:	5b                   	pop    %ebx
576fcc:	83 c4 08             	add    $0x8,%esp
576fcf:	c3                   	ret
576fd0:	75 78                	jne    0x57704a
576fd2:	8b 46 10             	mov    0x10(%esi),%eax
576fd5:	f7 40 14 00 00 08 00 	testl  $0x80000,0x14(%eax)
576fdc:	74 6c                	je     0x57704a
576fde:	33 ff                	xor    %edi,%edi
576fe0:	57                   	push   %edi
576fe1:	ff 76 50             	push   0x50(%esi)
576fe4:	e8 97 e2 f6 ff       	call   0x4e5280
576fe9:	50                   	push   %eax
576fea:	89 44 24 28          	mov    %eax,0x28(%esp)
576fee:	e8 ad 05 fa ff       	call   0x5175a0
576ff3:	50                   	push   %eax
576ff4:	8b 46 3c             	mov    0x3c(%esi),%eax
576ff7:	56                   	push   %esi
576ff8:	ff d0                	call   *%eax
576ffa:	8b e8                	mov    %eax,%ebp
576ffc:	83 c4 14             	add    $0x14,%esp
576fff:	85 ed                	test   %ebp,%ebp
577001:	74 47                	je     0x57704a
577003:	55                   	push   %ebp
577004:	33 db                	xor    %ebx,%ebx
577006:	e8 b5 e0 f6 ff       	call   0x4e50c0
57700b:	83 c4 04             	add    $0x4,%esp
57700e:	85 c0                	test   %eax,%eax