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
577010:	7e 5c                	jle    0x57706e
577012:	53                   	push   %ebx
577013:	55                   	push   %ebp
577014:	e8 67 e2 f6 ff       	call   0x4e5280
577019:	ff 74 24 24          	push   0x24(%esp)
57701d:	89 44 24 1c          	mov    %eax,0x1c(%esp)
577021:	50                   	push   %eax
577022:	e8 e9 0f fe ff       	call   0x558010
577027:	83 c4 10             	add    $0x10,%esp
57702a:	85 c0                	test   %eax,%eax
57702c:	74 29                	je     0x577057
57702e:	55                   	push   %ebp
57702f:	43                   	inc    %ebx
577030:	e8 8b e0 f6 ff       	call   0x4e50c0
577035:	83 c4 04             	add    $0x4,%esp
577038:	3b d8                	cmp    %eax,%ebx
57703a:	7c d6                	jl     0x577012
57703c:	68 e0 71 55 00       	push   $0x5571e0
577041:	55                   	push   %ebp
577042:	e8 a9 e0 f6 ff       	call   0x4e50f0
577047:	83 c4 08             	add    $0x8,%esp
57704a:	b8 03 00 00 00       	mov    $0x3,%eax
57704f:	5f                   	pop    %edi
577050:	5e                   	pop    %esi
577051:	5d                   	pop    %ebp
577052:	5b                   	pop    %ebx
577053:	83 c4 08             	add    $0x8,%esp
577056:	c3                   	ret
577057:	8b 5c 24 10          	mov    0x10(%esp),%ebx
57705b:	85 db                	test   %ebx,%ebx
57705d:	74 11                	je     0x577070
57705f:	53                   	push   %ebx
577060:	e8 4b 9e fa ff       	call   0x520eb0
577065:	83 c4 04             	add    $0x4,%esp
577068:	85 c0                	test   %eax,%eax
57706a:	75 04                	jne    0x577070
57706c:	eb ce                	jmp    0x57703c
57706e:	33 db                	xor    %ebx,%ebx
577070:	68 e0 71 55 00       	push   $0x5571e0
577075:	55                   	push   %ebp
577076:	e8 75 e0 f6 ff       	call   0x4e50f0
57707b:	83 c4 08             	add    $0x8,%esp
57707e:	85 db                	test   %ebx,%ebx
577080:	74 c8                	je     0x57704a
577082:	8b 46 10             	mov    0x10(%esi),%eax
577085:	6a 00                	push   $0x0
577087:	ff 70 1c             	push   0x1c(%eax)
57708a:	53                   	push   %ebx
57708b:	e8 c0 99 00 00       	call   0x580a50
577090:	83 c4 0c             	add    $0xc,%esp
577093:	53                   	push   %ebx
577094:	83 f8 02             	cmp    $0x2,%eax
577097:	75 4b                	jne    0x5770e4
577099:	e8 42 01 fe ff       	call   0x5571e0
57709e:	8b 5c 24 20          	mov    0x20(%esp),%ebx
5770a2:	83 c4 04             	add    $0x4,%esp
5770a5:	89 7e 5c             	mov    %edi,0x5c(%esi)
5770a8:	85 db                	test   %ebx,%ebx
5770aa:	75 0e                	jne    0x5770ba
5770ac:	57                   	push   %edi
5770ad:	ff 76 50             	push   0x50(%esi)
5770b0:	e8 cb e1 f6 ff       	call   0x4e5280
5770b5:	83 c4 08             	add    $0x8,%esp
5770b8:	8b d8                	mov    %eax,%ebx
5770ba:	8b 46 1c             	mov    0x1c(%esi),%eax
5770bd:	56                   	push   %esi
5770be:	6a 00                	push   $0x0
5770c0:	89 5e 64             	mov    %ebx,0x64(%esi)
5770c3:	c7 46 60 1c 00 00 00 	movl   $0x1c,0x60(%esi)
5770ca:	ff d0                	call   *%eax
5770cc:	83 c4 08             	add    $0x8,%esp
5770cf:	85 c0                	test   %eax,%eax
5770d1:	0f 85 73 ff ff ff    	jne    0x57704a
5770d7:	5f                   	pop    %edi
5770d8:	5e                   	pop    %esi
5770d9:	5d                   	pop    %ebp
5770da:	b8 02 00 00 00       	mov    $0x2,%eax
5770df:	5b                   	pop    %ebx
5770e0:	83 c4 08             	add    $0x8,%esp
5770e3:	c3                   	ret
5770e4:	6a 00                	push   $0x0
5770e6:	ff 76 50             	push   0x50(%esi)
5770e9:	e8 b2 e0 f6 ff       	call   0x4e51a0
5770ee:	ff 74 24 28          	push   0x28(%esp)
5770f2:	e8 e9 00 fe ff       	call   0x5571e0
5770f7:	83 c4 10             	add    $0x10,%esp
5770fa:	89 7e 4c             	mov    %edi,0x4c(%esi)
5770fd:	8b 5c 24 14          	mov    0x14(%esp),%ebx
577101:	85 db                	test   %ebx,%ebx
577103:	74 26                	je     0x57712b
577105:	ff 73 04             	push   0x4(%ebx)
577108:	e8 b3 df f6 ff       	call   0x4e50c0
57710d:	83 c4 04             	add    $0x4,%esp
577110:	85 c0                	test   %eax,%eax
577112:	7e 17                	jle    0x57712b
577114:	83 7b 1c 00          	cmpl   $0x0,0x1c(%ebx)
577118:	7d 07                	jge    0x577121
57711a:	8b 44 24 20          	mov    0x20(%esp),%eax
57711e:	89 43 1c             	mov    %eax,0x1c(%ebx)
577121:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
577125:	0f 8c 1f ff ff ff    	jl     0x57704a
57712b:	5f                   	pop    %edi
57712c:	5e                   	pop    %esi
57712d:	5d                   	pop    %ebp
57712e:	b8 01 00 00 00       	mov    $0x1,%eax
577133:	5b                   	pop    %ebx
577134:	83 c4 08             	add    $0x8,%esp
577137:	c3                   	ret
577138:	cc                   	int3
577139:	cc                   	int3
57713a:	cc                   	int3
57713b:	cc                   	int3
57713c:	cc                   	int3
57713d:	cc                   	int3
57713e:	cc                   	int3
57713f:	cc                   	int3
577140:	53                   	push   %ebx
577141:	55                   	push   %ebp
577142:	8b 6c 24 10          	mov    0x10(%esp),%ebp
577146:	56                   	push   %esi
577147:	57                   	push   %edi
577148:	55                   	push   %ebp
577149:	e8 f2 00 f7 ff       	call   0x4e7240
57714e:	8b 7c 24 18          	mov    0x18(%esp),%edi
577152:	89 44 24 1c          	mov    %eax,0x1c(%esp)
577156:	ff 77 50             	push   0x50(%edi)
577159:	8b 77 5c             	mov    0x5c(%edi),%esi
57715c:	e8 5f df f6 ff       	call   0x4e50c0
577161:	48                   	dec    %eax
577162:	8d 5e 01             	lea    0x1(%esi),%ebx
577165:	3b f0                	cmp    %eax,%esi
577167:	0f 44 de             	cmove  %esi,%ebx
57716a:	53                   	push   %ebx
57716b:	ff 77 50             	push   0x50(%edi)
57716e:	e8 0d e1 f6 ff       	call   0x4e5280
577173:	ff 75 4c             	push   0x4c(%ebp)
577176:	8b f0                	mov    %eax,%esi
577178:	56                   	push   %esi
577179:	e8 b2 52 fe ff       	call   0x55c430
57717e:	83 c4 18             	add    $0x18,%esp
577181:	85 c0                	test   %eax,%eax
577183:	75 1a                	jne    0x57719f
577185:	8b 4c 24 20          	mov    0x20(%esp),%ecx
577189:	8b 01                	mov    (%ecx),%eax
57718b:	a8 20                	test   $0x20,%al
57718d:	74 10                	je     0x57719f
57718f:	83 c8 1c             	or     $0x1c,%eax
577192:	89 01                	mov    %eax,(%ecx)
577194:	8b 44 24 1c          	mov    0x1c(%esp),%eax
577198:	5f                   	pop    %edi
577199:	89 30                	mov    %esi,(%eax)
57719b:	5e                   	pop    %esi
57719c:	5d                   	pop    %ebp
57719d:	5b                   	pop    %ebx
57719e:	c3                   	ret
57719f:	ff 77 50             	push   0x50(%edi)
5771a2:	8d 73 01             	lea    0x1(%ebx),%esi
5771a5:	e8 16 df f6 ff       	call   0x4e50c0
5771aa:	83 c4 04             	add    $0x4,%esp
5771ad:	3b f0                	cmp    %eax,%esi
5771af:	7d 48                	jge    0x5771f9
5771b1:	56                   	push   %esi
5771b2:	ff 77 50             	push   0x50(%edi)
5771b5:	e8 c6 e0 f6 ff       	call   0x4e5280
5771ba:	83 c4 08             	add    $0x8,%esp
5771bd:	8b d8                	mov    %eax,%ebx
5771bf:	ff 74 24 18          	push   0x18(%esp)
5771c3:	53                   	push   %ebx
5771c4:	e8 d7 03 fa ff       	call   0x5175a0
5771c9:	83 c4 04             	add    $0x4,%esp
5771cc:	50                   	push   %eax
5771cd:	e8 7e 09 fe ff       	call   0x557b50
5771d2:	83 c4 08             	add    $0x8,%esp
5771d5:	85 c0                	test   %eax,%eax
5771d7:	75 10                	jne    0x5771e9