508dea:	5f                   	pop    %edi
508deb:	5e                   	pop    %esi
508dec:	5d                   	pop    %ebp
508ded:	5b                   	pop    %ebx
508dee:	83 c4 10             	add    $0x10,%esp
508df1:	c3                   	ret
508df2:	cc                   	int3
508df3:	cc                   	int3
508df4:	cc                   	int3
508df5:	cc                   	int3
508df6:	cc                   	int3
508df7:	cc                   	int3
508df8:	cc                   	int3
508df9:	cc                   	int3
508dfa:	cc                   	int3
508dfb:	cc                   	int3
508dfc:	cc                   	int3
508dfd:	cc                   	int3
508dfe:	cc                   	int3
508dff:	cc                   	int3
508e00:	b8 04 00 00 00       	mov    $0x4,%eax
508e05:	e8 a6 89 0c 00       	call   0x5d17b0
508e0a:	53                   	push   %ebx
508e0b:	55                   	push   %ebp
508e0c:	8b 6c 24 10          	mov    0x10(%esp),%ebp
508e10:	33 db                	xor    %ebx,%ebx
508e12:	55                   	push   %ebp
508e13:	e8 48 0f fd ff       	call   0x4d9d60
508e18:	83 c4 04             	add    $0x4,%esp
508e1b:	85 c0                	test   %eax,%eax
508e1d:	74 18                	je     0x508e37
508e1f:	6a 1b                	push   $0x1b
508e21:	68 f0 ad 62 00       	push   $0x62adf0
508e26:	68 b8 25 60 00       	push   $0x6025b8
508e2b:	e8 a0 92 fd ff       	call   0x4e20d0
508e30:	83 c4 0c             	add    $0xc,%esp
508e33:	5d                   	pop    %ebp
508e34:	5b                   	pop    %ebx
508e35:	59                   	pop    %ecx
508e36:	c3                   	ret
508e37:	8b 45 04             	mov    0x4(%ebp),%eax
508e3a:	6a 1c                	push   $0x1c
508e3c:	68 f0 ad 62 00       	push   $0x62adf0
508e41:	8d 04 c5 02 00 00 00 	lea    0x2(,%eax,8),%eax
508e48:	50                   	push   %eax
508e49:	e8 02 79 fd ff       	call   0x4e0750
508e4e:	83 c4 0c             	add    $0xc,%esp
508e51:	89 44 24 08          	mov    %eax,0x8(%esp)
508e55:	85 c0                	test   %eax,%eax
508e57:	75 1d                	jne    0x508e76
508e59:	6a 1e                	push   $0x1e
508e5b:	68 f0 ad 62 00       	push   $0x62adf0
508e60:	6a 41                	push   $0x41
508e62:	6a 69                	push   $0x69
508e64:	6a 03                	push   $0x3
508e66:	e8 15 01 fd ff       	call   0x4d8f80
508e6b:	8b 44 24 1c          	mov    0x1c(%esp),%eax
508e6f:	83 c4 14             	add    $0x14,%esp
508e72:	5d                   	pop    %ebp
508e73:	5b                   	pop    %ebx
508e74:	59                   	pop    %ecx
508e75:	c3                   	ret
508e76:	56                   	push   %esi
508e77:	8b f0                	mov    %eax,%esi
508e79:	57                   	push   %edi
508e7a:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
508e7d:	74 06                	je     0x508e85
508e7f:	c6 00 2d             	movb   $0x2d,(%eax)
508e82:	8d 70 01             	lea    0x1(%eax),%esi
508e85:	8b 7d 04             	mov    0x4(%ebp),%edi
508e88:	83 ef 01             	sub    $0x1,%edi
508e8b:	78 48                	js     0x508ed5
508e8d:	0f 1f 00             	nopl   (%eax)
508e90:	ba 18 00 00 00       	mov    $0x18,%edx
508e95:	8b 45 00             	mov    0x0(%ebp),%eax
508e98:	8b ca                	mov    %edx,%ecx
508e9a:	8b 04 b8             	mov    (%eax,%edi,4),%eax
508e9d:	d3 e8                	shr    %cl,%eax
508e9f:	0f b6 c0             	movzbl %al,%eax
508ea2:	85 db                	test   %ebx,%ebx
508ea4:	75 04                	jne    0x508eaa
508ea6:	85 c0                	test   %eax,%eax
508ea8:	74 21                	je     0x508ecb
508eaa:	8b c8                	mov    %eax,%ecx
508eac:	bb 01 00 00 00       	mov    $0x1,%ebx
508eb1:	c1 e9 04             	shr    $0x4,%ecx
508eb4:	83 e0 0f             	and    $0xf,%eax
508eb7:	8a 89 dc ad 62 00    	mov    0x62addc(%ecx),%cl
508ebd:	88 0e                	mov    %cl,(%esi)
508ebf:	8a 80 dc ad 62 00    	mov    0x62addc(%eax),%al
508ec5:	88 46 01             	mov    %al,0x1(%esi)
508ec8:	83 c6 02             	add    $0x2,%esi
508ecb:	83 ea 08             	sub    $0x8,%edx
508ece:	79 c5                	jns    0x508e95
508ed0:	83 ef 01             	sub    $0x1,%edi
508ed3:	79 bb                	jns    0x508e90
508ed5:	5f                   	pop    %edi
508ed6:	c6 06 00             	movb   $0x0,(%esi)
508ed9:	5e                   	pop    %esi
508eda:	8b 44 24 08          	mov    0x8(%esp),%eax
508ede:	5d                   	pop    %ebp
508edf:	5b                   	pop    %ebx
508ee0:	59                   	pop    %ecx
508ee1:	c3                   	ret
508ee2:	cc                   	int3
508ee3:	cc                   	int3
508ee4:	cc                   	int3
508ee5:	cc                   	int3
508ee6:	cc                   	int3
508ee7:	cc                   	int3
508ee8:	cc                   	int3
508ee9:	cc                   	int3
508eea:	cc                   	int3
508eeb:	cc                   	int3
508eec:	cc                   	int3
508eed:	cc                   	int3
508eee:	cc                   	int3
508eef:	cc                   	int3
508ef0:	b8 04 00 00 00       	mov    $0x4,%eax
508ef5:	e8 b6 88 0c 00       	call   0x5d17b0
508efa:	8b 44 24 0c          	mov    0xc(%esp),%eax
508efe:	53                   	push   %ebx
508eff:	55                   	push   %ebp
508f00:	56                   	push   %esi
508f01:	57                   	push   %edi
508f02:	33 ff                	xor    %edi,%edi
508f04:	85 c0                	test   %eax,%eax
508f06:	0f 84 5b 01 00 00    	je     0x509067
508f0c:	8a 08                	mov    (%eax),%cl
508f0e:	84 c9                	test   %cl,%cl
508f10:	0f 84 51 01 00 00    	je     0x509067
508f16:	80 f9 2d             	cmp    $0x2d,%cl
508f19:	8d 68 01             	lea    0x1(%eax),%ebp
508f1c:	0f 45 e8             	cmovne %eax,%ebp
508f1f:	33 db                	xor    %ebx,%ebx
508f21:	80 f9 2d             	cmp    $0x2d,%cl
508f24:	0f 94 c3             	sete   %bl
508f27:	33 f6                	xor    %esi,%esi
508f29:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
508f2d:	0f 1f 00             	nopl   (%eax)
508f30:	0f be 04 2e          	movsbl (%esi,%ebp,1),%eax
508f34:	6a 04                	push   $0x4
508f36:	50                   	push   %eax
508f37:	e8 64 b1 fd ff       	call   0x4e40a0
508f3c:	83 c4 08             	add    $0x8,%esp
508f3f:	85 c0                	test   %eax,%eax
508f41:	74 09                	je     0x508f4c
508f43:	46                   	inc    %esi
508f44:	81 fe ff ff ff 1f    	cmp    $0x1fffffff,%esi
508f4a:	7e e4                	jle    0x508f30
508f4c:	85 f6                	test   %esi,%esi
508f4e:	0f 84 01 01 00 00    	je     0x509055
508f54:	81 fe ff ff ff 1f    	cmp    $0x1fffffff,%esi
508f5a:	0f 87 f5 00 00 00    	ja     0x509055
508f60:	8d 04 33             	lea    (%ebx,%esi,1),%eax
508f63:	89 44 24 10          	mov    %eax,0x10(%esp)
508f67:	8b 44 24 18          	mov    0x18(%esp),%eax
508f6b:	85 c0                	test   %eax,%eax
508f6d:	0f 84 d8 00 00 00    	je     0x50904b
508f73:	8b 38                	mov    (%eax),%edi
508f75:	85 ff                	test   %edi,%edi
508f77:	75 11                	jne    0x508f8a
508f79:	e8 62 0e fd ff       	call   0x4d9de0
508f7e:	8b f8                	mov    %eax,%edi
508f80:	85 ff                	test   %edi,%edi
508f82:	75 11                	jne    0x508f95
508f84:	5f                   	pop    %edi
508f85:	5e                   	pop    %esi
508f86:	5d                   	pop    %ebp
508f87:	5b                   	pop    %ebx
508f88:	59                   	pop    %ecx
508f89:	c3                   	ret
508f8a:	6a 00                	push   $0x0
508f8c:	57                   	push   %edi
508f8d:	e8 4e 11 fd ff       	call   0x4da0e0
508f92:	83 c4 08             	add    $0x8,%esp
508f95:	8d 04 b5 00 00 00 00 	lea    0x0(,%esi,4),%eax
508f9c:	3d e0 ff ff 7f       	cmp    $0x7fffffe0,%eax
508fa1:	0f 8f ae 00 00 00    	jg     0x509055
508fa7:	83 c0 1f             	add    $0x1f,%eax
508faa:	99                   	cltd
508fab:	83 e2 1f             	and    $0x1f,%edx
508fae:	03 c2                	add    %edx,%eax
508fb0:	c1 f8 05             	sar    $0x5,%eax
508fb3:	3b 47 08             	cmp    0x8(%edi),%eax
508fb6:	7f 04                	jg     0x508fbc
508fb8:	8b c7                	mov    %edi,%eax
508fba:	eb 0a                	jmp    0x508fc6
508fbc:	50                   	push   %eax
508fbd:	57                   	push   %edi
508fbe:	e8 bd 14 fd ff       	call   0x4da480
508fc3:	83 c4 08             	add    $0x8,%esp
508fc6:	85 c0                	test   %eax,%eax
508fc8:	0f 84 87 00 00 00    	je     0x509055
508fce:	b8 39 8e e3 38       	mov    $0x38e38e39,%eax
508fd3:	33 db                	xor    %ebx,%ebx
508fd5:	f7 e6                	mul    %esi
508fd7:	d1 ea                	shr    $1,%edx
508fd9:	8d 04 d2             	lea    (%edx,%edx,8),%eax
508fdc:	2b c6                	sub    %esi,%eax
508fde:	83 ee 01             	sub    $0x1,%esi
508fe1:	8d 48 09             	lea    0x9(%eax),%ecx
508fe4:	78 49                	js     0x50902f
508fe6:	33 d2                	xor    %edx,%edx
508fe8:	85 c0                	test   %eax,%eax
508fea:	0f 45 d1             	cmovne %ecx,%edx
508fed:	0f 1f 00             	nopl   (%eax)
508ff0:	0f be 45 00          	movsbl 0x0(%ebp),%eax
508ff4:	8d 1c 9b             	lea    (%ebx,%ebx,4),%ebx
508ff7:	42                   	inc    %edx
508ff8:	8d 5b e8             	lea    -0x18(%ebx),%ebx
508ffb:	8d 6d 01             	lea    0x1(%ebp),%ebp
508ffe:	8d 1c 58             	lea    (%eax,%ebx,2),%ebx
509001:	83 fa 09             	cmp    $0x9,%edx
509004:	75 24                	jne    0x50902a
509006:	68 00 ca 9a 3b       	push   $0x3b9aca00
50900b:	57                   	push   %edi
50900c:	e8 1f 38 ff ff       	call   0x4fc830
509011:	83 c4 08             	add    $0x8,%esp
509014:	85 c0                	test   %eax,%eax
509016:	74 3d                	je     0x509055
509018:	53                   	push   %ebx
509019:	57                   	push   %edi
50901a:	e8 71 35 ff ff       	call   0x4fc590
50901f:	83 c4 08             	add    $0x8,%esp
509022:	85 c0                	test   %eax,%eax
509024:	74 2f                	je     0x509055
509026:	33 db                	xor    %ebx,%ebx
509028:	33 d2                	xor    %edx,%edx
50902a:	83 ee 01             	sub    $0x1,%esi
50902d:	79 c1                	jns    0x508ff0
50902f:	57                   	push   %edi
509030:	e8 1b 14 fd ff       	call   0x4da450
509035:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
509039:	83 c4 04             	add    $0x4,%esp
50903c:	89 39                	mov    %edi,(%ecx)
50903e:	83 7f 04 00          	cmpl   $0x0,0x4(%edi)
509042:	74 07                	je     0x50904b
509044:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
509048:	89 4f 0c             	mov    %ecx,0xc(%edi)
50904b:	8b 44 24 10          	mov    0x10(%esp),%eax
50904f:	5f                   	pop    %edi
509050:	5e                   	pop    %esi
509051:	5d                   	pop    %ebp
509052:	5b                   	pop    %ebx
509053:	59                   	pop    %ecx
509054:	c3                   	ret
509055:	8b 4c 24 18          	mov    0x18(%esp),%ecx
509059:	83 39 00             	cmpl   $0x0,(%ecx)
50905c:	75 09                	jne    0x509067
50905e:	57                   	push   %edi
50905f:	e8 bc 0b fd ff       	call   0x4d9c20
509064:	83 c4 04             	add    $0x4,%esp
509067:	5f                   	pop    %edi
509068:	5e                   	pop    %esi
509069:	5d                   	pop    %ebp
50906a:	33 c0                	xor    %eax,%eax
50906c:	5b                   	pop    %ebx
50906d:	59                   	pop    %ecx
50906e:	c3                   	ret
50906f:	cc                   	int3
509070:	b8 14 00 00 00       	mov    $0x14,%eax
509075:	e8 36 87 0c 00       	call   0x5d17b0
50907a:	8b 44 24 1c          	mov    0x1c(%esp),%eax
50907e:	53                   	push   %ebx
50907f:	55                   	push   %ebp
509080:	56                   	push   %esi
509081:	33 db                	xor    %ebx,%ebx
509083:	57                   	push   %edi
509084:	85 c0                	test   %eax,%eax
509086:	0f 84 8a 01 00 00    	je     0x509216
50908c:	8a 08                	mov    (%eax),%cl
50908e:	84 c9                	test   %cl,%cl
509090:	0f 84 80 01 00 00    	je     0x509216
509096:	80 f9 2d             	cmp    $0x2d,%cl
509099:	8d 58 01             	lea    0x1(%eax),%ebx
50909c:	0f 45 d8             	cmovne %eax,%ebx
50909f:	33 c0                	xor    %eax,%eax
5090a1:	80 f9 2d             	cmp    $0x2d,%cl
5090a4:	89 5c 24 1c          	mov    %ebx,0x1c(%esp)
5090a8:	0f 94 c0             	sete   %al
5090ab:	33 f6                	xor    %esi,%esi
5090ad:	89 44 24 18          	mov    %eax,0x18(%esp)
5090b1:	0f be 04 33          	movsbl (%ebx,%esi,1),%eax
5090b5:	6a 10                	push   $0x10
5090b7:	50                   	push   %eax
5090b8:	e8 e3 af fd ff       	call   0x4e40a0
5090bd:	83 c4 08             	add    $0x8,%esp
5090c0:	85 c0                	test   %eax,%eax
5090c2:	74 09                	je     0x5090cd
5090c4:	46                   	inc    %esi
5090c5:	81 fe ff ff ff 1f    	cmp    $0x1fffffff,%esi
5090cb:	7e e4                	jle    0x5090b1
5090cd:	89 74 24 2c          	mov    %esi,0x2c(%esp)
5090d1:	bb 00 00 00 00       	mov    $0x0,%ebx
5090d6:	85 f6                	test   %esi,%esi
5090d8:	0f 84 26 01 00 00    	je     0x509204
5090de:	81 fe ff ff ff 1f    	cmp    $0x1fffffff,%esi
5090e4:	0f 87 1a 01 00 00    	ja     0x509204
5090ea:	8b 7c 24 18          	mov    0x18(%esp),%edi
5090ee:	8b 44 24 28          	mov    0x28(%esp),%eax
5090f2:	8d 2c 37             	lea    (%edi,%esi,1),%ebp
5090f5:	89 6c 24 20          	mov    %ebp,0x20(%esp)
5090f9:	85 c0                	test   %eax,%eax
5090fb:	0f 84 f9 00 00 00    	je     0x5091fa
509101:	8b 18                	mov    (%eax),%ebx
509103:	89 5c 24 10          	mov    %ebx,0x10(%esp)
509107:	85 db                	test   %ebx,%ebx
509109:	75 17                	jne    0x509122
50910b:	e8 d0 0c fd ff       	call   0x4d9de0
509110:	8b d8                	mov    %eax,%ebx
509112:	89 44 24 10          	mov    %eax,0x10(%esp)
509116:	85 db                	test   %ebx,%ebx
509118:	75 13                	jne    0x50912d
50911a:	5f                   	pop    %edi
50911b:	5e                   	pop    %esi
50911c:	5d                   	pop    %ebp
50911d:	5b                   	pop    %ebx
50911e:	83 c4 14             	add    $0x14,%esp
509121:	c3                   	ret
509122:	6a 00                	push   $0x0
509124:	53                   	push   %ebx
509125:	e8 b6 0f fd ff       	call   0x4da0e0
50912a:	83 c4 08             	add    $0x8,%esp
50912d:	8d 04 b5 00 00 00 00 	lea    0x0(,%esi,4),%eax
509134:	3d e0 ff ff 7f       	cmp    $0x7fffffe0,%eax
509139:	0f 8f c5 00 00 00    	jg     0x509204
50913f:	83 c0 1f             	add    $0x1f,%eax
509142:	99                   	cltd
509143:	83 e2 1f             	and    $0x1f,%edx
509146:	03 c2                	add    %edx,%eax
509148:	c1 f8 05             	sar    $0x5,%eax
50914b:	3b 43 08             	cmp    0x8(%ebx),%eax
50914e:	7f 04                	jg     0x509154
509150:	8b c3                	mov    %ebx,%eax
509152:	eb 0a                	jmp    0x50915e
509154:	50                   	push   %eax
509155:	53                   	push   %ebx
509156:	e8 25 13 fd ff       	call   0x4da480
50915b:	83 c4 08             	add    $0x8,%esp
50915e:	85 c0                	test   %eax,%eax
509160:	0f 84 9e 00 00 00    	je     0x509204
509166:	33 c9                	xor    %ecx,%ecx
509168:	89 4c 24 14          	mov    %ecx,0x14(%esp)
50916c:	85 f6                	test   %esi,%esi
50916e:	74 6f                	je     0x5091df
509170:	b8 08 00 00 00       	mov    $0x8,%eax
509175:	83 fe 08             	cmp    $0x8,%esi
509178:	8b de                	mov    %esi,%ebx
50917a:	8b ee                	mov    %esi,%ebp