507f7f:	83 c4 10             	add    $0x10,%esp
507f82:	fe 49 ff             	decb   -0x1(%ecx)
507f85:	85 c0                	test   %eax,%eax
507f87:	7e 20                	jle    0x507fa9
507f89:	8b 4d e0             	mov    -0x20(%ebp),%ecx
507f8c:	51                   	push   %ecx
507f8d:	ff 75 f4             	push   -0xc(%ebp)
507f90:	e8 1b e8 01 00       	call   0x5267b0
507f95:	ff 75 f0             	push   -0x10(%ebp)
507f98:	e8 33 ab fd ff       	call   0x4e2ad0
507f9d:	83 c4 0c             	add    $0xc,%esp
507fa0:	33 c0                	xor    %eax,%eax
507fa2:	5f                   	pop    %edi
507fa3:	5e                   	pop    %esi
507fa4:	5b                   	pop    %ebx
507fa5:	8b e5                	mov    %ebp,%esp
507fa7:	5d                   	pop    %ebp
507fa8:	c3                   	ret
507fa9:	81 7d dc 99 00 00 00 	cmpl   $0x99,-0x24(%ebp)
507fb0:	8b 45 10             	mov    0x10(%ebp),%eax
507fb3:	8b 4d e0             	mov    -0x20(%ebp),%ecx
507fb6:	89 08                	mov    %ecx,(%eax)
507fb8:	75 5b                	jne    0x508015
507fba:	8b 45 08             	mov    0x8(%ebp),%eax
507fbd:	8b 48 08             	mov    0x8(%eax),%ecx
507fc0:	0f bf 47 20          	movswl 0x20(%edi),%eax
507fc4:	50                   	push   %eax
507fc5:	51                   	push   %ecx
507fc6:	89 4d dc             	mov    %ecx,-0x24(%ebp)
507fc9:	e8 52 51 04 00       	call   0x54d120
507fce:	8b 45 14             	mov    0x14(%ebp),%eax
507fd1:	83 c4 08             	add    $0x8,%esp
507fd4:	83 38 00             	cmpl   $0x0,(%eax)
507fd7:	74 3c                	je     0x508015
507fd9:	8b 47 08             	mov    0x8(%edi),%eax
507fdc:	80 78 01 00          	cmpb   $0x0,0x1(%eax)
507fe0:	74 33                	je     0x508015
507fe2:	8b 55 08             	mov    0x8(%ebp),%edx
507fe5:	52                   	push   %edx
507fe6:	e8 95 4f 02 00       	call   0x52cf80
507feb:	8b f0                	mov    %eax,%esi
507fed:	56                   	push   %esi
507fee:	57                   	push   %edi
507fef:	52                   	push   %edx
507ff0:	e8 5b d2 01 00       	call   0x525250
507ff5:	8b 45 dc             	mov    -0x24(%ebp),%eax
507ff8:	6a 00                	push   $0x0
507ffa:	8b 48 6c             	mov    0x6c(%eax),%ecx
507ffd:	49                   	dec    %ecx
507ffe:	51                   	push   %ecx
507fff:	50                   	push   %eax
508000:	e8 6b 9f 03 00       	call   0x541f70
508005:	56                   	push   %esi
508006:	ff 75 08             	push   0x8(%ebp)
508009:	e8 82 fd 02 00       	call   0x537d90
50800e:	83 c4 24             	add    $0x24,%esp
508011:	eb 02                	jmp    0x508015
508013:	33 db                	xor    %ebx,%ebx
508015:	33 c0                	xor    %eax,%eax
508017:	85 db                	test   %ebx,%ebx
508019:	8b 5d f0             	mov    -0x10(%ebp),%ebx
50801c:	0f 95 c0             	setne  %al
50801f:	89 45 08             	mov    %eax,0x8(%ebp)
508022:	85 db                	test   %ebx,%ebx
508024:	74 29                	je     0x50804f
508026:	b8 00 24 00 00       	mov    $0x2400,%eax
50802b:	66 85 43 08          	test   %ax,0x8(%ebx)
50802f:	75 06                	jne    0x508037
508031:	83 7b 18 00          	cmpl   $0x0,0x18(%ebx)
508035:	74 09                	je     0x508040
508037:	53                   	push   %ebx
508038:	e8 d3 2d 05 00       	call   0x55ae10
50803d:	83 c4 04             	add    $0x4,%esp
508040:	53                   	push   %ebx
508041:	ff 73 20             	push   0x20(%ebx)
508044:	e8 27 93 01 00       	call   0x521370
508049:	8b 45 08             	mov    0x8(%ebp),%eax
50804c:	83 c4 08             	add    $0x8,%esp
50804f:	5f                   	pop    %edi
508050:	5e                   	pop    %esi
508051:	5b                   	pop    %ebx
508052:	8b e5                	mov    %ebp,%esp
508054:	5d                   	pop    %ebp
508055:	c3                   	ret
508056:	cc                   	int3
508057:	cc                   	int3
508058:	cc                   	int3
508059:	cc                   	int3
50805a:	cc                   	int3
50805b:	cc                   	int3
50805c:	cc                   	int3
50805d:	cc                   	int3
50805e:	cc                   	int3
50805f:	cc                   	int3
508060:	55                   	push   %ebp
508061:	8b ec                	mov    %esp,%ebp
508063:	53                   	push   %ebx
508064:	56                   	push   %esi
508065:	8b 75 08             	mov    0x8(%ebp),%esi
508068:	57                   	push   %edi
508069:	8b 7d 0c             	mov    0xc(%ebp),%edi
50806c:	83 c6 08             	add    $0x8,%esi
50806f:	3b f7                	cmp    %edi,%esi
508071:	0f 83 87 00 00 00    	jae    0x5080fe
508077:	8b 5e 14             	mov    0x14(%esi),%ebx
50807a:	85 db                	test   %ebx,%ebx
50807c:	74 75                	je     0x5080f3
50807e:	f6 46 28 10          	testb  $0x10,0x28(%esi)
508082:	75 6f                	jne    0x5080f3
508084:	8b 4e 08             	mov    0x8(%esi),%ecx
508087:	85 c9                	test   %ecx,%ecx
508089:	74 68                	je     0x5080f3
50808b:	8b 46 10             	mov    0x10(%esi),%eax
50808e:	8b 50 48             	mov    0x48(%eax),%edx
508091:	8b 47 10             	mov    0x10(%edi),%eax
508094:	89 55 08             	mov    %edx,0x8(%ebp)
508097:	3b 50 48             	cmp    0x48(%eax),%edx
50809a:	75 57                	jne    0x5080f3
50809c:	8b 47 08             	mov    0x8(%edi),%eax
50809f:	85 c0                	test   %eax,%eax
5080a1:	74 50                	je     0x5080f3
5080a3:	50                   	push   %eax
5080a4:	51                   	push   %ecx
5080a5:	e8 86 5b 03 00       	call   0x53dc30
5080aa:	83 c4 08             	add    $0x8,%esp
5080ad:	85 c0                	test   %eax,%eax
5080af:	75 42                	jne    0x5080f3
5080b1:	39 45 08             	cmp    %eax,0x8(%ebp)
5080b4:	75 0b                	jne    0x5080c1
5080b6:	8b 47 14             	mov    0x14(%edi),%eax
5080b9:	8b 40 10             	mov    0x10(%eax),%eax
5080bc:	3b 43 10             	cmp    0x10(%ebx),%eax
5080bf:	75 32                	jne    0x5080f3
5080c1:	8b 47 14             	mov    0x14(%edi),%eax
5080c4:	6a ff                	push   $0xffffffff
5080c6:	ff 73 24             	push   0x24(%ebx)
5080c9:	ff 70 24             	push   0x24(%eax)
5080cc:	6a 00                	push   $0x0
5080ce:	e8 fd e3 01 00       	call   0x5264d0
5080d3:	83 c4 10             	add    $0x10,%esp
5080d6:	85 c0                	test   %eax,%eax
5080d8:	75 19                	jne    0x5080f3
5080da:	8b 47 14             	mov    0x14(%edi),%eax
5080dd:	6a ff                	push   $0xffffffff
5080df:	ff 73 2c             	push   0x2c(%ebx)
5080e2:	ff 70 2c             	push   0x2c(%eax)
5080e5:	6a 00                	push   $0x0
5080e7:	e8 e4 e3 01 00       	call   0x5264d0
5080ec:	83 c4 10             	add    $0x10,%esp
5080ef:	85 c0                	test   %eax,%eax
5080f1:	74 12                	je     0x508105
5080f3:	83 c6 48             	add    $0x48,%esi
5080f6:	3b f7                	cmp    %edi,%esi
5080f8:	0f 82 79 ff ff ff    	jb     0x508077
5080fe:	5f                   	pop    %edi
5080ff:	5e                   	pop    %esi
508100:	33 c0                	xor    %eax,%eax
508102:	5b                   	pop    %ebx
508103:	5d                   	pop    %ebp
508104:	c3                   	ret
508105:	5f                   	pop    %edi
508106:	8b c6                	mov    %esi,%eax
508108:	5e                   	pop    %esi
508109:	5b                   	pop    %ebx
50810a:	5d                   	pop    %ebp
50810b:	c3                   	ret
50810c:	cc                   	int3
50810d:	cc                   	int3
50810e:	cc                   	int3
50810f:	cc                   	int3
508110:	55                   	push   %ebp
508111:	8b ec                	mov    %esp,%ebp
508113:	83 ec 08             	sub    $0x8,%esp
508116:	56                   	push   %esi
508117:	8b 75 08             	mov    0x8(%ebp),%esi
50811a:	0f 57 c0             	xorps  %xmm0,%xmm0
50811d:	66 0f 13 45 f8       	movlpd %xmm0,-0x8(%ebp)
508122:	8b 4e 48             	mov    0x48(%esi),%ecx
508125:	8b c1                	mov    %ecx,%eax
508127:	8b 56 4c             	mov    0x4c(%esi),%edx
50812a:	0b c2                	or     %edx,%eax
50812c:	74 2b                	je     0x508159
50812e:	8b b6 94 00 00 00    	mov    0x94(%esi),%esi
508134:	83 e9 01             	sub    $0x1,%ecx
508137:	6a 00                	push   $0x0
508139:	56                   	push   %esi
50813a:	83 da 00             	sbb    $0x0,%edx
50813d:	52                   	push   %edx
50813e:	51                   	push   %ecx
50813f:	e8 fc 99 0d 00       	call   0x5e1b40
508144:	83 c0 01             	add    $0x1,%eax
508147:	6a 00                	push   $0x0
508149:	56                   	push   %esi
50814a:	83 d2 00             	adc    $0x0,%edx
50814d:	52                   	push   %edx
50814e:	50                   	push   %eax
50814f:	e8 ac 99 0d 00       	call   0x5e1b00
508154:	5e                   	pop    %esi
508155:	8b e5                	mov    %ebp,%esp
508157:	5d                   	pop    %ebp
508158:	c3                   	ret
508159:	8b 45 f8             	mov    -0x8(%ebp),%eax
50815c:	8b 55 fc             	mov    -0x4(%ebp),%edx
50815f:	5e                   	pop    %esi
508160:	8b e5                	mov    %ebp,%esp
508162:	5d                   	pop    %ebp
508163:	c3                   	ret
508164:	cc                   	int3
508165:	cc                   	int3
508166:	cc                   	int3
508167:	cc                   	int3
508168:	cc                   	int3
508169:	cc                   	int3
50816a:	cc                   	int3
50816b:	cc                   	int3
50816c:	cc                   	int3
50816d:	cc                   	int3
50816e:	cc                   	int3
50816f:	cc                   	int3
508170:	55                   	push   %ebp
508171:	8b ec                	mov    %esp,%ebp
508173:	56                   	push   %esi
508174:	8b 75 0c             	mov    0xc(%ebp),%esi
508177:	83 fe 02             	cmp    $0x2,%esi
50817a:	0f 8c 99 00 00 00    	jl     0x508219
508180:	53                   	push   %ebx
508181:	8b 5d 08             	mov    0x8(%ebp),%ebx
508184:	57                   	push   %edi
508185:	0f b6 44 33 ff       	movzbl -0x1(%ebx,%esi,1),%eax
50818a:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
508191:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
508194:	0f b6 03             	movzbl (%ebx),%eax
508197:	0f b6 80 20 2a 6b 00 	movzbl 0x6b2a20(%eax),%eax
50819e:	c1 e0 02             	shl    $0x2,%eax
5081a1:	33 c1                	xor    %ecx,%eax
5081a3:	b9 7f 00 00 00       	mov    $0x7f,%ecx
5081a8:	33 c6                	xor    %esi,%eax
5081aa:	99                   	cltd
5081ab:	f7 f9                	idiv   %ecx
5081ad:	0f b6 ba 48 64 6b 00 	movzbl 0x6b6448(%edx),%edi
5081b4:	83 ef 01             	sub    $0x1,%edi
5081b7:	78 43                	js     0x5081fc
5081b9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5081c0:	0f b6 87 60 65 6b 00 	movzbl 0x6b6560(%edi),%eax
5081c7:	3b c6                	cmp    %esi,%eax
5081c9:	75 3b                	jne    0x508206
5081cb:	0f b7 04 7d f8 65 6b 	movzwl 0x6b65f8(,%edi,2),%eax
5081d2:	00
5081d3:	33 d2                	xor    %edx,%edx
5081d5:	05 68 23 6b 00       	add    $0x6b2368,%eax
5081da:	85 f6                	test   %esi,%esi
5081dc:	7e 12                	jle    0x5081f0
5081de:	2b d8                	sub    %eax,%ebx
5081e0:	8a 0c 03             	mov    (%ebx,%eax,1),%cl
5081e3:	80 e1 df             	and    $0xdf,%cl
5081e6:	3a 08                	cmp    (%eax),%cl
5081e8:	75 19                	jne    0x508203
5081ea:	42                   	inc    %edx
5081eb:	40                   	inc    %eax
5081ec:	3b d6                	cmp    %esi,%edx
5081ee:	7c f0                	jl     0x5081e0
5081f0:	8b 4d 10             	mov    0x10(%ebp),%ecx
5081f3:	0f b6 97 20 67 6b 00 	movzbl 0x6b6720(%edi),%edx
5081fa:	89 11                	mov    %edx,(%ecx)
5081fc:	5f                   	pop    %edi
5081fd:	5b                   	pop    %ebx
5081fe:	8b c6                	mov    %esi,%eax
508200:	5e                   	pop    %esi
508201:	5d                   	pop    %ebp
508202:	c3                   	ret
508203:	8b 5d 08             	mov    0x8(%ebp),%ebx
508206:	0f b6 bf c8 64 6b 00 	movzbl 0x6b64c8(%edi),%edi
50820d:	83 ef 01             	sub    $0x1,%edi
508210:	79 ae                	jns    0x5081c0
508212:	5f                   	pop    %edi
508213:	5b                   	pop    %ebx
508214:	8b c6                	mov    %esi,%eax
508216:	5e                   	pop    %esi
508217:	5d                   	pop    %ebp
508218:	c3                   	ret
508219:	8b c6                	mov    %esi,%eax
50821b:	5e                   	pop    %esi
50821c:	5d                   	pop    %ebp
50821d:	c3                   	ret
50821e:	cc                   	int3
50821f:	cc                   	int3
508220:	55                   	push   %ebp
508221:	8b ec                	mov    %esp,%ebp
508223:	8b 4d 08             	mov    0x8(%ebp),%ecx
508226:	8b 51 08             	mov    0x8(%ecx),%edx
508229:	85 d2                	test   %edx,%edx
50822b:	75 20                	jne    0x50824d
50822d:	39 51 74             	cmp    %edx,0x74(%ecx)
508230:	75 0c                	jne    0x50823e
508232:	8b 01                	mov    (%ecx),%eax
508234:	f6 40 4c 08          	testb  $0x8,0x4c(%eax)
508238:	75 04                	jne    0x50823e
50823a:	c6 41 17 01          	movb   $0x1,0x17(%ecx)
50823e:	51                   	push   %ecx
50823f:	e8 cc a1 03 00       	call   0x542410
508244:	8b d0                	mov    %eax,%edx
508246:	83 c4 04             	add    $0x4,%esp
508249:	85 d2                	test   %edx,%edx
50824b:	74 52                	je     0x50829f
50824d:	8b 4a 6c             	mov    0x6c(%edx),%ecx
508250:	39 4a 70             	cmp    %ecx,0x70(%edx)
508253:	7f 17                	jg     0x50826c
508255:	6a 00                	push   $0x0
508257:	6a 00                	push   $0x0
508259:	ff 75 0c             	push   0xc(%ebp)
50825c:	68 8e 00 00 00       	push   $0x8e
508261:	52                   	push   %edx
508262:	e8 99 e2 ff ff       	call   0x506500
508267:	83 c4 14             	add    $0x14,%esp
50826a:	5d                   	pop    %ebp
50826b:	c3                   	ret
50826c:	8d 41 01             	lea    0x1(%ecx),%eax
50826f:	89 42 6c             	mov    %eax,0x6c(%edx)
508272:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
508275:	8b 42 68             	mov    0x68(%edx),%eax
508278:	c7 04 88 8e 00 00 00 	movl   $0x8e,(%eax,%ecx,4)
50827f:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
508286:	00
508287:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
50828e:	00
50828f:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
508292:	8b 45 0c             	mov    0xc(%ebp),%eax
508295:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
50829c:	89 41 04             	mov    %eax,0x4(%ecx)
50829f:	5d                   	pop    %ebp
5082a0:	c3                   	ret
5082a1:	cc                   	int3
5082a2:	cc                   	int3
5082a3:	cc                   	int3
5082a4:	cc                   	int3
5082a5:	cc                   	int3
5082a6:	cc                   	int3
5082a7:	cc                   	int3
5082a8:	cc                   	int3
5082a9:	cc                   	int3
5082aa:	cc                   	int3
5082ab:	cc                   	int3
5082ac:	cc                   	int3
5082ad:	cc                   	int3
5082ae:	cc                   	int3
5082af:	cc                   	int3
5082b0:	55                   	push   %ebp
5082b1:	8b ec                	mov    %esp,%ebp
5082b3:	81 ec 90 00 00 00    	sub    $0x90,%esp
5082b9:	a1 d4 89 72 00       	mov    0x7289d4,%eax