577ecf:	cc                   	int3
577ed0:	8b 4c 24 04          	mov    0x4(%esp),%ecx
577ed4:	8b 41 10             	mov    0x10(%ecx),%eax
577ed7:	f7 40 14 00 20 00 00 	testl  $0x2000,0x14(%eax)
577ede:	0f 84 db 00 00 00    	je     0x577fbf
577ee4:	8b 41 64             	mov    0x64(%ecx),%eax
577ee7:	57                   	push   %edi
577ee8:	8b 7c 24 14          	mov    0x14(%esp),%edi
577eec:	8b 80 80 00 00 00    	mov    0x80(%eax),%eax
577ef2:	0b 47 48             	or     0x48(%edi),%eax
577ef5:	a9 00 10 00 00       	test   $0x1000,%eax
577efa:	0f 84 be 00 00 00    	je     0x577fbe
577f00:	53                   	push   %ebx
577f01:	55                   	push   %ebp
577f02:	8b 6c 24 20          	mov    0x20(%esp),%ebp
577f06:	33 db                	xor    %ebx,%ebx
577f08:	56                   	push   %esi
577f09:	55                   	push   %ebp
577f0a:	e8 b1 d1 f6 ff       	call   0x4e50c0
577f0f:	83 c4 04             	add    $0x4,%esp
577f12:	85 c0                	test   %eax,%eax
577f14:	0f 8e 97 00 00 00    	jle    0x577fb1
577f1a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
577f20:	53                   	push   %ebx
577f21:	55                   	push   %ebp
577f22:	e8 59 d3 f6 ff       	call   0x4e5280
577f27:	8b f0                	mov    %eax,%esi
577f29:	83 c4 08             	add    $0x8,%esp
577f2c:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
577f30:	74 6d                	je     0x577f9f
577f32:	83 7f 5c 00          	cmpl   $0x0,0x5c(%edi)
577f36:	74 67                	je     0x577f9f
577f38:	56                   	push   %esi
577f39:	e8 02 f3 f6 ff       	call   0x4e7240
577f3e:	83 c4 04             	add    $0x4,%esp
577f41:	50                   	push   %eax
577f42:	57                   	push   %edi
577f43:	e8 f8 f2 f6 ff       	call   0x4e7240
577f48:	83 c4 04             	add    $0x4,%esp
577f4b:	50                   	push   %eax
577f4c:	e8 ff fb fd ff       	call   0x557b50
577f51:	83 c4 08             	add    $0x8,%esp
577f54:	85 c0                	test   %eax,%eax
577f56:	75 47                	jne    0x577f9f
577f58:	6a 5a                	push   $0x5a
577f5a:	57                   	push   %edi
577f5b:	56                   	push   %esi
577f5c:	e8 9f f5 ff ff       	call   0x577500
577f61:	83 c4 0c             	add    $0xc,%esp
577f64:	85 c0                	test   %eax,%eax
577f66:	74 37                	je     0x577f9f
577f68:	68 02 03 00 00       	push   $0x302
577f6d:	57                   	push   %edi
577f6e:	56                   	push   %esi
577f6f:	e8 8c f5 ff ff       	call   0x577500
577f74:	83 c4 0c             	add    $0xc,%esp
577f77:	85 c0                	test   %eax,%eax
577f79:	74 24                	je     0x577f9f
577f7b:	ff 77 5c             	push   0x5c(%edi)
577f7e:	ff 76 60             	push   0x60(%esi)
577f81:	e8 ea 13 f9 ff       	call   0x509370
577f86:	83 c4 08             	add    $0x8,%esp
577f89:	85 c0                	test   %eax,%eax
577f8b:	7f 12                	jg     0x577f9f
577f8d:	ff 77 5c             	push   0x5c(%edi)
577f90:	ff 76 5c             	push   0x5c(%esi)
577f93:	e8 d8 13 f9 ff       	call   0x509370
577f98:	83 c4 08             	add    $0x8,%esp
577f9b:	85 c0                	test   %eax,%eax
577f9d:	7f 21                	jg     0x577fc0
577f9f:	55                   	push   %ebp
577fa0:	43                   	inc    %ebx
577fa1:	e8 1a d1 f6 ff       	call   0x4e50c0
577fa6:	83 c4 04             	add    $0x4,%esp
577fa9:	3b d8                	cmp    %eax,%ebx
577fab:	0f 8c 6f ff ff ff    	jl     0x577f20
577fb1:	8b 44 24 18          	mov    0x18(%esp),%eax
577fb5:	5e                   	pop    %esi
577fb6:	5d                   	pop    %ebp
577fb7:	5b                   	pop    %ebx
577fb8:	c7 00 00 00 00 00    	movl   $0x0,(%eax)
577fbe:	5f                   	pop    %edi
577fbf:	c3                   	ret
577fc0:	8b 5c 24 14          	mov    0x14(%esp),%ebx
577fc4:	8b 7b 10             	mov    0x10(%ebx),%edi
577fc7:	8b 47 14             	mov    0x14(%edi),%eax
577fca:	a8 02                	test   $0x2,%al
577fcc:	74 05                	je     0x577fd3
577fce:	83 c7 08             	add    $0x8,%edi
577fd1:	eb 09                	jmp    0x577fdc
577fd3:	a9 00 00 20 00       	test   $0x200000,%eax
577fd8:	75 47                	jne    0x578021
577fda:	33 ff                	xor    %edi,%edi
577fdc:	57                   	push   %edi
577fdd:	56                   	push   %esi
577fde:	e8 cd 82 f7 ff       	call   0x4f02b0
577fe3:	83 c4 04             	add    $0x4,%esp
577fe6:	50                   	push   %eax
577fe7:	e8 84 d2 ff ff       	call   0x575270
577fec:	83 c4 08             	add    $0x8,%esp
577fef:	85 c0                	test   %eax,%eax
577ff1:	74 35                	je     0x578028
577ff3:	7f 33                	jg     0x578028
577ff5:	56                   	push   %esi
577ff6:	e8 65 f2 f6 ff       	call   0x4e7260
577ffb:	83 c4 04             	add    $0x4,%esp
577ffe:	85 c0                	test   %eax,%eax
578000:	74 1f                	je     0x578021
578002:	57                   	push   %edi
578003:	56                   	push   %esi
578004:	e8 57 f2 f6 ff       	call   0x4e7260
578009:	83 c4 04             	add    $0x4,%esp
57800c:	50                   	push   %eax
57800d:	e8 5e d2 ff ff       	call   0x575270
578012:	83 c4 08             	add    $0x8,%esp
578015:	85 c0                	test   %eax,%eax
578017:	74 0f                	je     0x578028
578019:	79 06                	jns    0x578021
57801b:	f6 43 70 02          	testb  $0x2,0x70(%ebx)
57801f:	74 07                	je     0x578028
578021:	8b 44 24 1c          	mov    0x1c(%esp),%eax
578025:	83 08 02             	orl    $0x2,(%eax)
578028:	56                   	push   %esi
578029:	e8 22 9a ff ff       	call   0x571a50
57802e:	8b 44 24 1c          	mov    0x1c(%esp),%eax
578032:	83 c4 04             	add    $0x4,%esp
578035:	89 30                	mov    %esi,(%eax)
578037:	5e                   	pop    %esi
578038:	5d                   	pop    %ebp
578039:	5b                   	pop    %ebx
57803a:	5f                   	pop    %edi
57803b:	c3                   	ret
57803c:	cc                   	int3
57803d:	cc                   	int3
57803e:	cc                   	int3
57803f:	cc                   	int3
578040:	b8 04 00 00 00       	mov    $0x4,%eax
578045:	e8 66 97 05 00       	call   0x5d17b0
57804a:	53                   	push   %ebx
57804b:	55                   	push   %ebp
57804c:	56                   	push   %esi
57804d:	8b 74 24 14          	mov    0x14(%esp),%esi
578051:	57                   	push   %edi
578052:	ff 76 50             	push   0x50(%esi)
578055:	e8 66 d0 f6 ff       	call   0x4e50c0
57805a:	8d 68 ff             	lea    -0x1(%eax),%ebp
57805d:	55                   	push   %ebp
57805e:	ff 76 50             	push   0x50(%esi)
578061:	e8 1a d2 f6 ff       	call   0x4e5280
578066:	83 c4 0c             	add    $0xc,%esp
578069:	8b f8                	mov    %eax,%edi
57806b:	83 be 84 00 00 00 00 	cmpl   $0x0,0x84(%esi)
578072:	74 09                	je     0x57807d
578074:	8b df                	mov    %edi,%ebx
578076:	33 ff                	xor    %edi,%edi
578078:	e9 82 01 00 00       	jmp    0x5781ff
57807d:	8b 46 24             	mov    0x24(%esi),%eax
578080:	57                   	push   %edi
578081:	57                   	push   %edi
578082:	56                   	push   %esi
578083:	ff d0                	call   *%eax
578085:	83 c4 0c             	add    $0xc,%esp
578088:	85 c0                	test   %eax,%eax
57808a:	74 04                	je     0x578090
57808c:	8b df                	mov    %edi,%ebx
57808e:	eb 69                	jmp    0x5780f9
578090:	8b 46 10             	mov    0x10(%esi),%eax
578093:	f7 40 14 00 00 08 00 	testl  $0x80000,0x14(%eax)
57809a:	74 07                	je     0x5780a3
57809c:	8b df                	mov    %edi,%ebx
57809e:	e9 5c 01 00 00       	jmp    0x5781ff
5780a3:	85 ed                	test   %ebp,%ebp
5780a5:	7f 40                	jg     0x5780e7
5780a7:	c7 46 5c 00 00 00 00 	movl   $0x0,0x5c(%esi)
5780ae:	85 ff                	test   %edi,%edi
5780b0:	74 04                	je     0x5780b6
5780b2:	8b c7                	mov    %edi,%eax
5780b4:	eb 0d                	jmp    0x5780c3
5780b6:	6a 00                	push   $0x0
5780b8:	ff 76 50             	push   0x50(%esi)
5780bb:	e8 c0 d1 f6 ff       	call   0x4e5280
5780c0:	83 c4 08             	add    $0x8,%esp
5780c3:	89 46 64             	mov    %eax,0x64(%esi)
5780c6:	8b 46 1c             	mov    0x1c(%esi),%eax
5780c9:	56                   	push   %esi
5780ca:	6a 00                	push   $0x0
5780cc:	c7 46 60 15 00 00 00 	movl   $0x15,0x60(%esi)
5780d3:	ff d0                	call   *%eax
5780d5:	83 c4 08             	add    $0x8,%esp
5780d8:	85 c0                	test   %eax,%eax
5780da:	0f 84 56 01 00 00    	je     0x578236
5780e0:	8b df                	mov    %edi,%ebx
5780e2:	e9 18 01 00 00       	jmp    0x5781ff
5780e7:	4d                   	dec    %ebp
5780e8:	89 6e 5c             	mov    %ebp,0x5c(%esi)
5780eb:	55                   	push   %ebp
5780ec:	ff 76 50             	push   0x50(%esi)
5780ef:	e8 8c d1 f6 ff       	call   0x4e5280
5780f4:	8b d8                	mov    %eax,%ebx
5780f6:	83 c4 08             	add    $0x8,%esp
5780f9:	85 ed                	test   %ebp,%ebp
5780fb:	0f 88 3d 01 00 00    	js     0x57823e
578101:	3b df                	cmp    %edi,%ebx
578103:	75 20                	jne    0x578125
578105:	8b 4e 10             	mov    0x10(%esi),%ecx
578108:	f7 41 14 00 40 00 00 	testl  $0x4000,0x14(%ecx)
57810f:	0f 84 ea 00 00 00    	je     0x5781ff
578115:	f7 87 80 00 00 00 00 	testl  $0x2000,0x80(%edi)
57811c:	20 00 00
57811f:	0f 84 da 00 00 00    	je     0x5781ff
578125:	33 c0                	xor    %eax,%eax
578127:	3b df                	cmp    %edi,%ebx
578129:	0f 95 c0             	setne  %al
57812c:	03 c5                	add    %ebp,%eax
57812e:	89 44 24 18          	mov    %eax,0x18(%esp)
578132:	3b df                	cmp    %edi,%ebx
578134:	75 09                	jne    0x57813f
578136:	f6 87 80 00 00 00 10 	testb  $0x10,0x80(%edi)
57813d:	74 4a                	je     0x578189
57813f:	53                   	push   %ebx
578140:	57                   	push   %edi
578141:	e8 7a 46 fe ff       	call   0x55c7c0
578146:	83 c4 08             	add    $0x8,%esp
578149:	89 44 24 10          	mov    %eax,0x10(%esp)
57814d:	85 c0                	test   %eax,%eax
57814f:	74 38                	je     0x578189
578151:	8b 4c 24 18          	mov    0x18(%esp),%ecx
578155:	89 4e 5c             	mov    %ecx,0x5c(%esi)
578158:	85 ff                	test   %edi,%edi
57815a:	74 04                	je     0x578160
57815c:	8b c7                	mov    %edi,%eax
57815e:	eb 0c                	jmp    0x57816c
578160:	51                   	push   %ecx
578161:	ff 76 50             	push   0x50(%esi)
578164:	e8 17 d1 f6 ff       	call   0x4e5280
578169:	83 c4 08             	add    $0x8,%esp
57816c:	89 46 64             	mov    %eax,0x64(%esi)
57816f:	8b 44 24 10          	mov    0x10(%esp),%eax
578173:	89 46 60             	mov    %eax,0x60(%esi)
578176:	8b 46 1c             	mov    0x1c(%esi),%eax
578179:	56                   	push   %esi
57817a:	6a 00                	push   $0x0
57817c:	ff d0                	call   *%eax
57817e:	83 c4 08             	add    $0x8,%esp
578181:	85 c0                	test   %eax,%eax
578183:	0f 84 ad 00 00 00    	je     0x578236
578189:	57                   	push   %edi
57818a:	e8 a1 ff fd ff       	call   0x558130
57818f:	83 c4 04             	add    $0x4,%esp
578192:	85 c0                	test   %eax,%eax
578194:	75 2b                	jne    0x5781c1
578196:	8b 44 24 18          	mov    0x18(%esp),%eax
57819a:	89 46 5c             	mov    %eax,0x5c(%esi)
57819d:	85 ff                	test   %edi,%edi
57819f:	74 0b                	je     0x5781ac
5781a1:	8b c7                	mov    %edi,%eax
5781a3:	c7 46 60 06 00 00 00 	movl   $0x6,0x60(%esi)
5781aa:	eb 41                	jmp    0x5781ed
5781ac:	50                   	push   %eax
5781ad:	ff 76 50             	push   0x50(%esi)
5781b0:	e8 cb d0 f6 ff       	call   0x4e5280
5781b5:	83 c4 08             	add    $0x8,%esp
5781b8:	c7 46 60 06 00 00 00 	movl   $0x6,0x60(%esi)
5781bf:	eb 2c                	jmp    0x5781ed
5781c1:	50                   	push   %eax
5781c2:	53                   	push   %ebx
5781c3:	e8 68 39 ff ff       	call   0x56bb30
5781c8:	83 c4 08             	add    $0x8,%esp
5781cb:	85 c0                	test   %eax,%eax
5781cd:	7f 30                	jg     0x5781ff
5781cf:	89 6e 5c             	mov    %ebp,0x5c(%esi)
5781d2:	85 db                	test   %ebx,%ebx
5781d4:	74 04                	je     0x5781da
5781d6:	8b c3                	mov    %ebx,%eax
5781d8:	eb 0c                	jmp    0x5781e6
5781da:	55                   	push   %ebp
5781db:	ff 76 50             	push   0x50(%esi)
5781de:	e8 9d d0 f6 ff       	call   0x4e5280
5781e3:	83 c4 08             	add    $0x8,%esp
5781e6:	c7 46 60 07 00 00 00 	movl   $0x7,0x60(%esi)
5781ed:	56                   	push   %esi
5781ee:	89 46 64             	mov    %eax,0x64(%esi)
5781f1:	8b 46 1c             	mov    0x1c(%esi),%eax
5781f4:	6a 00                	push   $0x0
5781f6:	ff d0                	call   *%eax
5781f8:	83 c4 08             	add    $0x8,%esp
5781fb:	85 c0                	test   %eax,%eax
5781fd:	74 37                	je     0x578236
5781ff:	55                   	push   %ebp
578200:	53                   	push   %ebx
578201:	56                   	push   %esi
578202:	e8 99 02 00 00       	call   0x5784a0
578207:	83 c4 0c             	add    $0xc,%esp
57820a:	85 c0                	test   %eax,%eax
57820c:	74 28                	je     0x578236
57820e:	8b 46 1c             	mov    0x1c(%esi),%eax
578211:	56                   	push   %esi
578212:	6a 01                	push   $0x1
578214:	89 7e 68             	mov    %edi,0x68(%esi)
578217:	89 5e 64             	mov    %ebx,0x64(%esi)
57821a:	89 6e 5c             	mov    %ebp,0x5c(%esi)
57821d:	ff d0                	call   *%eax
57821f:	83 c4 08             	add    $0x8,%esp
578222:	85 c0                	test   %eax,%eax
578224:	74 10                	je     0x578236
578226:	83 ed 01             	sub    $0x1,%ebp
578229:	0f 88 ca fe ff ff    	js     0x5780f9
57822f:	8b fb                	mov    %ebx,%edi
578231:	e9 b5 fe ff ff       	jmp    0x5780eb
578236:	5f                   	pop    %edi
578237:	5e                   	pop    %esi
578238:	5d                   	pop    %ebp
578239:	33 c0                	xor    %eax,%eax
57823b:	5b                   	pop    %ebx
57823c:	59                   	pop    %ecx
57823d:	c3                   	ret
57823e:	5f                   	pop    %edi
57823f:	5e                   	pop    %esi
578240:	5d                   	pop    %ebp
578241:	b8 01 00 00 00       	mov    $0x1,%eax
578246:	5b                   	pop    %ebx
578247:	59                   	pop    %ecx
578248:	c3                   	ret
578249:	cc                   	int3
57824a:	cc                   	int3
57824b:	cc                   	int3
57824c:	cc                   	int3
57824d:	cc                   	int3
57824e:	cc                   	int3
57824f:	cc                   	int3
578250:	8b 44 24 04          	mov    0x4(%esp),%eax
578254:	c3                   	ret
578255:	cc                   	int3
578256:	cc                   	int3
578257:	cc                   	int3
578258:	cc                   	int3
578259:	cc                   	int3
57825a:	cc                   	int3
57825b:	cc                   	int3
57825c:	cc                   	int3
57825d:	cc                   	int3
57825e:	cc                   	int3
57825f:	cc                   	int3
578260:	b8 04 00 00 00       	mov    $0x4,%eax
578265:	e8 46 95 05 00       	call   0x5d17b0
57826a:	53                   	push   %ebx
57826b:	55                   	push   %ebp
57826c:	56                   	push   %esi
57826d:	8b 74 24 14          	mov    0x14(%esp),%esi
578271:	57                   	push   %edi