53f2dc:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
53f2e3:	33 c9                	xor    %ecx,%ecx
53f2e5:	66 0f d6 45 ec       	movq   %xmm0,-0x14(%ebp)
53f2ea:	50                   	push   %eax
53f2eb:	8d 45 dc             	lea    -0x24(%ebp),%eax
53f2ee:	66 89 4d f0          	mov    %cx,-0x10(%ebp)
53f2f2:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
53f2f5:	0f 11 45 dc          	movups %xmm0,-0x24(%ebp)
53f2f9:	50                   	push   %eax
53f2fa:	c7 45 e0 90 80 4f 00 	movl   $0x4f8090,-0x20(%ebp)
53f301:	89 4d f4             	mov    %ecx,-0xc(%ebp)
53f304:	e8 a7 0c 02 00       	call   0x55ffb0
53f309:	66 8b 4d f0          	mov    -0x10(%ebp),%cx
53f30d:	83 c4 08             	add    $0x8,%esp
53f310:	80 7d 97 00          	cmpb   $0x0,-0x69(%ebp)
53f314:	75 08                	jne    0x53f31e
53f316:	b8 fd ff 00 00       	mov    $0xfffd,%eax
53f31b:	66 23 c8             	and    %ax,%cx
53f31e:	33 c0                	xor    %eax,%eax
53f320:	66 85 c9             	test   %cx,%cx
53f323:	0f 95 c0             	setne  %al
53f326:	85 c0                	test   %eax,%eax
53f328:	0f 85 d9 00 00 00    	jne    0x53f407
53f32e:	33 c9                	xor    %ecx,%ecx
53f330:	33 c0                	xor    %eax,%eax
53f332:	33 ff                	xor    %edi,%edi
53f334:	89 8d 14 ff ff ff    	mov    %ecx,-0xec(%ebp)
53f33a:	66 3b 46 32          	cmp    0x32(%esi),%ax
53f33e:	0f 83 d9 00 00 00    	jae    0x53f41d
53f344:	33 db                	xor    %ebx,%ebx
53f346:	8b 46 04             	mov    0x4(%esi),%eax
53f349:	0f b7 04 78          	movzwl (%eax,%edi,2),%eax
53f34d:	66 85 c0             	test   %ax,%ax
53f350:	78 0e                	js     0x53f360
53f352:	8b 4d 84             	mov    -0x7c(%ebp),%ecx
53f355:	98                   	cwtl
53f356:	8b 04 81             	mov    (%ecx,%eax,4),%eax
53f359:	f7 d0                	not    %eax
53f35b:	c1 e8 1f             	shr    $0x1f,%eax
53f35e:	eb 58                	jmp    0x53f3b8
53f360:	8b 46 28             	mov    0x28(%esi),%eax
53f363:	0f 57 c0             	xorps  %xmm0,%xmm0
53f366:	8b 55 84             	mov    -0x7c(%ebp),%edx
53f369:	33 c9                	xor    %ecx,%ecx
53f36b:	0f 11 45 c0          	movups %xmm0,-0x40(%ebp)
53f36f:	c7 45 d8 00 00 00 00 	movl   $0x0,-0x28(%ebp)
53f376:	8b 44 18 04          	mov    0x4(%eax,%ebx,1),%eax
53f37a:	66 0f d6 45 d0       	movq   %xmm0,-0x30(%ebp)
53f37f:	66 89 4d d4          	mov    %cx,-0x2c(%ebp)
53f383:	c7 45 c4 90 80 4f 00 	movl   $0x4f8090,-0x3c(%ebp)
53f38a:	89 55 d8             	mov    %edx,-0x28(%ebp)
53f38d:	85 c0                	test   %eax,%eax
53f38f:	74 11                	je     0x53f3a2
53f391:	50                   	push   %eax
53f392:	8d 45 c0             	lea    -0x40(%ebp),%eax
53f395:	50                   	push   %eax
53f396:	e8 15 0c 02 00       	call   0x55ffb0
53f39b:	66 8b 4d d4          	mov    -0x2c(%ebp),%cx
53f39f:	83 c4 08             	add    $0x8,%esp
53f3a2:	80 7d 97 00          	cmpb   $0x0,-0x69(%ebp)
53f3a6:	75 08                	jne    0x53f3b0
53f3a8:	b8 fd ff 00 00       	mov    $0xfffd,%eax
53f3ad:	66 23 c8             	and    %ax,%cx
53f3b0:	33 c0                	xor    %eax,%eax
53f3b2:	66 85 c9             	test   %cx,%cx
53f3b5:	0f 95 c0             	setne  %al
53f3b8:	85 c0                	test   %eax,%eax
53f3ba:	75 1e                	jne    0x53f3da
53f3bc:	0f b7 46 32          	movzwl 0x32(%esi),%eax
53f3c0:	47                   	inc    %edi
53f3c1:	83 c3 14             	add    $0x14,%ebx
53f3c4:	3b f8                	cmp    %eax,%edi
53f3c6:	0f 8c 7a ff ff ff    	jl     0x53f346
53f3cc:	8b 8d 14 ff ff ff    	mov    -0xec(%ebp),%ecx
53f3d2:	8b 9d 40 ff ff ff    	mov    -0xc0(%ebp),%ebx
53f3d8:	eb 43                	jmp    0x53f41d
53f3da:	8b 55 9c             	mov    -0x64(%ebp),%edx
53f3dd:	8b 9d 40 ff ff ff    	mov    -0xc0(%ebp),%ebx
53f3e3:	ff 42 2c             	incl   0x2c(%edx)
53f3e6:	0f b7 46 34          	movzwl 0x34(%esi),%eax
53f3ea:	8b 4a 2c             	mov    0x2c(%edx),%ecx
53f3ed:	03 c1                	add    %ecx,%eax
53f3ef:	83 7d 18 0b          	cmpl   $0xb,0x18(%ebp)
53f3f3:	89 42 2c             	mov    %eax,0x2c(%edx)
53f3f6:	75 21                	jne    0x53f419
53f3f8:	80 7e 36 05          	cmpb   $0x5,0x36(%esi)
53f3fc:	75 1b                	jne    0x53f419
53f3fe:	c7 45 f8 01 00 00 00 	movl   $0x1,-0x8(%ebp)
53f405:	eb 12                	jmp    0x53f419
53f407:	8b 55 9c             	mov    -0x64(%ebp),%edx
53f40a:	ff 42 2c             	incl   0x2c(%edx)
53f40d:	0f b7 46 34          	movzwl 0x34(%esi),%eax
53f411:	8b 4a 2c             	mov    0x2c(%edx),%ecx
53f414:	03 c1                	add    %ecx,%eax
53f416:	89 42 2c             	mov    %eax,0x2c(%edx)
53f419:	85 c9                	test   %ecx,%ecx
53f41b:	75 0b                	jne    0x53f428
53f41d:	8b 85 3c ff ff ff    	mov    -0xc4(%ebp),%eax
53f423:	c6 44 03 01 00       	movb   $0x0,0x1(%ebx,%eax,1)
53f428:	8b 85 30 ff ff ff    	mov    -0xd0(%ebp),%eax
53f42e:	8b bd 74 ff ff ff    	mov    -0x8c(%ebp),%edi
53f434:	89 0c 98             	mov    %ecx,(%eax,%ebx,4)
53f437:	43                   	inc    %ebx
53f438:	8b 76 14             	mov    0x14(%esi),%esi
53f43b:	89 9d 40 ff ff ff    	mov    %ebx,-0xc0(%ebp)
53f441:	85 f6                	test   %esi,%esi
53f443:	0f 85 67 fe ff ff    	jne    0x53f2b0
53f449:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
53f44c:	8b 95 30 ff ff ff    	mov    -0xd0(%ebp),%edx
53f452:	ff 41 2c             	incl   0x2c(%ecx)
53f455:	8b 41 2c             	mov    0x2c(%ecx),%eax
53f458:	89 04 9a             	mov    %eax,(%edx,%ebx,4)
53f45b:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
53f45f:	74 1b                	je     0x53f47c
53f461:	8b 85 0c ff ff ff    	mov    -0xf4(%ebp),%eax
53f467:	40                   	inc    %eax
53f468:	50                   	push   %eax
53f469:	6a 01                	push   $0x1
53f46b:	ff b5 3c ff ff ff    	push   -0xc4(%ebp)
53f471:	e8 8a 45 0a 00       	call   0x5e3a00
53f476:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
53f479:	83 c4 0c             	add    $0xc,%esp
53f47c:	80 79 12 00          	cmpb   $0x0,0x12(%ecx)
53f480:	75 0a                	jne    0x53f48c
53f482:	8b 45 98             	mov    -0x68(%ebp),%eax
53f485:	83 88 98 00 00 00 20 	orl    $0x20,0x98(%eax)
53f48c:	83 bd 6c ff ff ff 00 	cmpl   $0x0,-0x94(%ebp)
53f493:	75 08                	jne    0x53f49d
53f495:	85 ff                	test   %edi,%edi
53f497:	75 04                	jne    0x53f49d
53f499:	33 db                	xor    %ebx,%ebx
53f49b:	eb 05                	jmp    0x53f4a2
53f49d:	bb 01 00 00 00       	mov    $0x1,%ebx
53f4a2:	8b 41 74             	mov    0x74(%ecx),%eax
53f4a5:	8b d1                	mov    %ecx,%edx
53f4a7:	85 c0                	test   %eax,%eax
53f4a9:	8b f1                	mov    %ecx,%esi
53f4ab:	8b 8d 60 ff ff ff    	mov    -0xa0(%ebp),%ecx
53f4b1:	0f 45 d0             	cmovne %eax,%edx
53f4b4:	0f 45 f0             	cmovne %eax,%esi
53f4b7:	b8 01 00 00 00       	mov    $0x1,%eax
53f4bc:	d3 e0                	shl    %cl,%eax
53f4be:	8b 7a 54             	mov    0x54(%edx),%edi
53f4c1:	85 c7                	test   %eax,%edi
53f4c3:	75 1a                	jne    0x53f4df
53f4c5:	0f ab cf             	bts    %ecx,%edi
53f4c8:	89 7a 54             	mov    %edi,0x54(%edx)
53f4cb:	83 f9 01             	cmp    $0x1,%ecx
53f4ce:	75 0f                	jne    0x53f4df
53f4d0:	52                   	push   %edx
53f4d1:	e8 ba 27 ff ff       	call   0x531c90
53f4d6:	8b 8d 60 ff ff ff    	mov    -0xa0(%ebp),%ecx
53f4dc:	83 c4 04             	add    $0x4,%esp
53f4df:	8b 46 50             	mov    0x50(%esi),%eax
53f4e2:	08 5e 14             	or     %bl,0x14(%esi)
53f4e5:	0f ab c8             	bts    %ecx,%eax
53f4e8:	8b 5d 9c             	mov    -0x64(%ebp),%ebx
53f4eb:	89 46 50             	mov    %eax,0x50(%esi)
53f4ee:	8b 75 90             	mov    -0x70(%ebp),%esi
53f4f1:	83 7e 38 00          	cmpl   $0x0,0x38(%esi)
53f4f5:	0f 85 87 00 00 00    	jne    0x53f582
53f4fb:	8b 8d 30 ff ff ff    	mov    -0xd0(%ebp),%ecx
53f501:	8b 85 40 ff ff ff    	mov    -0xc0(%ebp),%eax
53f507:	8b 04 81             	mov    (%ecx,%eax,4),%eax
53f50a:	ff 43 2c             	incl   0x2c(%ebx)
53f50d:	80 bd 7f ff ff ff 00 	cmpb   $0x0,-0x81(%ebp)
53f514:	8b 53 2c             	mov    0x2c(%ebx),%edx
53f517:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
53f51d:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
53f523:	89 95 5c ff ff ff    	mov    %edx,-0xa4(%ebp)
53f529:	89 55 80             	mov    %edx,-0x80(%ebp)
53f52c:	75 0e                	jne    0x53f53c
53f52e:	85 c9                	test   %ecx,%ecx
53f530:	75 0a                	jne    0x53f53c
53f532:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
53f538:	85 c0                	test   %eax,%eax
53f53a:	74 18                	je     0x53f554
53f53c:	8d 42 01             	lea    0x1(%edx),%eax
53f53f:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
53f545:	0f bf 46 2a          	movswl 0x2a(%esi),%eax
53f549:	03 c2                	add    %edx,%eax
53f54b:	89 43 2c             	mov    %eax,0x2c(%ebx)
53f54e:	8b 85 74 ff ff ff    	mov    -0x8c(%ebp),%eax
53f554:	80 bd 38 ff ff ff 00 	cmpb   $0x0,-0xc8(%ebp)
53f55b:	75 08                	jne    0x53f565
53f55d:	85 c9                	test   %ecx,%ecx
53f55f:	75 04                	jne    0x53f565
53f561:	85 c0                	test   %eax,%eax
53f563:	74 0c                	je     0x53f571
53f565:	ff 43 2c             	incl   0x2c(%ebx)
53f568:	8b 43 2c             	mov    0x2c(%ebx),%eax
53f56b:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
53f571:	8b 43 2c             	mov    0x2c(%ebx),%eax
53f574:	40                   	inc    %eax
53f575:	89 85 24 ff ff ff    	mov    %eax,-0xdc(%ebp)
53f57b:	0f bf 46 2a          	movswl 0x2a(%esi),%eax
53f57f:	01 43 2c             	add    %eax,0x2c(%ebx)
53f582:	8b 8d 04 ff ff ff    	mov    -0xfc(%ebp),%ecx
53f588:	8b bd 1c ff ff ff    	mov    -0xe4(%ebp),%edi
53f58e:	85 c9                	test   %ecx,%ecx
53f590:	74 34                	je     0x53f5c6
53f592:	ff 75 8c             	push   -0x74(%ebp)
53f595:	8b 83 f0 00 00 00    	mov    0xf0(%ebx),%eax
53f59b:	ff b5 18 ff ff ff    	push   -0xe8(%ebp)
53f5a1:	89 85 dc fe ff ff    	mov    %eax,-0x124(%ebp)
53f5a7:	ff b5 44 ff ff ff    	push   -0xbc(%ebp)
53f5ad:	8b 06                	mov    (%esi),%eax
53f5af:	57                   	push   %edi
53f5b0:	56                   	push   %esi
53f5b1:	53                   	push   %ebx
53f5b2:	89 9d e0 fe ff ff    	mov    %ebx,-0x120(%ebp)
53f5b8:	89 83 f0 00 00 00    	mov    %eax,0xf0(%ebx)
53f5be:	e8 dd 1b ff ff       	call   0x5311a0
53f5c3:	83 c4 18             	add    $0x18,%esp
53f5c6:	8d 45 a0             	lea    -0x60(%ebp),%eax
53f5c9:	57                   	push   %edi
53f5ca:	50                   	push   %eax
53f5cb:	e8 b0 8c ff ff       	call   0x538280
53f5d0:	83 c4 08             	add    $0x8,%esp
53f5d3:	85 c0                	test   %eax,%eax
53f5d5:	0f 85 4b 16 00 00    	jne    0x540c26
53f5db:	39 46 38             	cmp    %eax,0x38(%esi)
53f5de:	74 26                	je     0x53f606
53f5e0:	ff 75 18             	push   0x18(%ebp)
53f5e3:	57                   	push   %edi
53f5e4:	8b 7d 84             	mov    -0x7c(%ebp),%edi
53f5e7:	57                   	push   %edi
53f5e8:	ff b5 00 ff ff ff    	push   -0x100(%ebp)
53f5ee:	ff 75 88             	push   -0x78(%ebp)
53f5f1:	56                   	push   %esi
53f5f2:	ff b5 28 ff ff ff    	push   -0xd8(%ebp)
53f5f8:	53                   	push   %ebx
53f5f9:	e8 d2 99 01 00       	call   0x558fd0
53f5fe:	83 c4 20             	add    $0x20,%esp
53f601:	e9 23 16 00 00       	jmp    0x540c29
53f606:	8b 85 78 ff ff ff    	mov    -0x88(%ebp),%eax
53f60c:	ff 4b 38             	decl   0x38(%ebx)
53f60f:	8b 7b 38             	mov    0x38(%ebx),%edi
53f612:	89 bd 60 ff ff ff    	mov    %edi,-0xa0(%ebp)
53f618:	8b 48 24             	mov    0x24(%eax),%ecx
53f61b:	33 c0                	xor    %eax,%eax
53f61d:	83 e1 01             	and    $0x1,%ecx
53f620:	89 bd 54 ff ff ff    	mov    %edi,-0xac(%ebp)
53f626:	0b c1                	or     %ecx,%eax
53f628:	74 75                	je     0x53f69f
53f62a:	83 7b 78 00          	cmpl   $0x0,0x78(%ebx)
53f62e:	75 6f                	jne    0x53f69f
53f630:	80 7b 12 00          	cmpb   $0x0,0x12(%ebx)
53f634:	75 69                	jne    0x53f69f
53f636:	83 bd 2c ff ff ff 00 	cmpl   $0x0,-0xd4(%ebp)
53f63d:	75 60                	jne    0x53f69f
53f63f:	ff 43 2c             	incl   0x2c(%ebx)
53f642:	8b 53 2c             	mov    0x2c(%ebx),%edx
53f645:	8b 5d 98             	mov    -0x68(%ebp),%ebx
53f648:	89 95 e4 fe ff ff    	mov    %edx,-0x11c(%ebp)
53f64e:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53f651:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53f654:	7f 12                	jg     0x53f668
53f656:	6a 00                	push   $0x0
53f658:	52                   	push   %edx
53f659:	6a 00                	push   $0x0
53f65b:	6a 45                	push   $0x45
53f65d:	53                   	push   %ebx
53f65e:	e8 9d 6e fc ff       	call   0x506500
53f663:	83 c4 14             	add    $0x14,%esp
53f666:	eb 3a                	jmp    0x53f6a2
53f668:	8b bd 60 ff ff ff    	mov    -0xa0(%ebp),%edi
53f66e:	8d 41 01             	lea    0x1(%ecx),%eax
53f671:	89 43 6c             	mov    %eax,0x6c(%ebx)
53f674:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53f677:	8b 43 68             	mov    0x68(%ebx),%eax
53f67a:	c7 04 88 45 00 00 00 	movl   $0x45,(%eax,%ecx,4)
53f681:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
53f688:	00
53f689:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53f68d:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
53f694:	00
53f695:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53f69c:	00
53f69d:	eb 03                	jmp    0x53f6a2
53f69f:	8b 5d 98             	mov    -0x68(%ebp),%ebx
53f6a2:	f6 46 24 80          	testb  $0x80,0x24(%esi)
53f6a6:	0f 85 e2 00 00 00    	jne    0x53f78e
53f6ac:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53f6af:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53f6b2:	7f 18                	jg     0x53f6cc
53f6b4:	ff 75 80             	push   -0x80(%ebp)
53f6b7:	ff b5 64 ff ff ff    	push   -0x9c(%ebp)
53f6bd:	6a 00                	push   $0x0
53f6bf:	6a 48                	push   $0x48
53f6c1:	53                   	push   %ebx
53f6c2:	e8 39 6e fc ff       	call   0x506500
53f6c7:	83 c4 14             	add    $0x14,%esp
53f6ca:	eb 34                	jmp    0x53f700
53f6cc:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
53f6d2:	8d 41 01             	lea    0x1(%ecx),%eax
53f6d5:	89 43 6c             	mov    %eax,0x6c(%ebx)
53f6d8:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
53f6db:	8b 43 68             	mov    0x68(%ebx),%eax
53f6de:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
53f6e2:	8b 55 80             	mov    -0x80(%ebp),%edx
53f6e5:	c7 04 88 48 00 00 00 	movl   $0x48,(%eax,%ecx,4)
53f6ec:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
53f6f3:	00
53f6f4:	89 54 88 0c          	mov    %edx,0xc(%eax,%ecx,4)
53f6f8:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
53f6ff:	00
53f700:	83 bd 2c ff ff ff 00 	cmpl   $0x0,-0xd4(%ebp)
53f707:	0f 84 b9 01 00 00    	je     0x53f8c6
53f70d:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
53f710:	6a 10                	push   $0x10
53f712:	57                   	push   %edi
53f713:	ff b5 1c ff ff ff    	push   -0xe4(%ebp)
53f719:	be 01 00 00 00       	mov    $0x1,%esi
53f71e:	c7 85 14 ff ff ff 00 	movl   $0x0,-0xec(%ebp)
53f725:	00 00 00
53f728:	51                   	push   %ecx
53f729:	89 b5 58 ff ff ff    	mov    %esi,-0xa8(%ebp)
53f72f:	e8 7c 73 fe ff       	call   0x526ab0
53f734:	8b bd e0 fe ff ff    	mov    -0x120(%ebp),%edi
53f73a:	83 c4 10             	add    $0x10,%esp
53f73d:	8b 85 dc fe ff ff    	mov    -0x124(%ebp),%eax
53f743:	8b 55 8c             	mov    -0x74(%ebp),%edx
53f746:	c7 85 18 ff ff ff 00 	movl   $0x0,-0xe8(%ebp)
53f74d:	00 00 00
53f750:	89 bd 48 ff ff ff    	mov    %edi,-0xb8(%ebp)
53f756:	89 85 44 ff ff ff    	mov    %eax,-0xbc(%ebp)
53f75c:	8b 4d 90             	mov    -0x70(%ebp),%ecx
53f75f:	f6 41 24 80          	testb  $0x80,0x24(%ecx)
53f763:	0f 85 f9 02 00 00    	jne    0x53fa62
53f769:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
53f76c:	39 4b 70             	cmp    %ecx,0x70(%ebx)
53f76f:	0f 8f 37 02 00 00    	jg     0x53f9ac
53f775:	6a 00                	push   $0x0
53f777:	ff 75 80             	push   -0x80(%ebp)
53f77a:	52                   	push   %edx
53f77b:	6a 7f                	push   $0x7f
53f77d:	53                   	push   %ebx
53f77e:	e8 7d 6d fc ff       	call   0x506500
53f783:	8b 55 80             	mov    -0x80(%ebp),%edx
53f786:	83 c4 14             	add    $0x14,%esp
53f789:	e9 52 02 00 00       	jmp    0x53f9e0
53f78e:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
53f794:	8b 4d 9c             	mov    -0x64(%ebp),%ecx
53f797:	0f b7 40 32          	movzwl 0x32(%eax),%eax
53f79b:	8b 51 2c             	mov    0x2c(%ecx),%edx
53f79e:	0f bf f0             	movswl %ax,%esi
53f7a1:	42                   	inc    %edx
53f7a2:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
53f7a8:	89 95 4c ff ff ff    	mov    %edx,-0xb4(%ebp)