51f2a2:	83 fe 01             	cmp    $0x1,%esi
51f2a5:	75 09                	jne    0x51f2b0
51f2a7:	52                   	push   %edx
51f2a8:	e8 e3 29 01 00       	call   0x531c90
51f2ad:	83 c4 04             	add    $0x4,%esp
51f2b0:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51f2b3:	46                   	inc    %esi
51f2b4:	3b 71 14             	cmp    0x14(%ecx),%esi
51f2b7:	7c 97                	jl     0x51f250
51f2b9:	5f                   	pop    %edi
51f2ba:	5b                   	pop    %ebx
51f2bb:	5e                   	pop    %esi
51f2bc:	8b e5                	mov    %ebp,%esp
51f2be:	5d                   	pop    %ebp
51f2bf:	c3                   	ret
51f2c0:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
51f2c7:	0f b6 92 20 2a 6b 00 	movzbl 0x6b2a20(%edx),%edx
51f2ce:	2b d1                	sub    %ecx,%edx
51f2d0:	75 de                	jne    0x51f2b0
51f2d2:	40                   	inc    %eax
51f2d3:	eb 9b                	jmp    0x51f270
51f2d5:	cc                   	int3
51f2d6:	cc                   	int3
51f2d7:	cc                   	int3
51f2d8:	cc                   	int3
51f2d9:	cc                   	int3
51f2da:	cc                   	int3
51f2db:	cc                   	int3
51f2dc:	cc                   	int3
51f2dd:	cc                   	int3
51f2de:	cc                   	int3
51f2df:	cc                   	int3
51f2e0:	55                   	push   %ebp
51f2e1:	8b ec                	mov    %esp,%ebp
51f2e3:	8b 55 08             	mov    0x8(%ebp),%edx
51f2e6:	8b 4d 0c             	mov    0xc(%ebp),%ecx
51f2e9:	56                   	push   %esi
51f2ea:	8b 42 74             	mov    0x74(%edx),%eax
51f2ed:	85 c0                	test   %eax,%eax
51f2ef:	0f 45 d0             	cmovne %eax,%edx
51f2f2:	b8 01 00 00 00       	mov    $0x1,%eax
51f2f7:	d3 e0                	shl    %cl,%eax
51f2f9:	8b 72 54             	mov    0x54(%edx),%esi
51f2fc:	85 c6                	test   %eax,%esi
51f2fe:	75 14                	jne    0x51f314
51f300:	0f ab ce             	bts    %ecx,%esi
51f303:	89 72 54             	mov    %esi,0x54(%edx)
51f306:	83 f9 01             	cmp    $0x1,%ecx
51f309:	75 09                	jne    0x51f314
51f30b:	52                   	push   %edx
51f30c:	e8 7f 29 01 00       	call   0x531c90
51f311:	83 c4 04             	add    $0x4,%esp
51f314:	5e                   	pop    %esi
51f315:	5d                   	pop    %ebp
51f316:	c3                   	ret
51f317:	cc                   	int3
51f318:	cc                   	int3
51f319:	cc                   	int3
51f31a:	cc                   	int3
51f31b:	cc                   	int3
51f31c:	cc                   	int3
51f31d:	cc                   	int3
51f31e:	cc                   	int3
51f31f:	cc                   	int3
51f320:	55                   	push   %ebp
51f321:	8b ec                	mov    %esp,%ebp
51f323:	83 ec 08             	sub    $0x8,%esp
51f326:	53                   	push   %ebx
51f327:	56                   	push   %esi
51f328:	8b 75 08             	mov    0x8(%ebp),%esi
51f32b:	bb 02 00 00 00       	mov    $0x2,%ebx
51f330:	57                   	push   %edi
51f331:	8b fb                	mov    %ebx,%edi
51f333:	39 5e 14             	cmp    %ebx,0x14(%esi)
51f336:	7e 5c                	jle    0x51f394
51f338:	b8 20 00 00 00       	mov    $0x20,%eax
51f33d:	8b c8                	mov    %eax,%ecx
51f33f:	89 45 08             	mov    %eax,0x8(%ebp)
51f342:	89 4d fc             	mov    %ecx,-0x4(%ebp)
51f345:	8b 56 10             	mov    0x10(%esi),%edx
51f348:	89 55 f8             	mov    %edx,-0x8(%ebp)
51f34b:	83 7c 11 04 00       	cmpl   $0x0,0x4(%ecx,%edx,1)
51f350:	75 23                	jne    0x51f375
51f352:	8b 04 11             	mov    (%ecx,%edx,1),%eax
51f355:	85 c0                	test   %eax,%eax
51f357:	74 10                	je     0x51f369
51f359:	50                   	push   %eax
51f35a:	56                   	push   %esi
51f35b:	e8 10 20 00 00       	call   0x521370
51f360:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51f363:	83 c4 08             	add    $0x8,%esp
51f366:	8b 55 f8             	mov    -0x8(%ebp),%edx
51f369:	8b 45 08             	mov    0x8(%ebp),%eax
51f36c:	c7 04 11 00 00 00 00 	movl   $0x0,(%ecx,%edx,1)
51f373:	eb 13                	jmp    0x51f388
51f375:	3b df                	cmp    %edi,%ebx
51f377:	7d 08                	jge    0x51f381
51f379:	0f 10 04 11          	movups (%ecx,%edx,1),%xmm0
51f37d:	0f 11 04 10          	movups %xmm0,(%eax,%edx,1)
51f381:	43                   	inc    %ebx
51f382:	83 c0 10             	add    $0x10,%eax
51f385:	89 45 08             	mov    %eax,0x8(%ebp)
51f388:	47                   	inc    %edi
51f389:	83 c1 10             	add    $0x10,%ecx
51f38c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
51f38f:	3b 7e 14             	cmp    0x14(%esi),%edi
51f392:	7c b1                	jl     0x51f345
51f394:	89 5e 14             	mov    %ebx,0x14(%esi)
51f397:	83 fb 02             	cmp    $0x2,%ebx
51f39a:	7f 2c                	jg     0x51f3c8
51f39c:	8b 46 10             	mov    0x10(%esi),%eax
51f39f:	8d be b4 01 00 00    	lea    0x1b4(%esi),%edi
51f3a5:	3b c7                	cmp    %edi,%eax
51f3a7:	74 1f                	je     0x51f3c8
51f3a9:	0f 10 00             	movups (%eax),%xmm0
51f3ac:	0f 11 07             	movups %xmm0,(%edi)
51f3af:	0f 10 40 10          	movups 0x10(%eax),%xmm0
51f3b3:	0f 11 47 10          	movups %xmm0,0x10(%edi)
51f3b7:	85 c0                	test   %eax,%eax
51f3b9:	74 0a                	je     0x51f3c5
51f3bb:	50                   	push   %eax
51f3bc:	56                   	push   %esi
51f3bd:	e8 ae 1f 00 00       	call   0x521370
51f3c2:	83 c4 08             	add    $0x8,%esp
51f3c5:	89 7e 10             	mov    %edi,0x10(%esi)
51f3c8:	5f                   	pop    %edi
51f3c9:	5e                   	pop    %esi
51f3ca:	5b                   	pop    %ebx
51f3cb:	8b e5                	mov    %ebp,%esp
51f3cd:	5d                   	pop    %ebp
51f3ce:	c3                   	ret
51f3cf:	cc                   	int3
51f3d0:	55                   	push   %ebp
51f3d1:	8b ec                	mov    %esp,%ebp
51f3d3:	83 ec 08             	sub    $0x8,%esp
51f3d6:	a1 d4 89 72 00       	mov    0x7289d4,%eax
51f3db:	33 c5                	xor    %ebp,%eax
51f3dd:	89 45 fc             	mov    %eax,-0x4(%ebp)
51f3e0:	53                   	push   %ebx
51f3e1:	8b 5d 0c             	mov    0xc(%ebp),%ebx
51f3e4:	56                   	push   %esi
51f3e5:	8b 75 08             	mov    0x8(%ebp),%esi
51f3e8:	57                   	push   %edi
51f3e9:	83 7b 0c 00          	cmpl   $0x0,0xc(%ebx)
51f3ed:	8b 7d 10             	mov    0x10(%ebp),%edi
51f3f0:	75 62                	jne    0x51f454
51f3f2:	8b 43 04             	mov    0x4(%ebx),%eax
51f3f5:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
51f3f8:	8d 04 88             	lea    (%eax,%ecx,4),%eax
51f3fb:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
51f402:	8b 50 04             	mov    0x4(%eax),%edx
51f405:	85 d2                	test   %edx,%edx
51f407:	74 4b                	je     0x51f454
51f409:	0f b6 40 0d          	movzbl 0xd(%eax),%eax
51f40d:	8d 4d f8             	lea    -0x8(%ebp),%ecx
51f410:	6a 00                	push   $0x0
51f412:	51                   	push   %ecx
51f413:	8b 0e                	mov    (%esi),%ecx
51f415:	50                   	push   %eax
51f416:	0f b6 41 4e          	movzbl 0x4e(%ecx),%eax
51f41a:	50                   	push   %eax
51f41b:	52                   	push   %edx
51f41c:	51                   	push   %ecx
51f41d:	e8 7e a3 03 00       	call   0x5597a0
51f422:	8b 55 f8             	mov    -0x8(%ebp),%edx
51f425:	83 c4 18             	add    $0x18,%esp
51f428:	85 d2                	test   %edx,%edx
51f42a:	74 28                	je     0x51f454
51f42c:	8b 06                	mov    (%esi),%eax
51f42e:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
51f432:	74 0e                	je     0x51f442
51f434:	52                   	push   %edx
51f435:	6a f5                	push   $0xfffffff5
51f437:	50                   	push   %eax
51f438:	e8 73 48 fe ff       	call   0x503cb0
51f43d:	83 c4 0c             	add    $0xc,%esp
51f440:	eb 12                	jmp    0x51f454
51f442:	8b 46 6c             	mov    0x6c(%esi),%eax
51f445:	8d 0c 80             	lea    (%eax,%eax,4),%ecx
51f448:	8b 46 68             	mov    0x68(%esi),%eax
51f44b:	c6 44 88 ed f5       	movb   $0xf5,-0x13(%eax,%ecx,4)
51f450:	89 54 88 fc          	mov    %edx,-0x4(%eax,%ecx,4)
51f454:	8b 43 04             	mov    0x4(%ebx),%eax
51f457:	8d 0c bf             	lea    (%edi,%edi,4),%ecx
51f45a:	80 7c 88 0d 45       	cmpb   $0x45,0xd(%eax,%ecx,4)
51f45f:	75 5e                	jne    0x51f4bf
51f461:	8b 4e 6c             	mov    0x6c(%esi),%ecx
51f464:	39 4e 70             	cmp    %ecx,0x70(%esi)
51f467:	7f 23                	jg     0x51f48c
51f469:	6a 00                	push   $0x0
51f46b:	6a 00                	push   $0x0
51f46d:	ff 75 14             	push   0x14(%ebp)
51f470:	6a 53                	push   $0x53
51f472:	56                   	push   %esi
51f473:	e8 88 70 fe ff       	call   0x506500
51f478:	83 c4 14             	add    $0x14,%esp
51f47b:	5f                   	pop    %edi
51f47c:	5e                   	pop    %esi
51f47d:	5b                   	pop    %ebx
51f47e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51f481:	33 cd                	xor    %ebp,%ecx
51f483:	e8 52 20 0c 00       	call   0x5e14da
51f488:	8b e5                	mov    %ebp,%esp
51f48a:	5d                   	pop    %ebp
51f48b:	c3                   	ret
51f48c:	8d 41 01             	lea    0x1(%ecx),%eax
51f48f:	89 46 6c             	mov    %eax,0x6c(%esi)
51f492:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
51f495:	8b 46 68             	mov    0x68(%esi),%eax
51f498:	c7 04 88 53 00 00 00 	movl   $0x53,(%eax,%ecx,4)
51f49f:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
51f4a6:	00
51f4a7:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
51f4ae:	00
51f4af:	8d 0c 88             	lea    (%eax,%ecx,4),%ecx
51f4b2:	8b 45 14             	mov    0x14(%ebp),%eax
51f4b5:	c7 41 10 00 00 00 00 	movl   $0x0,0x10(%ecx)
51f4bc:	89 41 04             	mov    %eax,0x4(%ecx)
51f4bf:	8b 4d fc             	mov    -0x4(%ebp),%ecx
51f4c2:	5f                   	pop    %edi
51f4c3:	5e                   	pop    %esi
51f4c4:	33 cd                	xor    %ebp,%ecx
51f4c6:	5b                   	pop    %ebx
51f4c7:	e8 0e 20 0c 00       	call   0x5e14da
51f4cc:	8b e5                	mov    %ebp,%esp
51f4ce:	5d                   	pop    %ebp
51f4cf:	c3                   	ret
51f4d0:	55                   	push   %ebp
51f4d1:	8b ec                	mov    %esp,%ebp
51f4d3:	8b 45 08             	mov    0x8(%ebp),%eax
51f4d6:	f6 40 10 04          	testb  $0x4,0x10(%eax)
51f4da:	75 05                	jne    0x51f4e1
51f4dc:	8b 45 0c             	mov    0xc(%ebp),%eax
51f4df:	5d                   	pop    %ebp
51f4e0:	c3                   	ret
51f4e1:	8b 10                	mov    (%eax),%edx
51f4e3:	8b c2                	mov    %edx,%eax
51f4e5:	56                   	push   %esi
51f4e6:	8d 70 01             	lea    0x1(%eax),%esi
51f4e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
51f4f0:	8a 08                	mov    (%eax),%cl
51f4f2:	40                   	inc    %eax
51f4f3:	84 c9                	test   %cl,%cl
51f4f5:	75 f9                	jne    0x51f4f0
51f4f7:	2b c6                	sub    %esi,%eax
51f4f9:	40                   	inc    %eax
51f4fa:	03 c2                	add    %edx,%eax
51f4fc:	5e                   	pop    %esi
51f4fd:	5d                   	pop    %ebp
51f4fe:	c3                   	ret
51f4ff:	cc                   	int3
51f500:	55                   	push   %ebp
51f501:	8b ec                	mov    %esp,%ebp
51f503:	83 ec 34             	sub    $0x34,%esp
51f506:	a1 d4 89 72 00       	mov    0x7289d4,%eax
51f50b:	33 c5                	xor    %ebp,%eax
51f50d:	89 45 fc             	mov    %eax,-0x4(%ebp)
51f510:	8b 45 08             	mov    0x8(%ebp),%eax
51f513:	8b 4d 10             	mov    0x10(%ebp),%ecx
51f516:	53                   	push   %ebx
51f517:	56                   	push   %esi
51f518:	8b 18                	mov    (%eax),%ebx
51f51a:	57                   	push   %edi
51f51b:	8b 7d 0c             	mov    0xc(%ebp),%edi
51f51e:	89 4d dc             	mov    %ecx,-0x24(%ebp)
51f521:	8b 4d 14             	mov    0x14(%ebp),%ecx
51f524:	89 4d e0             	mov    %ecx,-0x20(%ebp)
51f527:	c7 45 d4 00 00 00 00 	movl   $0x0,-0x2c(%ebp)
51f52e:	c7 45 d0 00 00 00 00 	movl   $0x0,-0x30(%ebp)
51f535:	c7 45 cc 00 00 00 00 	movl   $0x0,-0x34(%ebp)
51f53c:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
51f543:	85 ff                	test   %edi,%edi
51f545:	74 4d                	je     0x51f594
51f547:	8b 07                	mov    (%edi),%eax
51f549:	6a 00                	push   $0x0
51f54b:	89 45 ec             	mov    %eax,-0x14(%ebp)
51f54e:	8d 34 80             	lea    (%eax,%eax,4),%esi
51f551:	c1 e6 02             	shl    $0x2,%esi
51f554:	56                   	push   %esi
51f555:	85 db                	test   %ebx,%ebx
51f557:	74 0b                	je     0x51f564
51f559:	53                   	push   %ebx
51f55a:	e8 81 1e 00 00       	call   0x5213e0
51f55f:	83 c4 0c             	add    $0xc,%esp
51f562:	eb 08                	jmp    0x51f56c
51f564:	e8 f7 19 01 00       	call   0x530f60
51f569:	83 c4 08             	add    $0x8,%esp
51f56c:	89 45 f0             	mov    %eax,-0x10(%ebp)
51f56f:	85 c0                	test   %eax,%eax
51f571:	74 0f                	je     0x51f582
51f573:	56                   	push   %esi
51f574:	6a 00                	push   $0x0
51f576:	50                   	push   %eax
51f577:	e8 84 44 0c 00       	call   0x5e3a00
51f57c:	8b 45 f0             	mov    -0x10(%ebp),%eax
51f57f:	83 c4 0c             	add    $0xc,%esp
51f582:	8b 4d ec             	mov    -0x14(%ebp),%ecx
51f585:	81 f9 ff 7f 00 00    	cmp    $0x7fff,%ecx
51f58b:	7e 11                	jle    0x51f59e
51f58d:	b9 ff 7f 00 00       	mov    $0x7fff,%ecx
51f592:	eb 07                	jmp    0x51f59b
51f594:	33 c9                	xor    %ecx,%ecx
51f596:	33 c0                	xor    %eax,%eax
51f598:	89 45 f0             	mov    %eax,-0x10(%ebp)
51f59b:	89 4d ec             	mov    %ecx,-0x14(%ebp)
51f59e:	8b 55 dc             	mov    -0x24(%ebp),%edx
51f5a1:	33 f6                	xor    %esi,%esi
51f5a3:	89 75 f4             	mov    %esi,-0xc(%ebp)
51f5a6:	89 45 e4             	mov    %eax,-0x1c(%ebp)
51f5a9:	66 89 0a             	mov    %cx,(%edx)
51f5ac:	8b 55 e0             	mov    -0x20(%ebp),%edx
51f5af:	89 02                	mov    %eax,(%edx)
51f5b1:	85 c9                	test   %ecx,%ecx
51f5b3:	0f 8e 12 02 00 00    	jle    0x51f7cb
51f5b9:	8d 47 08             	lea    0x8(%edi),%eax
51f5bc:	89 45 e8             	mov    %eax,-0x18(%ebp)
51f5bf:	90                   	nop
51f5c0:	80 7b 51 00          	cmpb   $0x0,0x51(%ebx)
51f5c4:	0f 85 01 02 00 00    	jne    0x51f7cb
51f5ca:	8b 30                	mov    (%eax),%esi
51f5cc:	85 f6                	test   %esi,%esi
51f5ce:	74 06                	je     0x51f5d6
51f5d0:	f6 40 08 03          	testb  $0x3,0x8(%eax)
51f5d4:	74 6d                	je     0x51f643
51f5d6:	8b 40 fc             	mov    -0x4(%eax),%eax
51f5d9:	85 c0                	test   %eax,%eax
51f5db:	74 25                	je     0x51f602
51f5dd:	0f 1f 00             	nopl   (%eax)
51f5e0:	8b 48 04             	mov    0x4(%eax),%ecx
51f5e3:	f7 c1 00 10 04 00    	test   $0x41000,%ecx
51f5e9:	74 17                	je     0x51f602
51f5eb:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
51f5f1:	74 08                	je     0x51f5fb
51f5f3:	8b 40 14             	mov    0x14(%eax),%eax
51f5f6:	8b 40 04             	mov    0x4(%eax),%eax
51f5f9:	eb 03                	jmp    0x51f5fe
51f5fb:	8b 40 0c             	mov    0xc(%eax),%eax
51f5fe:	85 c0                	test   %eax,%eax
51f600:	75 de                	jne    0x51f5e0
51f602:	80 38 8b             	cmpb   $0x8b,(%eax)
51f605:	75 08                	jne    0x51f60f
51f607:	8b 40 10             	mov    0x10(%eax),%eax
51f60a:	80 38 8b             	cmpb   $0x8b,(%eax)
51f60d:	74 f8                	je     0x51f607
51f60f:	8a 08                	mov    (%eax),%cl
51f611:	80 f9 a4             	cmp    $0xa4,%cl
51f614:	75 25                	jne    0x51f63b
51f616:	0f bf 48 20          	movswl 0x20(%eax),%ecx
51f61a:	8b 40 2c             	mov    0x2c(%eax),%eax
51f61d:	85 c9                	test   %ecx,%ecx