52a1e4:	e8 e7 7d fd ff       	call   0x501fd0
52a1e9:	83 c4 0c             	add    $0xc,%esp
52a1ec:	8b 58 08             	mov    0x8(%eax),%ebx
52a1ef:	85 db                	test   %ebx,%ebx
52a1f1:	74 56                	je     0x52a249
52a1f3:	6a 00                	push   $0x0
52a1f5:	8d 45 fc             	lea    -0x4(%ebp),%eax
52a1f8:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
52a1ff:	50                   	push   %eax
52a200:	53                   	push   %ebx
52a201:	57                   	push   %edi
52a202:	ff 75 08             	push   0x8(%ebp)
52a205:	e8 d6 fc ff ff       	call   0x529ee0
52a20a:	8b 55 fc             	mov    -0x4(%ebp),%edx
52a20d:	83 c4 14             	add    $0x14,%esp
52a210:	85 d2                	test   %edx,%edx
52a212:	74 2e                	je     0x52a242
52a214:	0f b7 7a 32          	movzwl 0x32(%edx),%edi
52a218:	85 ff                	test   %edi,%edi
52a21a:	74 23                	je     0x52a23f
52a21c:	8b 52 04             	mov    0x4(%edx),%edx
52a21f:	90                   	nop
52a220:	0f b7 0a             	movzwl (%edx),%ecx
52a223:	66 83 f9 1f          	cmp    $0x1f,%cx
52a227:	7e 05                	jle    0x52a22e
52a229:	83 c8 ff             	or     $0xffffffff,%eax
52a22c:	eb 07                	jmp    0x52a235
52a22e:	b8 01 00 00 00       	mov    $0x1,%eax
52a233:	d3 e0                	shl    %cl,%eax
52a235:	0b f0                	or     %eax,%esi
52a237:	83 c2 02             	add    $0x2,%edx
52a23a:	83 ef 01             	sub    $0x1,%edi
52a23d:	75 e1                	jne    0x52a220
52a23f:	8b 7d 0c             	mov    0xc(%ebp),%edi
52a242:	8b 5b 0c             	mov    0xc(%ebx),%ebx
52a245:	85 db                	test   %ebx,%ebx
52a247:	75 aa                	jne    0x52a1f3
52a249:	5f                   	pop    %edi
52a24a:	5b                   	pop    %ebx
52a24b:	8b c6                	mov    %esi,%eax
52a24d:	5e                   	pop    %esi
52a24e:	8b e5                	mov    %ebp,%esp
52a250:	5d                   	pop    %ebp
52a251:	c3                   	ret
52a252:	8b c6                	mov    %esi,%eax
52a254:	5e                   	pop    %esi
52a255:	8b e5                	mov    %ebp,%esp
52a257:	5d                   	pop    %ebp
52a258:	c3                   	ret
52a259:	cc                   	int3
52a25a:	cc                   	int3
52a25b:	cc                   	int3
52a25c:	cc                   	int3
52a25d:	cc                   	int3
52a25e:	cc                   	int3
52a25f:	cc                   	int3
52a260:	55                   	push   %ebp
52a261:	8b ec                	mov    %esp,%ebp
52a263:	8b 45 08             	mov    0x8(%ebp),%eax
52a266:	53                   	push   %ebx
52a267:	56                   	push   %esi
52a268:	57                   	push   %edi
52a269:	8b 00                	mov    (%eax),%eax
52a26b:	33 ff                	xor    %edi,%edi
52a26d:	8b 40 20             	mov    0x20(%eax),%eax
52a270:	25 00 40 00 00       	and    $0x4000,%eax
52a275:	0b c7                	or     %edi,%eax
52a277:	0f 84 d9 00 00 00    	je     0x52a356
52a27d:	8b 4d 10             	mov    0x10(%ebp),%ecx
52a280:	85 c9                	test   %ecx,%ecx
52a282:	75 32                	jne    0x52a2b6
52a284:	8b 75 0c             	mov    0xc(%ebp),%esi
52a287:	51                   	push   %ecx
52a288:	8b 46 48             	mov    0x48(%esi),%eax
52a28b:	ff 36                	push   (%esi)
52a28d:	83 c0 38             	add    $0x38,%eax
52a290:	50                   	push   %eax
52a291:	e8 3a 7d fd ff       	call   0x501fd0
52a296:	83 c4 0c             	add    $0xc,%esp
52a299:	39 78 08             	cmp    %edi,0x8(%eax)
52a29c:	75 0c                	jne    0x52a2aa
52a29e:	39 7e 10             	cmp    %edi,0x10(%esi)
52a2a1:	75 07                	jne    0x52a2aa
52a2a3:	8b c7                	mov    %edi,%eax
52a2a5:	5f                   	pop    %edi
52a2a6:	5e                   	pop    %esi
52a2a7:	5b                   	pop    %ebx
52a2a8:	5d                   	pop    %ebp
52a2a9:	c3                   	ret
52a2aa:	bf 01 00 00 00       	mov    $0x1,%edi
52a2af:	8b c7                	mov    %edi,%eax
52a2b1:	5f                   	pop    %edi
52a2b2:	5e                   	pop    %esi
52a2b3:	5b                   	pop    %ebx
52a2b4:	5d                   	pop    %ebp
52a2b5:	c3                   	ret
52a2b6:	8b 5d 0c             	mov    0xc(%ebp),%ebx
52a2b9:	8b 73 10             	mov    0x10(%ebx),%esi
52a2bc:	85 f6                	test   %esi,%esi
52a2be:	74 52                	je     0x52a312
52a2c0:	8b 13                	mov    (%ebx),%edx
52a2c2:	8b 46 08             	mov    0x8(%esi),%eax
52a2c5:	85 d2                	test   %edx,%edx
52a2c7:	75 06                	jne    0x52a2cf
52a2c9:	f7 d8                	neg    %eax
52a2cb:	1b c0                	sbb    %eax,%eax
52a2cd:	eb 11                	jmp    0x52a2e0
52a2cf:	85 c0                	test   %eax,%eax
52a2d1:	74 11                	je     0x52a2e4
52a2d3:	50                   	push   %eax
52a2d4:	52                   	push   %edx
52a2d5:	e8 56 39 01 00       	call   0x53dc30
52a2da:	8b 4d 10             	mov    0x10(%ebp),%ecx
52a2dd:	83 c4 08             	add    $0x8,%esp
52a2e0:	85 c0                	test   %eax,%eax
52a2e2:	74 24                	je     0x52a308
52a2e4:	ff 75 14             	push   0x14(%ebp)
52a2e7:	51                   	push   %ecx
52a2e8:	56                   	push   %esi
52a2e9:	53                   	push   %ebx
52a2ea:	e8 21 84 fd ff       	call   0x502710
52a2ef:	8b 76 04             	mov    0x4(%esi),%esi
52a2f2:	83 c4 10             	add    $0x10,%esp
52a2f5:	85 c0                	test   %eax,%eax
52a2f7:	b8 01 00 00 00       	mov    $0x1,%eax
52a2fc:	0f 45 f8             	cmovne %eax,%edi
52a2ff:	85 f6                	test   %esi,%esi
52a301:	74 0f                	je     0x52a312
52a303:	8b 4d 10             	mov    0x10(%ebp),%ecx
52a306:	eb b8                	jmp    0x52a2c0
52a308:	5f                   	pop    %edi
52a309:	5e                   	pop    %esi
52a30a:	b8 02 00 00 00       	mov    $0x2,%eax
52a30f:	5b                   	pop    %ebx
52a310:	5d                   	pop    %ebp
52a311:	c3                   	ret
52a312:	8b 43 48             	mov    0x48(%ebx),%eax
52a315:	6a 00                	push   $0x0
52a317:	ff 33                	push   (%ebx)
52a319:	83 c0 38             	add    $0x38,%eax
52a31c:	50                   	push   %eax
52a31d:	e8 ae 7c fd ff       	call   0x501fd0
52a322:	83 c4 0c             	add    $0xc,%esp
52a325:	8b 70 08             	mov    0x8(%eax),%esi
52a328:	85 f6                	test   %esi,%esi
52a32a:	74 2a                	je     0x52a356
52a32c:	0f 1f 40 00          	nopl   0x0(%eax)
52a330:	ff 75 14             	push   0x14(%ebp)
52a333:	ff 75 10             	push   0x10(%ebp)
52a336:	56                   	push   %esi
52a337:	53                   	push   %ebx
52a338:	e8 63 8d fd ff       	call   0x5030a0
52a33d:	83 c4 10             	add    $0x10,%esp
52a340:	85 c0                	test   %eax,%eax
52a342:	74 0b                	je     0x52a34f
52a344:	80 7e 1a 00          	cmpb   $0x0,0x1a(%esi)
52a348:	75 be                	jne    0x52a308
52a34a:	bf 01 00 00 00       	mov    $0x1,%edi
52a34f:	8b 76 0c             	mov    0xc(%esi),%esi
52a352:	85 f6                	test   %esi,%esi
52a354:	75 da                	jne    0x52a330
52a356:	8b c7                	mov    %edi,%eax
52a358:	5f                   	pop    %edi
52a359:	5e                   	pop    %esi
52a35a:	5b                   	pop    %ebx
52a35b:	5d                   	pop    %ebp
52a35c:	c3                   	ret
52a35d:	cc                   	int3
52a35e:	cc                   	int3
52a35f:	cc                   	int3
52a360:	55                   	push   %ebp
52a361:	8b ec                	mov    %esp,%ebp
52a363:	56                   	push   %esi
52a364:	8b 75 0c             	mov    0xc(%ebp),%esi
52a367:	57                   	push   %edi
52a368:	8b 7d 08             	mov    0x8(%ebp),%edi
52a36b:	8b 46 24             	mov    0x24(%esi),%eax
52a36e:	85 c0                	test   %eax,%eax
52a370:	74 0a                	je     0x52a37c
52a372:	50                   	push   %eax
52a373:	57                   	push   %edi
52a374:	e8 37 c4 ff ff       	call   0x5267b0
52a379:	83 c4 08             	add    $0x8,%esp
52a37c:	8b 46 28             	mov    0x28(%esi),%eax
52a37f:	85 c0                	test   %eax,%eax
52a381:	74 0a                	je     0x52a38d
52a383:	50                   	push   %eax
52a384:	57                   	push   %edi
52a385:	e8 76 6c fd ff       	call   0x501000
52a38a:	83 c4 08             	add    $0x8,%esp
52a38d:	8b 46 10             	mov    0x10(%esi),%eax
52a390:	85 c0                	test   %eax,%eax
52a392:	74 0a                	je     0x52a39e
52a394:	50                   	push   %eax
52a395:	57                   	push   %edi
52a396:	e8 d5 6f ff ff       	call   0x521370
52a39b:	83 c4 08             	add    $0x8,%esp
52a39e:	f6 46 38 10          	testb  $0x10,0x38(%esi)
52a3a2:	74 11                	je     0x52a3b5
52a3a4:	8b 46 20             	mov    0x20(%esi),%eax
52a3a7:	85 c0                	test   %eax,%eax
52a3a9:	74 0a                	je     0x52a3b5
52a3ab:	50                   	push   %eax
52a3ac:	57                   	push   %edi
52a3ad:	e8 be 6f ff ff       	call   0x521370
52a3b2:	83 c4 08             	add    $0x8,%esp
52a3b5:	56                   	push   %esi
52a3b6:	57                   	push   %edi
52a3b7:	e8 b4 6f ff ff       	call   0x521370
52a3bc:	83 c4 08             	add    $0x8,%esp
52a3bf:	5f                   	pop    %edi
52a3c0:	5e                   	pop    %esi
52a3c1:	5d                   	pop    %ebp
52a3c2:	c3                   	ret
52a3c3:	cc                   	int3
52a3c4:	cc                   	int3
52a3c5:	cc                   	int3
52a3c6:	cc                   	int3
52a3c7:	cc                   	int3
52a3c8:	cc                   	int3
52a3c9:	cc                   	int3
52a3ca:	cc                   	int3
52a3cb:	cc                   	int3
52a3cc:	cc                   	int3
52a3cd:	cc                   	int3
52a3ce:	cc                   	int3
52a3cf:	cc                   	int3
52a3d0:	55                   	push   %ebp
52a3d1:	8b ec                	mov    %esp,%ebp
52a3d3:	8b 45 08             	mov    0x8(%ebp),%eax
52a3d6:	53                   	push   %ebx
52a3d7:	56                   	push   %esi
52a3d8:	57                   	push   %edi
52a3d9:	8b 3c 85 c0 ff 72 00 	mov    0x72ffc0(,%eax,4),%edi
52a3e0:	85 ff                	test   %edi,%edi
52a3e2:	74 3e                	je     0x52a422
52a3e4:	8b 5d 0c             	mov    0xc(%ebp),%ebx
52a3e7:	8b 47 20             	mov    0x20(%edi),%eax
52a3ea:	8b f3                	mov    %ebx,%esi
52a3ec:	2b f0                	sub    %eax,%esi
52a3ee:	66 90                	xchg   %ax,%ax
52a3f0:	0f b6 10             	movzbl (%eax),%edx
52a3f3:	0f b6 0c 06          	movzbl (%esi,%eax,1),%ecx
52a3f7:	3b d1                	cmp    %ecx,%edx
52a3f9:	75 0b                	jne    0x52a406
52a3fb:	85 d2                	test   %edx,%edx
52a3fd:	75 19                	jne    0x52a418
52a3ff:	8b c7                	mov    %edi,%eax
52a401:	5f                   	pop    %edi
52a402:	5e                   	pop    %esi
52a403:	5b                   	pop    %ebx
52a404:	5d                   	pop    %ebp
52a405:	c3                   	ret
52a406:	0f b6 89 20 2a 6b 00 	movzbl 0x6b2a20(%ecx),%ecx
52a40d:	0f b6 92 20 2a 6b 00 	movzbl 0x6b2a20(%edx),%edx
52a414:	2b d1                	sub    %ecx,%edx
52a416:	75 03                	jne    0x52a41b
52a418:	40                   	inc    %eax
52a419:	eb d5                	jmp    0x52a3f0
52a41b:	8b 7f 24             	mov    0x24(%edi),%edi
52a41e:	85 ff                	test   %edi,%edi
52a420:	75 c5                	jne    0x52a3e7
52a422:	5f                   	pop    %edi
52a423:	5e                   	pop    %esi
52a424:	33 c0                	xor    %eax,%eax
52a426:	5b                   	pop    %ebx
52a427:	5d                   	pop    %ebp
52a428:	c3                   	ret
52a429:	cc                   	int3
52a42a:	cc                   	int3
52a42b:	cc                   	int3
52a42c:	cc                   	int3
52a42d:	cc                   	int3
52a42e:	cc                   	int3
52a42f:	cc                   	int3
52a430:	55                   	push   %ebp
52a431:	8b ec                	mov    %esp,%ebp
52a433:	83 ec 2c             	sub    $0x2c,%esp
52a436:	a1 d4 89 72 00       	mov    0x7289d4,%eax
52a43b:	33 c5                	xor    %ebp,%eax
52a43d:	89 45 fc             	mov    %eax,-0x4(%ebp)
52a440:	56                   	push   %esi
52a441:	8b 75 08             	mov    0x8(%ebp),%esi
52a444:	8d 45 f0             	lea    -0x10(%ebp),%eax
52a447:	c7 45 ec 00 00 00 00 	movl   $0x0,-0x14(%ebp)
52a44e:	0f 57 c0             	xorps  %xmm0,%xmm0
52a451:	89 45 ec             	mov    %eax,-0x14(%ebp)
52a454:	8b 45 0c             	mov    0xc(%ebp),%eax
52a457:	ff 76 14             	push   0x14(%esi)
52a45a:	89 45 f0             	mov    %eax,-0x10(%ebp)
52a45d:	8d 45 d4             	lea    -0x2c(%ebp),%eax
52a460:	0f 11 45 d4          	movups %xmm0,-0x2c(%ebp)
52a464:	50                   	push   %eax
52a465:	66 0f d6 45 e4       	movq   %xmm0,-0x1c(%ebp)
52a46a:	c7 45 d8 70 17 50 00 	movl   $0x501770,-0x28(%ebp)
52a471:	c7 45 dc e0 db 43 00 	movl   $0x43dbe0,-0x24(%ebp)
52a478:	c7 45 f4 00 00 00 00 	movl   $0x0,-0xc(%ebp)
52a47f:	c7 45 f8 00 00 00 00 	movl   $0x0,-0x8(%ebp)
52a486:	e8 15 59 02 00       	call   0x54fda0
52a48b:	83 c4 08             	add    $0x8,%esp
52a48e:	f7 46 04 00 00 00 01 	testl  $0x1000000,0x4(%esi)
52a495:	74 17                	je     0x52a4ae
52a497:	8b 46 2c             	mov    0x2c(%esi),%eax
52a49a:	8b 40 28             	mov    0x28(%eax),%eax
52a49d:	85 c0                	test   %eax,%eax
52a49f:	74 0d                	je     0x52a4ae
52a4a1:	50                   	push   %eax
52a4a2:	8d 45 d4             	lea    -0x2c(%ebp),%eax
52a4a5:	50                   	push   %eax
52a4a6:	e8 05 5b 03 00       	call   0x55ffb0
52a4ab:	83 c4 08             	add    $0x8,%esp
52a4ae:	83 7d f4 00          	cmpl   $0x0,-0xc(%ebp)
52a4b2:	5e                   	pop    %esi
52a4b3:	7f 16                	jg     0x52a4cb
52a4b5:	83 7d f8 00          	cmpl   $0x0,-0x8(%ebp)
52a4b9:	74 10                	je     0x52a4cb
52a4bb:	33 c0                	xor    %eax,%eax
52a4bd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52a4c0:	33 cd                	xor    %ebp,%ecx
52a4c2:	e8 13 70 0b 00       	call   0x5e14da
52a4c7:	8b e5                	mov    %ebp,%esp
52a4c9:	5d                   	pop    %ebp
52a4ca:	c3                   	ret
52a4cb:	8b 4d fc             	mov    -0x4(%ebp),%ecx
52a4ce:	b8 01 00 00 00       	mov    $0x1,%eax
52a4d3:	33 cd                	xor    %ebp,%ecx
52a4d5:	e8 00 70 0b 00       	call   0x5e14da
52a4da:	8b e5                	mov    %ebp,%esp
52a4dc:	5d                   	pop    %ebp
52a4dd:	c3                   	ret
52a4de:	cc                   	int3
52a4df:	cc                   	int3
52a4e0:	55                   	push   %ebp
52a4e1:	8b ec                	mov    %esp,%ebp
52a4e3:	81 ec b4 00 00 00    	sub    $0xb4,%esp
52a4e9:	a1 d4 89 72 00       	mov    0x7289d4,%eax
52a4ee:	33 c5                	xor    %ebp,%eax
52a4f0:	89 45 fc             	mov    %eax,-0x4(%ebp)
52a4f3:	8b 45 10             	mov    0x10(%ebp),%eax
52a4f6:	8b 55 0c             	mov    0xc(%ebp),%edx
52a4f9:	89 45 b8             	mov    %eax,-0x48(%ebp)
52a4fc:	8b 45 30             	mov    0x30(%ebp),%eax
52a4ff:	53                   	push   %ebx
52a500:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
52a506:	8b 45 34             	mov    0x34(%ebp),%eax
52a509:	56                   	push   %esi
52a50a:	89 45 c4             	mov    %eax,-0x3c(%ebp)
52a50d:	8b 45 38             	mov    0x38(%ebp),%eax
52a510:	57                   	push   %edi
52a511:	8b 7d 08             	mov    0x8(%ebp),%edi