506c5d:	83 c4 08             	add    $0x8,%esp
506c60:	66 83 7f 14 00       	cmpw   $0x0,0x14(%edi)
506c65:	74 17                	je     0x506c7e
506c67:	33 c0                	xor    %eax,%eax
506c69:	66 89 47 14          	mov    %ax,0x14(%edi)
506c6d:	8b 46 10             	mov    0x10(%esi),%eax
506c70:	85 c0                	test   %eax,%eax
506c72:	74 0a                	je     0x506c7e
506c74:	50                   	push   %eax
506c75:	57                   	push   %edi
506c76:	e8 35 93 05 00       	call   0x55ffb0
506c7b:	83 c4 08             	add    $0x8,%esp
506c7e:	5f                   	pop    %edi
506c7f:	b8 01 00 00 00       	mov    $0x1,%eax
506c84:	5e                   	pop    %esi
506c85:	5d                   	pop    %ebp
506c86:	c3                   	ret
506c87:	8b 46 0c             	mov    0xc(%esi),%eax
506c8a:	85 c0                	test   %eax,%eax
506c8c:	74 8e                	je     0x506c1c
506c8e:	50                   	push   %eax
506c8f:	ff 75 08             	push   0x8(%ebp)
506c92:	e8 19 93 05 00       	call   0x55ffb0
506c97:	83 c4 08             	add    $0x8,%esp
506c9a:	83 f8 02             	cmp    $0x2,%eax
506c9d:	0f 85 79 ff ff ff    	jne    0x506c1c
506ca3:	5e                   	pop    %esi
506ca4:	5d                   	pop    %ebp
506ca5:	c3                   	ret
506ca6:	8b 46 0c             	mov    0xc(%esi),%eax
506ca9:	80 38 a4             	cmpb   $0xa4,(%eax)
506cac:	75 0d                	jne    0x506cbb
506cae:	8b 40 2c             	mov    0x2c(%eax),%eax
506cb1:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
506cb5:	0f 85 61 ff ff ff    	jne    0x506c1c
506cbb:	8b 46 10             	mov    0x10(%esi),%eax
506cbe:	80 38 a4             	cmpb   $0xa4,(%eax)
506cc1:	75 0d                	jne    0x506cd0
506cc3:	8b 40 2c             	mov    0x2c(%eax),%eax
506cc6:	83 78 38 00          	cmpl   $0x0,0x38(%eax)
506cca:	0f 85 4c ff ff ff    	jne    0x506c1c
506cd0:	33 c0                	xor    %eax,%eax
506cd2:	5e                   	pop    %esi
506cd3:	5d                   	pop    %ebp
506cd4:	c3                   	ret
506cd5:	0f 1f 00             	nopl   (%eax)
506cd8:	1c 6c                	sbb    $0x6c,%al
506cda:	50                   	push   %eax
506cdb:	00 44 6c 50          	add    %al,0x50(%esp,%ebp,2)
506cdf:	00 87 6c 50 00 a6    	add    %al,-0x59ffaf94(%edi)
506ce5:	6c                   	insb   (%dx),%es:(%edi)
506ce6:	50                   	push   %eax
506ce7:	00 24 6c             	add    %ah,(%esp,%ebp,2)
506cea:	50                   	push   %eax
506ceb:	00 d0                	add    %dl,%al
506ced:	6c                   	insb   (%dx),%es:(%edi)
506cee:	50                   	push   %eax
506cef:	00 00                	add    %al,(%eax)
506cf1:	01 00                	add    %eax,(%eax)
506cf3:	05 05 02 00 00       	add    $0x205,%eax
506cf8:	00 03                	add    %al,(%ebx)
506cfa:	03 03                	add    (%ebx),%eax
506cfc:	03 03                	add    (%ebx),%eax
506cfe:	03 05 05 05 05 05    	add    0x5050505,%eax
506d04:	05 05 05 05 05       	add    $0x5050505,%eax
506d09:	05 05 05 05 05       	add    $0x5050505,%eax
506d0e:	05 05 05 05 05       	add    $0x5050505,%eax
506d13:	05 05 05 05 05       	add    $0x5050505,%eax
506d18:	05 05 05 05 05       	add    $0x5050505,%eax
506d1d:	05 05 05 05 05       	add    $0x5050505,%eax
506d22:	05 05 05 05 05       	add    $0x5050505,%eax
506d27:	05 05 05 05 05       	add    $0x5050505,%eax
506d2c:	05 05 05 05 05       	add    $0x5050505,%eax
506d31:	05 05 05 05 05       	add    $0x5050505,%eax
506d36:	05 05 05 05 05       	add    $0x5050505,%eax
506d3b:	05 05 05 05 05       	add    $0x5050505,%eax
506d40:	05 05 05 05 05       	add    $0x5050505,%eax
506d45:	05 05 05 05 05       	add    $0x5050505,%eax
506d4a:	05 05 05 05 05       	add    $0x5050505,%eax
506d4f:	05 05 05 05 05       	add    $0x5050505,%eax
506d54:	05 05 05 05 05       	add    $0x5050505,%eax
506d59:	05 05 05 05 05       	add    $0x5050505,%eax
506d5e:	05 00 05 05 05       	add    $0x5050500,%eax
506d63:	05 05 05 05 05       	add    $0x5050505,%eax
506d68:	05 04 05 05 05       	add    $0x5050504,%eax
506d6d:	00 00                	add    %al,(%eax)
506d6f:	05 05 00 05 00       	add    $0x50005,%eax
506d74:	cc                   	int3
506d75:	cc                   	int3
506d76:	cc                   	int3
506d77:	cc                   	int3
506d78:	cc                   	int3
506d79:	cc                   	int3
506d7a:	cc                   	int3
506d7b:	cc                   	int3
506d7c:	cc                   	int3
506d7d:	cc                   	int3
506d7e:	cc                   	int3
506d7f:	cc                   	int3
506d80:	55                   	push   %ebp
506d81:	8b ec                	mov    %esp,%ebp
506d83:	8b 4d 0c             	mov    0xc(%ebp),%ecx
506d86:	80 39 a5             	cmpb   $0xa5,(%ecx)
506d89:	75 09                	jne    0x506d94
506d8b:	8b 45 08             	mov    0x8(%ebp),%eax
506d8e:	8a 40 18             	mov    0x18(%eax),%al
506d91:	00 41 02             	add    %al,0x2(%ecx)
506d94:	33 c0                	xor    %eax,%eax
506d96:	5d                   	pop    %ebp
506d97:	c3                   	ret
506d98:	cc                   	int3
506d99:	cc                   	int3
506d9a:	cc                   	int3
506d9b:	cc                   	int3
506d9c:	cc                   	int3
506d9d:	cc                   	int3
506d9e:	cc                   	int3
506d9f:	cc                   	int3
506da0:	55                   	push   %ebp
506da1:	8b ec                	mov    %esp,%ebp
506da3:	83 ec 18             	sub    $0x18,%esp
506da6:	53                   	push   %ebx
506da7:	8b 5d 08             	mov    0x8(%ebp),%ebx
506daa:	56                   	push   %esi
506dab:	57                   	push   %edi
506dac:	8b 7d 10             	mov    0x10(%ebp),%edi
506daf:	83 ff 02             	cmp    $0x2,%edi
506db2:	73 04                	jae    0x506db8
506db4:	33 d2                	xor    %edx,%edx
506db6:	eb 2f                	jmp    0x506de7
506db8:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
506dbd:	8d 77 fe             	lea    -0x2(%edi),%esi
506dc0:	f7 63 24             	mull   0x24(%ebx)
506dc3:	8b c6                	mov    %esi,%eax
506dc5:	8b ca                	mov    %edx,%ecx
506dc7:	33 d2                	xor    %edx,%edx
506dc9:	c1 e9 02             	shr    $0x2,%ecx
506dcc:	41                   	inc    %ecx
506dcd:	f7 f1                	div    %ecx
506dcf:	a1 18 19 72 00       	mov    0x721918,%eax
506dd4:	2b f2                	sub    %edx,%esi
506dd6:	33 d2                	xor    %edx,%edx
506dd8:	f7 73 20             	divl   0x20(%ebx)
506ddb:	8d 4e 02             	lea    0x2(%esi),%ecx
506dde:	40                   	inc    %eax
506ddf:	8d 51 01             	lea    0x1(%ecx),%edx
506de2:	3b c8                	cmp    %eax,%ecx
506de4:	0f 45 d1             	cmovne %ecx,%edx
506de7:	8b 75 14             	mov    0x14(%ebp),%esi
506dea:	3b d7                	cmp    %edi,%edx
506dec:	0f 84 3e 01 00 00    	je     0x506f30
506df2:	a1 18 19 72 00       	mov    0x721918,%eax
506df7:	33 d2                	xor    %edx,%edx
506df9:	f7 73 20             	divl   0x20(%ebx)
506dfc:	40                   	inc    %eax
506dfd:	3b f8                	cmp    %eax,%edi
506dff:	0f 84 2b 01 00 00    	je     0x506f30
506e05:	8b 43 0c             	mov    0xc(%ebx),%eax
506e08:	8b 40 38             	mov    0x38(%eax),%eax
506e0b:	8b 40 24             	mov    0x24(%eax),%eax
506e0e:	0f c8                	bswap  %eax
506e10:	85 c0                	test   %eax,%eax
506e12:	75 0c                	jne    0x506e20
506e14:	5f                   	pop    %edi
506e15:	5e                   	pop    %esi
506e16:	b8 65 00 00 00       	mov    $0x65,%eax
506e1b:	5b                   	pop    %ebx
506e1c:	8b e5                	mov    %ebp,%esp
506e1e:	5d                   	pop    %ebp
506e1f:	c3                   	ret
506e20:	8d 45 e8             	lea    -0x18(%ebp),%eax
506e23:	50                   	push   %eax
506e24:	8d 45 fc             	lea    -0x4(%ebp),%eax
506e27:	50                   	push   %eax
506e28:	57                   	push   %edi
506e29:	53                   	push   %ebx
506e2a:	e8 e1 9a 00 00       	call   0x510910
506e2f:	83 c4 10             	add    $0x10,%esp
506e32:	85 c0                	test   %eax,%eax
506e34:	0f 85 64 01 00 00    	jne    0x506f9e
506e3a:	8b 45 fc             	mov    -0x4(%ebp),%eax
506e3d:	3c 01                	cmp    $0x1,%al
506e3f:	75 14                	jne    0x506e55
506e41:	68 11 09 01 00       	push   $0x10911
506e46:	e8 65 8f 01 00       	call   0x51fdb0
506e4b:	83 c4 04             	add    $0x4,%esp
506e4e:	5f                   	pop    %edi
506e4f:	5e                   	pop    %esi
506e50:	5b                   	pop    %ebx
506e51:	8b e5                	mov    %ebp,%esp
506e53:	5d                   	pop    %ebp
506e54:	c3                   	ret
506e55:	3c 02                	cmp    $0x2,%al
506e57:	75 3d                	jne    0x506e96
506e59:	85 f6                	test   %esi,%esi
506e5b:	0f 85 3b 01 00 00    	jne    0x506f9c
506e61:	6a 01                	push   $0x1
506e63:	57                   	push   %edi
506e64:	8d 45 e8             	lea    -0x18(%ebp),%eax
506e67:	50                   	push   %eax
506e68:	8d 45 10             	lea    0x10(%ebp),%eax
506e6b:	50                   	push   %eax
506e6c:	53                   	push   %ebx
506e6d:	e8 ae b4 fe ff       	call   0x4f2320
506e72:	83 c4 14             	add    $0x14,%esp
506e75:	85 c0                	test   %eax,%eax
506e77:	0f 85 21 01 00 00    	jne    0x506f9e
506e7d:	8b 45 10             	mov    0x10(%ebp),%eax
506e80:	85 c0                	test   %eax,%eax
506e82:	0f 84 ac 00 00 00    	je     0x506f34
506e88:	50                   	push   %eax
506e89:	e8 32 b2 00 00       	call   0x5120c0
506e8e:	83 c4 04             	add    $0x4,%esp
506e91:	e9 9e 00 00 00       	jmp    0x506f34
506e96:	6a 00                	push   $0x0
506e98:	8d 45 10             	lea    0x10(%ebp),%eax
506e9b:	50                   	push   %eax
506e9c:	57                   	push   %edi
506e9d:	53                   	push   %ebx
506e9e:	e8 5d fd fe ff       	call   0x4f6c00
506ea3:	83 c4 10             	add    $0x10,%esp
506ea6:	85 c0                	test   %eax,%eax
506ea8:	0f 85 f0 00 00 00    	jne    0x506f9e
506eae:	8b 4d 0c             	mov    0xc(%ebp),%ecx
506eb1:	85 f6                	test   %esi,%esi
506eb3:	0f 95 c2             	setne  %dl
506eb6:	0f 45 c8             	cmovne %eax,%ecx
506eb9:	fe ca                	dec    %dl
506ebb:	89 4d f0             	mov    %ecx,-0x10(%ebp)
506ebe:	80 e2 02             	and    $0x2,%dl
506ec1:	89 55 ec             	mov    %edx,-0x14(%ebp)
506ec4:	52                   	push   %edx
506ec5:	51                   	push   %ecx
506ec6:	8d 45 f4             	lea    -0xc(%ebp),%eax
506ec9:	50                   	push   %eax
506eca:	8d 45 f8             	lea    -0x8(%ebp),%eax
506ecd:	50                   	push   %eax
506ece:	53                   	push   %ebx
506ecf:	e8 4c b4 fe ff       	call   0x4f2320
506ed4:	8b f0                	mov    %eax,%esi
506ed6:	83 c4 14             	add    $0x14,%esp
506ed9:	85 f6                	test   %esi,%esi
506edb:	75 73                	jne    0x506f50
506edd:	8b 45 f8             	mov    -0x8(%ebp),%eax
506ee0:	85 c0                	test   %eax,%eax
506ee2:	74 09                	je     0x506eed
506ee4:	50                   	push   %eax
506ee5:	e8 d6 b1 00 00       	call   0x5120c0
506eea:	83 c4 04             	add    $0x4,%esp
506eed:	8b 75 14             	mov    0x14(%ebp),%esi
506ef0:	8b 45 f4             	mov    -0xc(%ebp),%eax
506ef3:	85 f6                	test   %esi,%esi
506ef5:	74 0b                	je     0x506f02
506ef7:	8b 4d f0             	mov    -0x10(%ebp),%ecx
506efa:	8b 55 ec             	mov    -0x14(%ebp),%edx
506efd:	3b 45 0c             	cmp    0xc(%ebp),%eax
506f00:	77 c2                	ja     0x506ec4
506f02:	56                   	push   %esi
506f03:	50                   	push   %eax
506f04:	ff 75 e8             	push   -0x18(%ebp)
506f07:	ff 75 fc             	push   -0x4(%ebp)
506f0a:	ff 75 10             	push   0x10(%ebp)
506f0d:	53                   	push   %ebx
506f0e:	e8 3d b2 00 00       	call   0x512150
506f13:	8b 4d 10             	mov    0x10(%ebp),%ecx
506f16:	83 c4 18             	add    $0x18,%esp
506f19:	89 45 e8             	mov    %eax,-0x18(%ebp)
506f1c:	85 c9                	test   %ecx,%ecx
506f1e:	74 0c                	je     0x506f2c
506f20:	51                   	push   %ecx
506f21:	e8 9a b1 00 00       	call   0x5120c0
506f26:	8b 45 e8             	mov    -0x18(%ebp),%eax
506f29:	83 c4 04             	add    $0x4,%esp
506f2c:	85 c0                	test   %eax,%eax
506f2e:	75 6e                	jne    0x506f9e
506f30:	85 f6                	test   %esi,%esi
506f32:	75 68                	jne    0x506f9c
506f34:	a1 18 19 72 00       	mov    0x721918,%eax
506f39:	33 d2                	xor    %edx,%edx
506f3b:	f7 73 20             	divl   0x20(%ebx)
506f3e:	40                   	inc    %eax
506f3f:	89 45 10             	mov    %eax,0x10(%ebp)
506f42:	4f                   	dec    %edi
506f43:	3b f8                	cmp    %eax,%edi
506f45:	74 fb                	je     0x506f42
506f47:	83 ff 02             	cmp    $0x2,%edi
506f4a:	73 1d                	jae    0x506f69
506f4c:	33 c0                	xor    %eax,%eax
506f4e:	eb 3e                	jmp    0x506f8e
506f50:	8b 45 10             	mov    0x10(%ebp),%eax
506f53:	85 c0                	test   %eax,%eax
506f55:	74 09                	je     0x506f60
506f57:	50                   	push   %eax
506f58:	e8 63 b1 00 00       	call   0x5120c0
506f5d:	83 c4 04             	add    $0x4,%esp
506f60:	5f                   	pop    %edi
506f61:	8b c6                	mov    %esi,%eax
506f63:	5e                   	pop    %esi
506f64:	5b                   	pop    %ebx
506f65:	8b e5                	mov    %ebp,%esp
506f67:	5d                   	pop    %ebp
506f68:	c3                   	ret
506f69:	b8 cd cc cc cc       	mov    $0xcccccccd,%eax
506f6e:	8d 77 fe             	lea    -0x2(%edi),%esi
506f71:	f7 63 24             	mull   0x24(%ebx)
506f74:	8b c6                	mov    %esi,%eax
506f76:	8b ca                	mov    %edx,%ecx
506f78:	33 d2                	xor    %edx,%edx
506f7a:	c1 e9 02             	shr    $0x2,%ecx
506f7d:	41                   	inc    %ecx
506f7e:	f7 f1                	div    %ecx
506f80:	2b f2                	sub    %edx,%esi
506f82:	83 c6 02             	add    $0x2,%esi
506f85:	3b 75 10             	cmp    0x10(%ebp),%esi
506f88:	8d 46 01             	lea    0x1(%esi),%eax
506f8b:	0f 45 c6             	cmovne %esi,%eax
506f8e:	3b c7                	cmp    %edi,%eax
506f90:	8b 45 10             	mov    0x10(%ebp),%eax
506f93:	74 ad                	je     0x506f42
506f95:	c6 43 13 01          	movb   $0x1,0x13(%ebx)
506f99:	89 7b 2c             	mov    %edi,0x2c(%ebx)
506f9c:	33 c0                	xor    %eax,%eax
506f9e:	5f                   	pop    %edi
506f9f:	5e                   	pop    %esi
506fa0:	5b                   	pop    %ebx
506fa1:	8b e5                	mov    %ebp,%esp
506fa3:	5d                   	pop    %ebp
506fa4:	c3                   	ret
506fa5:	cc                   	int3
506fa6:	cc                   	int3
506fa7:	cc                   	int3
506fa8:	cc                   	int3
506fa9:	cc                   	int3
506faa:	cc                   	int3
506fab:	cc                   	int3
506fac:	cc                   	int3
506fad:	cc                   	int3
506fae:	cc                   	int3
506faf:	cc                   	int3
506fb0:	55                   	push   %ebp
506fb1:	8b ec                	mov    %esp,%ebp
506fb3:	8b 4d 0c             	mov    0xc(%ebp),%ecx
506fb6:	83 ec 0c             	sub    $0xc,%esp
506fb9:	f6 41 38 04          	testb  $0x4,0x38(%ecx)
506fbd:	74 06                	je     0x506fc5
506fbf:	33 c0                	xor    %eax,%eax
506fc1:	8b e5                	mov    %ebp,%esp
506fc3:	5d                   	pop    %ebp
506fc4:	c3                   	ret
506fc5:	8b 45 08             	mov    0x8(%ebp),%eax