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
5082be:	33 c5                	xor    %ebp,%eax
5082c0:	89 45 fc             	mov    %eax,-0x4(%ebp)
5082c3:	8b 45 08             	mov    0x8(%ebp),%eax
5082c6:	0f 57 c0             	xorps  %xmm0,%xmm0
5082c9:	0f 11 45 d0          	movups %xmm0,-0x30(%ebp)
5082cd:	56                   	push   %esi
5082ce:	8b 75 0c             	mov    0xc(%ebp),%esi
5082d1:	0f 11 45 e0          	movups %xmm0,-0x20(%ebp)
5082d5:	57                   	push   %edi
5082d6:	0f 10 00             	movups (%eax),%xmm0
5082d9:	8b 7d 10             	mov    0x10(%ebp),%edi
5082dc:	c7 45 f0 00 00 00 00 	movl   $0x0,-0x10(%ebp)
5082e3:	0f 11 45 a0          	movups %xmm0,-0x60(%ebp)
5082e7:	0f 10 40 10          	movups 0x10(%eax),%xmm0
5082eb:	0f 11 45 b0          	movups %xmm0,-0x50(%ebp)
5082ef:	0f 10 40 20          	movups 0x20(%eax),%xmm0
5082f3:	8d 45 a0             	lea    -0x60(%ebp),%eax
5082f6:	50                   	push   %eax
5082f7:	0f 11 45 c0          	movups %xmm0,-0x40(%ebp)
5082fb:	e8 d0 31 ff ff       	call   0x4fb4d0
508300:	8d 45 a0             	lea    -0x60(%ebp),%eax
508303:	50                   	push   %eax
508304:	e8 c7 2d ff ff       	call   0x4fb0d0
508309:	8b 45 a8             	mov    -0x58(%ebp),%eax
50830c:	83 c4 08             	add    $0x8,%esp
50830f:	05 4d f8 ff ff       	add    $0xfffff84d,%eax
508314:	83 f8 42             	cmp    $0x42,%eax
508317:	77 1b                	ja     0x508334
508319:	f2 0f 10 45 c0       	movsd  -0x40(%ebp),%xmm0
50831e:	f2 0f 58 05 f8 9b 6a 	addsd  0x6a9bf8,%xmm0
508325:	00
508326:	f2 0f 2c c0          	cvttsd2si %xmm0,%eax
50832a:	66 0f 6e c0          	movd   %eax,%xmm0
50832e:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
508332:	eb 15                	jmp    0x508349
508334:	0f 28 05 60 c6 6b 00 	movaps 0x6bc660,%xmm0
50833b:	0f 11 45 a8          	movups %xmm0,-0x58(%ebp)
50833f:	c7 45 b8 00 00 00 00 	movl   $0x0,-0x48(%ebp)
508346:	0f 57 c0             	xorps  %xmm0,%xmm0
508349:	8d 45 a0             	lea    -0x60(%ebp),%eax
50834c:	f2 0f 11 45 c0       	movsd  %xmm0,-0x40(%ebp)
508351:	50                   	push   %eax
508352:	c7 45 bc 00 00 00 00 	movl   $0x0,-0x44(%ebp)
508359:	c6 45 c8 00          	movb   $0x0,-0x38(%ebp)
50835d:	e8 2e 2e ff ff       	call   0x4fb190
508362:	83 c4 04             	add    $0x4,%esp
508365:	6a 00                	push   $0x0
508367:	68 e8 03 00 00       	push   $0x3e8
50836c:	ff 75 a4             	push   -0x5c(%ebp)
50836f:	ff 75 a0             	push   -0x60(%ebp)
508372:	e8 c9 97 0d 00       	call   0x5e1b40
508377:	2d 40 69 a3 18       	sub    $0x18a36940,%eax
50837c:	89 45 f4             	mov    %eax,-0xc(%ebp)
50837f:	83 da 31             	sbb    $0x31,%edx
508382:	83 3d 08 19 72 00 00 	cmpl   $0x0,0x721908
508389:	89 55 f8             	mov    %edx,-0x8(%ebp)
50838c:	0f 85 92 00 00 00    	jne    0x508424
508392:	8d 45 f4             	lea    -0xc(%ebp),%eax
508395:	50                   	push   %eax
508396:	8d 45 d0             	lea    -0x30(%ebp),%eax
508399:	50                   	push   %eax
50839a:	e8 5e fb 0e 00       	call   0x5f7efd
50839f:	83 c4 08             	add    $0x8,%esp
5083a2:	85 c0                	test   %eax,%eax
5083a4:	75 7e                	jne    0x508424
5083a6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
5083a9:	66 0f 6e 45 d0       	movd   -0x30(%ebp),%xmm0
5083ae:	05 6c 07 00 00       	add    $0x76c,%eax
5083b3:	89 85 78 ff ff ff    	mov    %eax,-0x88(%ebp)
5083b9:	8b 45 e0             	mov    -0x20(%ebp),%eax
5083bc:	40                   	inc    %eax
5083bd:	c7 45 98 00 00 01 01 	movl   $0x1010000,-0x68(%ebp)
5083c4:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
5083ca:	8b 45 dc             	mov    -0x24(%ebp),%eax
5083cd:	89 45 80             	mov    %eax,-0x80(%ebp)
5083d0:	8b 45 d8             	mov    -0x28(%ebp),%eax
5083d3:	f3 0f e6 c0          	cvtdq2pd %xmm0,%xmm0
5083d7:	89 45 84             	mov    %eax,-0x7c(%ebp)
5083da:	8b 45 d4             	mov    -0x2c(%ebp),%eax
5083dd:	89 45 88             	mov    %eax,-0x78(%ebp)
5083e0:	8d 85 70 ff ff ff    	lea    -0x90(%ebp),%eax
5083e6:	50                   	push   %eax
5083e7:	c6 45 9c 00          	movb   $0x0,-0x64(%ebp)
5083eb:	c6 45 9e 00          	movb   $0x0,-0x62(%ebp)
5083ef:	f2 0f 11 45 90       	movsd  %xmm0,-0x70(%ebp)
5083f4:	e8 97 2d ff ff       	call   0x4fb190
5083f9:	8b 85 70 ff ff ff    	mov    -0x90(%ebp),%eax
5083ff:	83 c4 04             	add    $0x4,%esp
508402:	2b 45 a0             	sub    -0x60(%ebp),%eax
508405:	8b 95 74 ff ff ff    	mov    -0x8c(%ebp),%edx
50840b:	1b 55 a4             	sbb    -0x5c(%ebp),%edx
50840e:	c7 07 00 00 00 00    	movl   $0x0,(%edi)
508414:	5f                   	pop    %edi
508415:	5e                   	pop    %esi
508416:	8b 4d fc             	mov    -0x4(%ebp),%ecx
508419:	33 cd                	xor    %ebp,%ecx
50841b:	e8 ba 90 0d 00       	call   0x5e14da
508420:	8b e5                	mov    %ebp,%esp
508422:	5d                   	pop    %ebp
508423:	c3                   	ret
508424:	6a ff                	push   $0xffffffff
508426:	6a 01                	push   $0x1
508428:	6a ff                	push   $0xffffffff
50842a:	68 d8 78 6b 00       	push   $0x6b78d8
50842f:	ff 36                	push   (%esi)
508431:	c7 46 14 01 00 00 00 	movl   $0x1,0x14(%esi)
508438:	e8 a3 36 04 00       	call   0x54bae0
50843d:	8b 4d fc             	mov    -0x4(%ebp),%ecx
508440:	83 c4 14             	add    $0x14,%esp
508443:	c7 07 01 00 00 00    	movl   $0x1,(%edi)
508449:	33 cd                	xor    %ebp,%ecx
50844b:	33 c0                	xor    %eax,%eax
50844d:	33 d2                	xor    %edx,%edx
50844f:	5f                   	pop    %edi
508450:	5e                   	pop    %esi
508451:	e8 84 90 0d 00       	call   0x5e14da
508456:	8b e5                	mov    %ebp,%esp
508458:	5d                   	pop    %ebp
508459:	c3                   	ret
50845a:	cc                   	int3
50845b:	cc                   	int3
50845c:	cc                   	int3
50845d:	cc                   	int3
50845e:	cc                   	int3
50845f:	cc                   	int3
508460:	55                   	push   %ebp
508461:	8b ec                	mov    %esp,%ebp
508463:	83 ec 18             	sub    $0x18,%esp
508466:	a1 d4 89 72 00       	mov    0x7289d4,%eax
50846b:	33 c5                	xor    %ebp,%eax
50846d:	89 45 fc             	mov    %eax,-0x4(%ebp)
508470:	57                   	push   %edi
508471:	8b 7d 08             	mov    0x8(%ebp),%edi
508474:	ff 37                	push   (%edi)
508476:	e8 75 b1 02 00       	call   0x5335f0
50847b:	83 c4 04             	add    $0x4,%esp
50847e:	85 c0                	test   %eax,%eax
508480:	0f 85 bd 02 00 00    	jne    0x508743
508486:	8b 07                	mov    (%edi),%eax
508488:	8d 4d f8             	lea    -0x8(%ebp),%ecx
50848b:	6a 00                	push   $0x0
50848d:	51                   	push   %ecx
50848e:	6a 01                	push   $0x1
508490:	50                   	push   %eax
508491:	8b 80 cc 00 00 00    	mov    0xcc(%eax),%eax
508497:	ff d0                	call   *%eax
508499:	83 c4 10             	add    $0x10,%esp
50849c:	85 c0                	test   %eax,%eax
50849e:	0f 85 9f 02 00 00    	jne    0x508743
5084a4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
5084a7:	53                   	push   %ebx
5084a8:	8b 59 08             	mov    0x8(%ecx),%ebx
5084ab:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)
5084af:	74 17                	je     0x5084c8
5084b1:	8b 41 04             	mov    0x4(%ecx),%eax
5084b4:	89 43 38             	mov    %eax,0x38(%ebx)
5084b7:	89 4b 48             	mov    %ecx,0x48(%ebx)
5084ba:	89 7b 34             	mov    %edi,0x34(%ebx)
5084bd:	c7 43 04 01 00 00 00 	movl   $0x1,0x4(%ebx)
5084c4:	c6 43 09 64          	movb   $0x64,0x9(%ebx)
5084c8:	8b 53 38             	mov    0x38(%ebx),%edx
5084cb:	8b 07                	mov    (%edi),%eax
5084cd:	56                   	push   %esi
5084ce:	89 55 ec             	mov    %edx,-0x14(%ebp)
5084d1:	8b 4a 1c             	mov    0x1c(%edx),%ecx
5084d4:	8b 70 18             	mov    0x18(%eax),%esi
5084d7:	0f c9                	bswap  %ecx
5084d9:	89 4d f0             	mov    %ecx,-0x10(%ebp)
5084dc:	89 75 e8             	mov    %esi,-0x18(%ebp)
5084df:	85 c9                	test   %ecx,%ecx
5084e1:	74 08                	je     0x5084eb
5084e3:	8b 42 18             	mov    0x18(%edx),%eax
5084e6:	3b 42 5c             	cmp    0x5c(%edx),%eax
5084e9:	74 05                	je     0x5084f0
5084eb:	8b ce                	mov    %esi,%ecx