54704b:	8d 8d 08 fe ff ff    	lea    -0x1f8(%ebp),%ecx
547051:	51                   	push   %ecx
547052:	c7 85 08 fe ff ff 00 	movl   $0x0,-0x1f8(%ebp)
547059:	00 00 00
54705c:	8b 58 0c             	mov    0xc(%eax),%ebx
54705f:	8b cb                	mov    %ebx,%ecx
547061:	ff 70 04             	push   0x4(%eax)
547064:	8b 47 10             	mov    0x10(%edi),%eax
547067:	03 c9                	add    %ecx,%ecx
547069:	ff 74 c8 04          	push   0x4(%eax,%ecx,8)
54706d:	e8 2e 49 fd ff       	call   0x51b9a0
547072:	8b 8d 08 fe ff ff    	mov    -0x1f8(%ebp),%ecx
547078:	83 c4 0c             	add    $0xc,%esp
54707b:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
547081:	b8 04 00 00 00       	mov    $0x4,%eax
547086:	66 89 46 08          	mov    %ax,0x8(%esi)
54708a:	8b c1                	mov    %ecx,%eax
54708c:	99                   	cltd
54708d:	89 06                	mov    %eax,(%esi)
54708f:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
547095:	89 56 04             	mov    %edx,0x4(%esi)
547098:	85 c0                	test   %eax,%eax
54709a:	0f 85 5e 1e 00 00    	jne    0x548efe
5470a0:	85 c9                	test   %ecx,%ecx
5470a2:	0f 84 be ba ff ff    	je     0x542b66
5470a8:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5470ae:	ff 70 04             	push   0x4(%eax)
5470b1:	51                   	push   %ecx
5470b2:	53                   	push   %ebx
5470b3:	57                   	push   %edi
5470b4:	e8 b7 16 ff ff       	call   0x538770
5470b9:	8d 4b 01             	lea    0x1(%ebx),%ecx
5470bc:	83 c4 10             	add    $0x10,%esp
5470bf:	88 8d 37 fe ff ff    	mov    %cl,-0x1c9(%ebp)
5470c5:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5470cb:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5470d1:	83 c6 14             	add    $0x14,%esi
5470d4:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5470da:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5470e0:	e9 cf b7 ff ff       	jmp    0x5428b4
5470e5:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5470eb:	8d 45 dc             	lea    -0x24(%ebp),%eax
5470ee:	33 c9                	xor    %ecx,%ecx
5470f0:	c7 45 dc 00 00 00 00 	movl   $0x0,-0x24(%ebp)
5470f7:	39 4a 0c             	cmp    %ecx,0xc(%edx)
5470fa:	0f 44 c1             	cmove  %ecx,%eax
5470fd:	8b 4a 08             	mov    0x8(%edx),%ecx
547100:	50                   	push   %eax
547101:	8b 47 10             	mov    0x10(%edi),%eax
547104:	03 c9                	add    %ecx,%ecx
547106:	ff 72 04             	push   0x4(%edx)
547109:	ff 74 c8 04          	push   0x4(%eax,%ecx,8)
54710d:	e8 4e 3d fd ff       	call   0x51ae60
547112:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
547118:	83 c4 0c             	add    $0xc,%esp
54711b:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
547121:	83 7e 0c 00          	cmpl   $0x0,0xc(%esi)
547125:	74 2a                	je     0x547151
547127:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54712d:	8b 45 dc             	mov    -0x24(%ebp),%eax
547130:	01 41 2c             	add    %eax,0x2c(%ecx)
547133:	8b 4e 0c             	mov    0xc(%esi),%ecx
547136:	85 c9                	test   %ecx,%ecx
547138:	7e 11                	jle    0x54714b
54713a:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
547140:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
547143:	99                   	cltd
547144:	01 04 cb             	add    %eax,(%ebx,%ecx,8)
547147:	11 54 cb 04          	adc    %edx,0x4(%ebx,%ecx,8)
54714b:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
547151:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
547157:	85 c0                	test   %eax,%eax
547159:	0f 85 a5 1d 00 00    	jne    0x548f04
54715f:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
547165:	83 c6 14             	add    $0x14,%esi
547168:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54716e:	e9 41 b7 ff ff       	jmp    0x5428b4
547173:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547179:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
54717f:	8b 4a 04             	mov    0x4(%edx),%ecx
547182:	8b 40 60             	mov    0x60(%eax),%eax
547185:	8b 04 88             	mov    (%eax,%ecx,4),%eax
547188:	80 38 01             	cmpb   $0x1,(%eax)
54718b:	75 2c                	jne    0x5471b9
54718d:	ff 70 28             	push   0x28(%eax)
547190:	57                   	push   %edi
547191:	e8 ea 62 00 00       	call   0x54d480
547196:	83 c4 08             	add    $0x8,%esp
547199:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54719f:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5471a5:	83 c6 14             	add    $0x14,%esi
5471a8:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5471ae:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5471b4:	e9 fb b6 ff ff       	jmp    0x5428b4
5471b9:	8b 40 28             	mov    0x28(%eax),%eax
5471bc:	6a 00                	push   $0x0
5471be:	ff 70 40             	push   0x40(%eax)
5471c1:	ff 70 08             	push   0x8(%eax)
5471c4:	e8 97 3c fd ff       	call   0x51ae60
5471c9:	e9 32 c7 ff ff       	jmp    0x543900
5471ce:	ff b5 98 fe ff ff    	push   -0x168(%ebp)
5471d4:	51                   	push   %ecx
5471d5:	e8 b6 4e fc ff       	call   0x50c090
5471da:	8b f0                	mov    %eax,%esi
5471dc:	c7 85 f8 fd ff ff 00 	movl   $0x0,-0x208(%ebp)
5471e3:	00 00 00
5471e6:	8b 85 98 fe ff ff    	mov    -0x168(%ebp),%eax
5471ec:	8b 48 04             	mov    0x4(%eax),%ecx
5471ef:	ff 70 0c             	push   0xc(%eax)
5471f2:	c1 e1 04             	shl    $0x4,%ecx
5471f5:	8d 85 f8 fd ff ff    	lea    -0x208(%ebp),%eax
5471fb:	03 4f 10             	add    0x10(%edi),%ecx
5471fe:	50                   	push   %eax
5471ff:	ff 71 04             	push   0x4(%ecx)
547202:	e8 39 43 fd ff       	call   0x51b540
547207:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54720d:	83 c4 14             	add    $0x14,%esp
547210:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
547216:	85 c0                	test   %eax,%eax
547218:	0f 85 e6 1c 00 00    	jne    0x548f04
54721e:	8b 85 f8 fd ff ff    	mov    -0x208(%ebp),%eax
547224:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54722a:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
547230:	99                   	cltd
547231:	89 06                	mov    %eax,(%esi)
547233:	89 56 04             	mov    %edx,0x4(%esi)
547236:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54723c:	83 c6 14             	add    $0x14,%esi
54723f:	e9 70 b6 ff ff       	jmp    0x5428b4
547244:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54724a:	fe 47 5a             	incb   0x5a(%edi)
54724d:	6a 00                	push   $0x0
54724f:	6a 00                	push   $0x0
547251:	6a 00                	push   $0x0
547253:	ff 72 10             	push   0x10(%edx)
547256:	57                   	push   %edi
547257:	e8 74 e4 f9 ff       	call   0x4e56d0
54725c:	83 c4 14             	add    $0x14,%esp
54725f:	fe 4f 5a             	decb   0x5a(%edi)
547262:	e9 9c c6 ff ff       	jmp    0x543903
547267:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54726d:	8b 4a 10             	mov    0x10(%edx),%ecx
547270:	8b 72 04             	mov    0x4(%edx),%esi
547273:	85 c9                	test   %ecx,%ecx
547275:	75 46                	jne    0x5472bd
547277:	8b 47 10             	mov    0x10(%edi),%eax
54727a:	8b ce                	mov    %esi,%ecx
54727c:	03 c9                	add    %ecx,%ecx
54727e:	ff 74 c8 0c          	push   0xc(%eax,%ecx,8)
547282:	e8 c9 24 ff ff       	call   0x539750
547287:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
54728d:	83 67 18 ef          	andl   $0xffffffef,0x18(%edi)
547291:	83 c0 7c             	add    $0x7c,%eax
547294:	6a 01                	push   $0x1
547296:	50                   	push   %eax
547297:	56                   	push   %esi
547298:	57                   	push   %edi
547299:	e8 42 71 fe ff       	call   0x52e3e0
54729e:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5472a4:	83 c4 14             	add    $0x14,%esp
5472a7:	83 4f 18 01          	orl    $0x1,0x18(%edi)
5472ab:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
5472b1:	83 a1 98 00 00 00 fc 	andl   $0xfffffffc,0x98(%ecx)
5472b8:	e9 b5 00 00 00       	jmp    0x547372
5472bd:	8b 85 9c fe ff ff    	mov    -0x164(%ebp),%eax
5472c3:	83 c0 7c             	add    $0x7c,%eax
5472c6:	89 75 88             	mov    %esi,-0x78(%ebp)
5472c9:	89 45 84             	mov    %eax,-0x7c(%ebp)
5472cc:	03 f6                	add    %esi,%esi
5472ce:	8b 47 10             	mov    0x10(%edi),%eax
5472d1:	51                   	push   %ecx
5472d2:	68 24 8a 6b 00       	push   $0x6b8a24
5472d7:	89 7d 80             	mov    %edi,-0x80(%ebp)
5472da:	c7 45 90 00 00 00 00 	movl   $0x0,-0x70(%ebp)
5472e1:	ff 34 f0             	push   (%eax,%esi,8)
5472e4:	68 34 8a 6b 00       	push   $0x6b8a34
5472e9:	57                   	push   %edi
5472ea:	e8 51 9c fe ff       	call   0x530f40
5472ef:	8b f0                	mov    %eax,%esi
5472f1:	83 c4 14             	add    $0x14,%esp
5472f4:	85 f6                	test   %esi,%esi
5472f6:	0f 84 bf 1b 00 00    	je     0x548ebb
5472fc:	6a 00                	push   $0x0
5472fe:	8d 45 80             	lea    -0x80(%ebp),%eax
547301:	c6 87 a5 00 00 00 01 	movb   $0x1,0xa5(%edi)
547308:	50                   	push   %eax
547309:	68 f0 e1 52 00       	push   $0x52e1f0
54730e:	56                   	push   %esi
54730f:	57                   	push   %edi
547310:	c7 45 8c 00 00 00 00 	movl   $0x0,-0x74(%ebp)
547317:	c7 45 94 00 00 00 00 	movl   $0x0,-0x6c(%ebp)
54731e:	e8 ad e3 f9 ff       	call   0x4e56d0
547323:	83 c4 14             	add    $0x14,%esp
547326:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
54732c:	85 c0                	test   %eax,%eax
54732e:	75 25                	jne    0x547355
547330:	8b 45 8c             	mov    -0x74(%ebp),%eax
547333:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
547339:	85 c0                	test   %eax,%eax
54733b:	75 18                	jne    0x547355
54733d:	39 45 94             	cmp    %eax,-0x6c(%ebp)
547340:	75 13                	jne    0x547355
547342:	68 44 63 01 00       	push   $0x16344
547347:	e8 64 8a fd ff       	call   0x51fdb0
54734c:	83 c4 04             	add    $0x4,%esp
54734f:	89 85 94 fe ff ff    	mov    %eax,-0x16c(%ebp)
547355:	56                   	push   %esi
547356:	57                   	push   %edi
547357:	e8 14 a0 fd ff       	call   0x521370
54735c:	8b 85 94 fe ff ff    	mov    -0x16c(%ebp),%eax
547362:	83 c4 08             	add    $0x8,%esp
547365:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
54736b:	c6 87 a5 00 00 00 00 	movb   $0x0,0xa5(%edi)
547372:	85 c0                	test   %eax,%eax
547374:	0f 85 4b 1b 00 00    	jne    0x548ec5
54737a:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
547380:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
547386:	83 c6 14             	add    $0x14,%esi
547389:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
54738f:	e9 20 b5 ff ff       	jmp    0x5428b4
547394:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54739a:	ff 72 04             	push   0x4(%edx)
54739d:	57                   	push   %edi
54739e:	e8 8d 18 fd ff       	call   0x518c30
5473a3:	83 c4 08             	add    $0x8,%esp
5473a6:	e9 58 c5 ff ff       	jmp    0x543903
5473ab:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5473b1:	ff 72 10             	push   0x10(%edx)
5473b4:	ff 72 04             	push   0x4(%edx)
5473b7:	57                   	push   %edi
5473b8:	e8 43 77 ff ff       	call   0x53eb00
5473bd:	83 c4 0c             	add    $0xc,%esp
5473c0:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5473c6:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
5473cc:	83 c6 14             	add    $0x14,%esi
5473cf:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5473d5:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
5473db:	e9 d4 b4 ff ff       	jmp    0x5428b4
5473e0:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
5473e6:	ff 72 10             	push   0x10(%edx)
5473e9:	ff 72 04             	push   0x4(%edx)
5473ec:	57                   	push   %edi
5473ed:	e8 6e 76 ff ff       	call   0x53ea60
5473f2:	83 c4 0c             	add    $0xc,%esp
5473f5:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
5473fb:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
547401:	83 c6 14             	add    $0x14,%esi
547404:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54740a:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
547410:	e9 9f b4 ff ff       	jmp    0x5428b4
547415:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54741b:	ff 72 10             	push   0x10(%edx)
54741e:	ff 72 04             	push   0x4(%edx)
547421:	57                   	push   %edi
547422:	e8 49 77 ff ff       	call   0x53eb70
547427:	83 c4 0c             	add    $0xc,%esp
54742a:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
547430:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
547436:	83 c6 14             	add    $0x14,%esi
547439:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54743f:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
547445:	e9 6a b4 ff ff       	jmp    0x5428b4
54744a:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547450:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
547456:	8b 42 0c             	mov    0xc(%edx),%eax
547459:	8b 4a 10             	mov    0x10(%edx),%ecx
54745c:	8d 34 80             	lea    (%eax,%eax,4),%esi
54745f:	8b 42 04             	mov    0x4(%edx),%eax
547462:	8d 04 80             	lea    (%eax,%eax,4),%eax
547465:	8d 1c c3             	lea    (%ebx,%eax,8),%ebx
547468:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
54746e:	50                   	push   %eax
54746f:	8b 85 8c fe ff ff    	mov    -0x174(%ebp),%eax
547475:	8b 04 f0             	mov    (%eax,%esi,8),%eax
547478:	40                   	inc    %eax
547479:	50                   	push   %eax
54747a:	ff 72 08             	push   0x8(%edx)
54747d:	8d 41 04             	lea    0x4(%ecx),%eax
547480:	0f b7 4a 02          	movzwl 0x2(%edx),%ecx
547484:	50                   	push   %eax
547485:	8b 47 10             	mov    0x10(%edi),%eax
547488:	03 c9                	add    %ecx,%ecx
54748a:	ff 74 c8 04          	push   0x4(%eax,%ecx,8)
54748e:	57                   	push   %edi
54748f:	e8 3c 4c fd ff       	call   0x51c0d0
547494:	53                   	push   %ebx
547495:	89 85 78 fe ff ff    	mov    %eax,-0x188(%ebp)
54749b:	e8 b0 45 00 00       	call   0x54ba50
5474a0:	8b 85 e0 fd ff ff    	mov    -0x220(%ebp),%eax
5474a6:	83 c4 1c             	add    $0x1c,%esp
5474a9:	85 c0                	test   %eax,%eax
5474ab:	74 38                	je     0x5474e5
5474ad:	8b 8d 78 fe ff ff    	mov    -0x188(%ebp),%ecx
5474b3:	85 c9                	test   %ecx,%ecx
5474b5:	0f 84 19 1b 00 00    	je     0x548fd4
5474bb:	8b bd 8c fe ff ff    	mov    -0x174(%ebp),%edi
5474c1:	48                   	dec    %eax
5474c2:	68 90 ad 4e 00       	push   $0x4ead90
5474c7:	99                   	cltd
5474c8:	6a 01                	push   $0x1
5474ca:	29 04 f7             	sub    %eax,(%edi,%esi,8)
5474cd:	8b c7                	mov    %edi,%eax
5474cf:	6a ff                	push   $0xffffffff
5474d1:	51                   	push   %ecx
5474d2:	53                   	push   %ebx
5474d3:	19 54 f0 04          	sbb    %edx,0x4(%eax,%esi,8)
5474d7:	e8 04 46 00 00       	call   0x54bae0
5474dc:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
5474e2:	83 c4 14             	add    $0x14,%esp
5474e5:	0f b6 85 60 fe ff ff 	movzbl -0x1a0(%ebp),%eax
5474ec:	50                   	push   %eax
5474ed:	53                   	push   %ebx
5474ee:	e8 cd a9 ff ff       	call   0x541ec0
5474f3:	83 c4 08             	add    $0x8,%esp
5474f6:	e9 04 da ff ff       	jmp    0x544eff
5474fb:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
547501:	8b 8d 8c fe ff ff    	mov    -0x174(%ebp),%ecx
547507:	8b 42 04             	mov    0x4(%edx),%eax
54750a:	8d 04 80             	lea    (%eax,%eax,4),%eax
54750d:	f6 44 c1 08 10       	testb  $0x10,0x8(%ecx,%eax,8)
547512:	8d 34 c1             	lea    (%ecx,%eax,8),%esi
547515:	8b 42 08             	mov    0x8(%edx),%eax
547518:	8d 1c 80             	lea    (%eax,%eax,4),%ebx
54751b:	75 11                	jne    0x54752e
54751d:	56                   	push   %esi
54751e:	e8 5d 45 00 00       	call   0x54ba80
547523:	83 c4 04             	add    $0x4,%esp
547526:	85 c0                	test   %eax,%eax
547528:	0f 85 a6 1a 00 00    	jne    0x548fd4
54752e:	8b bd 8c fe ff ff    	mov    -0x174(%ebp),%edi
547534:	ff 74 df 04          	push   0x4(%edi,%ebx,8)
547538:	ff 34 df             	push   (%edi,%ebx,8)
54753b:	ff 76 10             	push   0x10(%esi)
54753e:	e8 5d 14 ff ff       	call   0x5389a0
547543:	83 c4 0c             	add    $0xc,%esp
547546:	8b b5 98 fe ff ff    	mov    -0x168(%ebp),%esi
54754c:	8b 8d 9c fe ff ff    	mov    -0x164(%ebp),%ecx
547552:	83 c6 14             	add    $0x14,%esi
547555:	8b bd 4c fe ff ff    	mov    -0x1b4(%ebp),%edi
54755b:	8b 9d 1c fe ff ff    	mov    -0x1e4(%ebp),%ebx
547561:	e9 4e b3 ff ff       	jmp    0x5428b4
547566:	8b 95 98 fe ff ff    	mov    -0x168(%ebp),%edx
54756c:	8b 9d 8c fe ff ff    	mov    -0x174(%ebp),%ebx
547572:	8b 42 04             	mov    0x4(%edx),%eax
547575:	8d 04 80             	lea    (%eax,%eax,4),%eax
547578:	f6 44 c3 08 10       	testb  $0x10,0x8(%ebx,%eax,8)
54757d:	8d 34 c3             	lea    (%ebx,%eax,8),%esi
547580:	74 3f                	je     0x5475c1
547582:	8d 85 b8 fd ff ff    	lea    -0x248(%ebp),%eax
547588:	50                   	push   %eax