577cff:	ff 74 24 20          	push   0x20(%esp)
577d03:	56                   	push   %esi
577d04:	50                   	push   %eax
577d05:	e8 36 f4 ff ff       	call   0x577140
577d0a:	8b 5c 24 20          	mov    0x20(%esp),%ebx
577d0e:	83 c4 10             	add    $0x10,%esp
577d11:	f6 c3 04             	test   $0x4,%bl
577d14:	0f 84 f4 fe ff ff    	je     0x577c0e
577d1a:	8d 44 24 24          	lea    0x24(%esp),%eax
577d1e:	50                   	push   %eax
577d1f:	53                   	push   %ebx
577d20:	56                   	push   %esi
577d21:	ff 74 24 34          	push   0x34(%esp)
577d25:	e8 66 f5 ff ff       	call   0x577290
577d2a:	83 c4 10             	add    $0x10,%esp
577d2d:	85 c0                	test   %eax,%eax
577d2f:	74 18                	je     0x577d49
577d31:	8b 44 24 24          	mov    0x24(%esp),%eax
577d35:	8b cd                	mov    %ebp,%ecx
577d37:	f7 d1                	not    %ecx
577d39:	85 c8                	test   %ecx,%eax
577d3b:	0f 84 cd fe ff ff    	je     0x577c0e
577d41:	0b e8                	or     %eax,%ebp
577d43:	81 cb 80 00 00 00    	or     $0x80,%ebx
577d49:	8b 44 24 20          	mov    0x20(%esp),%eax
577d4d:	5f                   	pop    %edi
577d4e:	5e                   	pop    %esi
577d4f:	89 28                	mov    %ebp,(%eax)
577d51:	8b c3                	mov    %ebx,%eax
577d53:	5d                   	pop    %ebp
577d54:	5b                   	pop    %ebx
577d55:	59                   	pop    %ecx
577d56:	c3                   	ret
577d57:	cc                   	int3
577d58:	cc                   	int3
577d59:	cc                   	int3
577d5a:	cc                   	int3
577d5b:	cc                   	int3
577d5c:	cc                   	int3
577d5d:	cc                   	int3
577d5e:	cc                   	int3
577d5f:	cc                   	int3
577d60:	b8 20 00 00 00       	mov    $0x20,%eax
577d65:	e8 46 9a 05 00       	call   0x5d17b0
577d6a:	53                   	push   %ebx
577d6b:	33 c0                	xor    %eax,%eax
577d6d:	33 c9                	xor    %ecx,%ecx
577d6f:	55                   	push   %ebp
577d70:	8b 6c 24 3c          	mov    0x3c(%esp),%ebp
577d74:	33 db                	xor    %ebx,%ebx
577d76:	89 44 24 18          	mov    %eax,0x18(%esp)
577d7a:	8b 44 24 2c          	mov    0x2c(%esp),%eax
577d7e:	56                   	push   %esi
577d7f:	8b 74 24 48          	mov    0x48(%esp),%esi
577d83:	8b 6d 00             	mov    0x0(%ebp),%ebp
577d86:	8b 40 64             	mov    0x64(%eax),%eax
577d89:	57                   	push   %edi
577d8a:	56                   	push   %esi
577d8b:	89 44 24 28          	mov    %eax,0x28(%esp)
577d8f:	33 ff                	xor    %edi,%edi
577d91:	89 5c 24 18          	mov    %ebx,0x18(%esp)
577d95:	89 4c 24 20          	mov    %ecx,0x20(%esp)
577d99:	e8 22 d3 f6 ff       	call   0x4e50c0
577d9e:	83 c4 04             	add    $0x4,%esp
577da1:	85 c0                	test   %eax,%eax
577da3:	0f 8e 05 01 00 00    	jle    0x577eae
577da9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
577db0:	57                   	push   %edi
577db1:	56                   	push   %esi
577db2:	e8 c9 d4 f6 ff       	call   0x4e5280
577db7:	ff 74 24 2c          	push   0x2c(%esp)
577dbb:	8b 4c 24 54          	mov    0x54(%esp),%ecx
577dbf:	50                   	push   %eax
577dc0:	89 44 24 20          	mov    %eax,0x20(%esp)
577dc4:	8d 44 24 28          	lea    0x28(%esp),%eax
577dc8:	50                   	push   %eax
577dc9:	8b 09                	mov    (%ecx),%ecx
577dcb:	8d 44 24 28          	lea    0x28(%esp),%eax
577dcf:	50                   	push   %eax
577dd0:	ff 74 24 4c          	push   0x4c(%esp)
577dd4:	89 4c 24 34          	mov    %ecx,0x34(%esp)
577dd8:	e8 f3 fd ff ff       	call   0x577bd0
577ddd:	8b f0                	mov    %eax,%esi
577ddf:	83 c4 1c             	add    $0x1c,%esp
577de2:	3b f5                	cmp    %ebp,%esi
577de4:	7c 5d                	jl     0x577e43
577de6:	85 f6                	test   %esi,%esi
577de8:	74 59                	je     0x577e43
577dea:	3b f5                	cmp    %ebp,%esi
577dec:	75 3f                	jne    0x577e2d
577dee:	85 db                	test   %ebx,%ebx
577df0:	74 3b                	je     0x577e2d
577df2:	ff 74 24 10          	push   0x10(%esp)
577df6:	e8 b5 84 f7 ff       	call   0x4f02b0
577dfb:	83 c4 04             	add    $0x4,%esp
577dfe:	50                   	push   %eax
577dff:	53                   	push   %ebx
577e00:	e8 ab 84 f7 ff       	call   0x4f02b0
577e05:	83 c4 04             	add    $0x4,%esp
577e08:	50                   	push   %eax
577e09:	8d 44 24 34          	lea    0x34(%esp),%eax
577e0d:	50                   	push   %eax
577e0e:	8d 44 24 34          	lea    0x34(%esp),%eax
577e12:	50                   	push   %eax
577e13:	e8 88 2f fe ff       	call   0x55ada0
577e18:	83 c4 10             	add    $0x10,%esp
577e1b:	85 c0                	test   %eax,%eax
577e1d:	74 24                	je     0x577e43
577e1f:	83 7c 24 28 00       	cmpl   $0x0,0x28(%esp)
577e24:	7f 07                	jg     0x577e2d
577e26:	83 7c 24 2c 00       	cmpl   $0x0,0x2c(%esp)
577e2b:	7e 16                	jle    0x577e43
577e2d:	8b 44 24 14          	mov    0x14(%esp),%eax
577e31:	8b ee                	mov    %esi,%ebp
577e33:	8b 5c 24 10          	mov    0x10(%esp),%ebx
577e37:	89 44 24 1c          	mov    %eax,0x1c(%esp)
577e3b:	8b 44 24 18          	mov    0x18(%esp),%eax
577e3f:	89 44 24 20          	mov    %eax,0x20(%esp)
577e43:	8b 74 24 4c          	mov    0x4c(%esp),%esi
577e47:	47                   	inc    %edi
577e48:	56                   	push   %esi
577e49:	e8 72 d2 f6 ff       	call   0x4e50c0
577e4e:	83 c4 04             	add    $0x4,%esp
577e51:	3b f8                	cmp    %eax,%edi
577e53:	0f 8c 57 ff ff ff    	jl     0x577db0
577e59:	85 db                	test   %ebx,%ebx
577e5b:	74 51                	je     0x577eae
577e5d:	8b 74 24 38          	mov    0x38(%esp),%esi
577e61:	ff 36                	push   (%esi)
577e63:	e8 f8 f9 fd ff       	call   0x557860
577e68:	8b 44 24 44          	mov    0x44(%esp),%eax
577e6c:	8b 4c 24 20          	mov    0x20(%esp),%ecx
577e70:	8b 7c 24 48          	mov    0x48(%esp),%edi
577e74:	89 1e                	mov    %ebx,(%esi)
577e76:	89 08                	mov    %ecx,(%eax)
577e78:	8b 4c 24 4c          	mov    0x4c(%esp),%ecx
577e7c:	8b 44 24 24          	mov    0x24(%esp),%eax
577e80:	89 2f                	mov    %ebp,(%edi)
577e82:	53                   	push   %ebx
577e83:	89 01                	mov    %eax,(%ecx)
577e85:	e8 c6 9b ff ff       	call   0x571a50
577e8a:	8b 74 24 44          	mov    0x44(%esp),%esi
577e8e:	ff 36                	push   (%esi)
577e90:	e8 cb f9 fd ff       	call   0x557860
577e95:	ff 74 24 58          	push   0x58(%esp)
577e99:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
577e9f:	53                   	push   %ebx
577ea0:	57                   	push   %edi
577ea1:	56                   	push   %esi
577ea2:	ff 74 24 50          	push   0x50(%esp)
577ea6:	e8 25 00 00 00       	call   0x577ed0
577eab:	83 c4 20             	add    $0x20,%esp
577eae:	5f                   	pop    %edi
577eaf:	33 c0                	xor    %eax,%eax
577eb1:	81 fd c0 01 00 00    	cmp    $0x1c0,%ebp
577eb7:	5e                   	pop    %esi
577eb8:	5d                   	pop    %ebp
577eb9:	0f 9d c0             	setge  %al
577ebc:	5b                   	pop    %ebx
577ebd:	83 c4 20             	add    $0x20,%esp
577ec0:	c3                   	ret
577ec1:	cc                   	int3
577ec2:	cc                   	int3
577ec3:	cc                   	int3
577ec4:	cc                   	int3
577ec5:	cc                   	int3
577ec6:	cc                   	int3
577ec7:	cc                   	int3
577ec8:	cc                   	int3
577ec9:	cc                   	int3
577eca:	cc                   	int3
577ecb:	cc                   	int3
577ecc:	cc                   	int3
577ecd:	cc                   	int3
577ece:	cc                   	int3
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