577b47:	a9 00 00 20 00       	test   $0x200000,%eax
577b4c:	75 6a                	jne    0x577bb8
577b4e:	33 f6                	xor    %esi,%esi
577b50:	56                   	push   %esi
577b51:	57                   	push   %edi
577b52:	e8 69 c1 f6 ff       	call   0x4e3cc0
577b57:	83 c4 04             	add    $0x4,%esp
577b5a:	50                   	push   %eax
577b5b:	e8 10 d7 ff ff       	call   0x575270
577b60:	83 c4 08             	add    $0x8,%esp
577b63:	85 c0                	test   %eax,%eax
577b65:	79 27                	jns    0x577b8e
577b67:	56                   	push   %esi
577b68:	57                   	push   %edi
577b69:	e8 32 8c f7 ff       	call   0x4f07a0
577b6e:	83 c4 04             	add    $0x4,%esp
577b71:	50                   	push   %eax
577b72:	e8 f9 d6 ff ff       	call   0x575270
577b77:	83 c4 08             	add    $0x8,%esp
577b7a:	85 c0                	test   %eax,%eax
577b7c:	7e 10                	jle    0x577b8e
577b7e:	8b 44 24 14          	mov    0x14(%esp),%eax
577b82:	5b                   	pop    %ebx
577b83:	5f                   	pop    %edi
577b84:	5e                   	pop    %esi
577b85:	5d                   	pop    %ebp
577b86:	83 c4 08             	add    $0x8,%esp
577b89:	c3                   	ret
577b8a:	8b 6c 24 10          	mov    0x10(%esp),%ebp
577b8e:	8b 74 24 24          	mov    0x24(%esp),%esi
577b92:	8b 7c 24 20          	mov    0x20(%esp),%edi
577b96:	45                   	inc    %ebp
577b97:	57                   	push   %edi
577b98:	89 6c 24 14          	mov    %ebp,0x14(%esp)
577b9c:	e8 1f d5 f6 ff       	call   0x4e50c0
577ba1:	83 c4 04             	add    $0x4,%esp
577ba4:	3b e8                	cmp    %eax,%ebp
577ba6:	0f 8c 07 ff ff ff    	jl     0x577ab3
577bac:	8b 44 24 14          	mov    0x14(%esp),%eax
577bb0:	5b                   	pop    %ebx
577bb1:	5f                   	pop    %edi
577bb2:	5e                   	pop    %esi
577bb3:	5d                   	pop    %ebp
577bb4:	83 c4 08             	add    $0x8,%esp
577bb7:	c3                   	ret
577bb8:	5b                   	pop    %ebx
577bb9:	5f                   	pop    %edi
577bba:	5e                   	pop    %esi
577bbb:	8b c1                	mov    %ecx,%eax
577bbd:	5d                   	pop    %ebp
577bbe:	83 c4 08             	add    $0x8,%esp
577bc1:	c3                   	ret
577bc2:	5f                   	pop    %edi
577bc3:	8b c6                	mov    %esi,%eax
577bc5:	5e                   	pop    %esi
577bc6:	5d                   	pop    %ebp
577bc7:	83 c4 08             	add    $0x8,%esp
577bca:	c3                   	ret
577bcb:	cc                   	int3
577bcc:	cc                   	int3
577bcd:	cc                   	int3
577bce:	cc                   	int3
577bcf:	cc                   	int3
577bd0:	b8 04 00 00 00       	mov    $0x4,%eax
577bd5:	e8 d6 9b 05 00       	call   0x5d17b0
577bda:	53                   	push   %ebx
577bdb:	55                   	push   %ebp
577bdc:	8b 6c 24 18          	mov    0x18(%esp),%ebp
577be0:	56                   	push   %esi
577be1:	8b 74 24 20          	mov    0x20(%esp),%esi
577be5:	57                   	push   %edi
577be6:	8b 6d 00             	mov    0x0(%ebp),%ebp
577be9:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
577bf0:	00
577bf1:	8b 4e 54             	mov    0x54(%esi),%ecx
577bf4:	f6 c1 02             	test   $0x2,%cl
577bf7:	75 15                	jne    0x577c0e
577bf9:	8b 5c 24 18          	mov    0x18(%esp),%ebx
577bfd:	8b 43 10             	mov    0x10(%ebx),%eax
577c00:	f7 40 14 00 10 00 00 	testl  $0x1000,0x14(%eax)
577c07:	75 0d                	jne    0x577c16
577c09:	f6 c1 60             	test   $0x60,%cl
577c0c:	74 24                	je     0x577c32
577c0e:	5f                   	pop    %edi
577c0f:	5e                   	pop    %esi
577c10:	5d                   	pop    %ebp
577c11:	33 c0                	xor    %eax,%eax
577c13:	5b                   	pop    %ebx
577c14:	59                   	pop    %ecx
577c15:	c3                   	ret
577c16:	f6 c1 40             	test   $0x40,%cl
577c19:	74 11                	je     0x577c2c
577c1b:	8b c5                	mov    %ebp,%eax
577c1d:	f7 d0                	not    %eax
577c1f:	85 46 58             	test   %eax,0x58(%esi)
577c22:	75 0e                	jne    0x577c32
577c24:	5f                   	pop    %edi
577c25:	5e                   	pop    %esi
577c26:	5d                   	pop    %ebp
577c27:	33 c0                	xor    %eax,%eax
577c29:	5b                   	pop    %ebx
577c2a:	59                   	pop    %ecx
577c2b:	c3                   	ret
577c2c:	83 7e 60 00          	cmpl   $0x0,0x60(%esi)
577c30:	75 dc                	jne    0x577c0e
577c32:	56                   	push   %esi
577c33:	e8 08 f6 f6 ff       	call   0x4e7240
577c38:	83 c4 04             	add    $0x4,%esp
577c3b:	50                   	push   %eax
577c3c:	ff 74 24 2c          	push   0x2c(%esp)
577c40:	e8 4b 9c f7 ff       	call   0x4f1890
577c45:	83 c4 04             	add    $0x4,%esp
577c48:	50                   	push   %eax
577c49:	e8 02 ff fd ff       	call   0x557b50
577c4e:	83 c4 08             	add    $0x8,%esp
577c51:	85 c0                	test   %eax,%eax
577c53:	74 0a                	je     0x577c5f
577c55:	f6 46 54 20          	testb  $0x20,0x54(%esi)
577c59:	74 b3                	je     0x577c0e
577c5b:	33 ff                	xor    %edi,%edi
577c5d:	eb 0d                	jmp    0x577c6c
577c5f:	c7 44 24 10 20 00 00 	movl   $0x20,0x10(%esp)
577c66:	00
577c67:	bf 20 00 00 00       	mov    $0x20,%edi
577c6c:	f7 46 48 00 02 00 00 	testl  $0x200,0x48(%esi)
577c73:	75 0a                	jne    0x577c7f
577c75:	81 cf 00 01 00 00    	or     $0x100,%edi
577c7b:	89 7c 24 10          	mov    %edi,0x10(%esp)
577c7f:	8b 5b 10             	mov    0x10(%ebx),%ebx
577c82:	8b 43 14             	mov    0x14(%ebx),%eax
577c85:	a8 02                	test   $0x2,%al
577c87:	74 05                	je     0x577c8e
577c89:	83 c3 08             	add    $0x8,%ebx
577c8c:	eb 09                	jmp    0x577c97
577c8e:	a9 00 00 20 00       	test   $0x200000,%eax
577c93:	75 54                	jne    0x577ce9
577c95:	33 db                	xor    %ebx,%ebx
577c97:	53                   	push   %ebx
577c98:	56                   	push   %esi
577c99:	e8 12 86 f7 ff       	call   0x4f02b0
577c9e:	83 c4 04             	add    $0x4,%esp
577ca1:	50                   	push   %eax
577ca2:	e8 c9 d5 ff ff       	call   0x575270
577ca7:	83 c4 08             	add    $0x8,%esp
577caa:	85 c0                	test   %eax,%eax
577cac:	74 48                	je     0x577cf6
577cae:	7f 46                	jg     0x577cf6
577cb0:	56                   	push   %esi
577cb1:	e8 aa f5 f6 ff       	call   0x4e7260
577cb6:	83 c4 04             	add    $0x4,%esp
577cb9:	85 c0                	test   %eax,%eax
577cbb:	74 2c                	je     0x577ce9
577cbd:	53                   	push   %ebx
577cbe:	56                   	push   %esi
577cbf:	e8 9c f5 f6 ff       	call   0x4e7260
577cc4:	83 c4 04             	add    $0x4,%esp
577cc7:	50                   	push   %eax
577cc8:	e8 a3 d5 ff ff       	call   0x575270
577ccd:	83 c4 08             	add    $0x8,%esp
577cd0:	85 c0                	test   %eax,%eax
577cd2:	8b 44 24 18          	mov    0x18(%esp),%eax
577cd6:	74 22                	je     0x577cfa
577cd8:	79 13                	jns    0x577ced
577cda:	f6 40 70 02          	testb  $0x2,0x70(%eax)
577cde:	74 1a                	je     0x577cfa
577ce0:	83 cf 40             	or     $0x40,%edi
577ce3:	89 7c 24 10          	mov    %edi,0x10(%esp)
577ce7:	eb 11                	jmp    0x577cfa
577ce9:	8b 44 24 18          	mov    0x18(%esp),%eax
577ced:	83 cf 40             	or     $0x40,%edi
577cf0:	89 7c 24 10          	mov    %edi,0x10(%esp)
577cf4:	eb 04                	jmp    0x577cfa
577cf6:	8b 44 24 18          	mov    0x18(%esp),%eax
577cfa:	8d 4c 24 10          	lea    0x10(%esp),%ecx
577cfe:	51                   	push   %ecx
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