54012e:	8b 47 68             	mov    0x68(%edi),%eax
540131:	c7 04 88 0f 00 00 00 	movl   $0xf,(%eax,%ecx,4)
540138:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
54013c:	c7 44 88 08 00 00 00 	movl   $0x0,0x8(%eax,%ecx,4)
540143:	00
540144:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
54014b:	00
54014c:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
540153:	00
540154:	80 bd 7f ff ff ff 00 	cmpb   $0x0,-0x81(%ebp)
54015b:	0f 85 b1 00 00 00    	jne    0x540212
540161:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
540168:	0f 85 b1 00 00 00    	jne    0x54021f
54016e:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
540174:	85 c0                	test   %eax,%eax
540176:	0f 84 79 01 00 00    	je     0x5402f5
54017c:	33 db                	xor    %ebx,%ebx
54017e:	ff 75 18             	push   0x18(%ebp)
540181:	ff 75 90             	push   -0x70(%ebp)
540184:	6a 03                	push   $0x3
540186:	6a 00                	push   $0x0
540188:	ff 75 88             	push   -0x78(%ebp)
54018b:	ff b5 6c ff ff ff    	push   -0x94(%ebp)
540191:	56                   	push   %esi
540192:	e8 e9 e0 ff ff       	call   0x53e280
540197:	8b 4d 90             	mov    -0x70(%ebp),%ecx
54019a:	0b d8                	or     %eax,%ebx
54019c:	33 c0                	xor    %eax,%eax
54019e:	89 9d 34 ff ff ff    	mov    %ebx,-0xcc(%ebp)
5401a4:	83 c4 1c             	add    $0x1c,%esp
5401a7:	33 f6                	xor    %esi,%esi
5401a9:	66 3b 41 2a          	cmp    0x2a(%ecx),%ax
5401ad:	0f 8d d9 00 00 00    	jge    0x54028c
5401b3:	33 ff                	xor    %edi,%edi
5401b5:	8b 41 04             	mov    0x4(%ecx),%eax
5401b8:	56                   	push   %esi
5401b9:	51                   	push   %ecx
5401ba:	0f b7 5c 38 10       	movzwl 0x10(%eax,%edi,1),%ebx
5401bf:	e8 8c dc ff ff       	call   0x53de50
5401c4:	0f bf d0             	movswl %ax,%edx
5401c7:	83 c4 08             	add    $0x8,%esp
5401ca:	03 95 f0 fe ff ff    	add    -0x110(%ebp),%edx
5401d0:	83 bd 34 ff ff ff ff 	cmpl   $0xffffffff,-0xcc(%ebp)
5401d7:	0f 84 86 00 00 00    	je     0x540263
5401dd:	83 fe 20             	cmp    $0x20,%esi
5401e0:	7d 11                	jge    0x5401f3
5401e2:	b8 01 00 00 00       	mov    $0x1,%eax
5401e7:	8b ce                	mov    %esi,%ecx
5401e9:	d3 e0                	shl    %cl,%eax
5401eb:	85 85 34 ff ff ff    	test   %eax,-0xcc(%ebp)
5401f1:	75 70                	jne    0x540263
5401f3:	f6 c3 01             	test   $0x1,%bl
5401f6:	75 6b                	jne    0x540263
5401f8:	8b 5d 98             	mov    -0x68(%ebp),%ebx
5401fb:	8b 4b 6c             	mov    0x6c(%ebx),%ecx
5401fe:	39 4b 70             	cmp    %ecx,0x70(%ebx)
540201:	7f 2f                	jg     0x540232
540203:	6a 00                	push   $0x0
540205:	52                   	push   %edx
540206:	6a 00                	push   $0x0
540208:	6a 48                	push   $0x48
54020a:	53                   	push   %ebx
54020b:	e8 f0 62 fc ff       	call   0x506500
540210:	eb 61                	jmp    0x540273
540212:	83 bd 74 ff ff ff 00 	cmpl   $0x0,-0x8c(%ebp)
540219:	0f 84 5d ff ff ff    	je     0x54017c
54021f:	ff 75 90             	push   -0x70(%ebp)
540222:	56                   	push   %esi
540223:	e8 58 9f fe ff       	call   0x52a180
540228:	83 c4 08             	add    $0x8,%esp
54022b:	8b d8                	mov    %eax,%ebx
54022d:	e9 4c ff ff ff       	jmp    0x54017e
540232:	8d 41 01             	lea    0x1(%ecx),%eax
540235:	89 43 6c             	mov    %eax,0x6c(%ebx)
540238:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
54023b:	8b 43 68             	mov    0x68(%ebx),%eax
54023e:	c7 04 88 48 00 00 00 	movl   $0x48,(%eax,%ecx,4)
540245:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
54024c:	00
54024d:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
540251:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
540258:	00
540259:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
540260:	00
540261:	eb 13                	jmp    0x540276
540263:	52                   	push   %edx
540264:	56                   	push   %esi
540265:	ff 75 8c             	push   -0x74(%ebp)
540268:	ff 75 90             	push   -0x70(%ebp)
54026b:	ff 75 98             	push   -0x68(%ebp)
54026e:	e8 4d 3e fe ff       	call   0x5240c0
540273:	83 c4 14             	add    $0x14,%esp
540276:	8b 4d 90             	mov    -0x70(%ebp),%ecx
540279:	46                   	inc    %esi
54027a:	83 c7 14             	add    $0x14,%edi
54027d:	0f bf 41 2a          	movswl 0x2a(%ecx),%eax
540281:	3b f0                	cmp    %eax,%esi
540283:	0f 8c 2c ff ff ff    	jl     0x5401b5
540289:	8b 7d 98             	mov    -0x68(%ebp),%edi
54028c:	80 7d 97 00          	cmpb   $0x0,-0x69(%ebp)
540290:	75 5d                	jne    0x5402ef
540292:	83 bd 68 ff ff ff 00 	cmpl   $0x0,-0x98(%ebp)
540299:	75 54                	jne    0x5402ef
54029b:	8b 4f 6c             	mov    0x6c(%edi),%ecx
54029e:	39 4f 70             	cmp    %ecx,0x70(%edi)
5402a1:	7f 18                	jg     0x5402bb
5402a3:	6a 00                	push   $0x0
5402a5:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
5402ab:	ff 75 80             	push   -0x80(%ebp)
5402ae:	6a 4d                	push   $0x4d
5402b0:	57                   	push   %edi
5402b1:	e8 4a 62 fc ff       	call   0x506500
5402b6:	83 c4 14             	add    $0x14,%esp
5402b9:	eb 34                	jmp    0x5402ef
5402bb:	8b 55 80             	mov    -0x80(%ebp),%edx
5402be:	8d 41 01             	lea    0x1(%ecx),%eax
5402c1:	89 47 6c             	mov    %eax,0x6c(%edi)
5402c4:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
5402c7:	8b 47 68             	mov    0x68(%edi),%eax
5402ca:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
5402ce:	8b 95 5c ff ff ff    	mov    -0xa4(%ebp),%edx
5402d4:	c7 04 88 4d 00 00 00 	movl   $0x4d,(%eax,%ecx,4)
5402db:	89 54 88 08          	mov    %edx,0x8(%eax,%ecx,4)
5402df:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
5402e6:	00
5402e7:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5402ee:	00
5402ef:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
5402f5:	ff 75 18             	push   0x18(%ebp)
5402f8:	ff 75 90             	push   -0x70(%ebp)
5402fb:	6a 01                	push   $0x1
5402fd:	6a 01                	push   $0x1
5402ff:	ff 75 88             	push   -0x78(%ebp)
540302:	50                   	push   %eax
540303:	ff 75 9c             	push   -0x64(%ebp)
540306:	e8 75 df ff ff       	call   0x53e280
54030b:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
540311:	8b d0                	mov    %eax,%edx
540313:	8b 45 90             	mov    -0x70(%ebp),%eax
540316:	33 ff                	xor    %edi,%edi
540318:	83 c4 1c             	add    $0x1c,%esp
54031b:	89 95 64 ff ff ff    	mov    %edx,-0x9c(%ebp)
540321:	33 db                	xor    %ebx,%ebx
540323:	8b f1                	mov    %ecx,%esi
540325:	66 3b 78 2a          	cmp    0x2a(%eax),%di
540329:	8b 7d 98             	mov    -0x68(%ebp),%edi
54032c:	0f 8d a6 01 00 00    	jge    0x5404d8
540332:	33 c9                	xor    %ecx,%ecx
540334:	89 8d 44 ff ff ff    	mov    %ecx,-0xbc(%ebp)
54033a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
540340:	0f bf 40 28          	movswl 0x28(%eax),%eax
540344:	3b d8                	cmp    %eax,%ebx
540346:	75 1e                	jne    0x540366
540348:	8b 4f 6c             	mov    0x6c(%edi),%ecx
54034b:	39 4f 70             	cmp    %ecx,0x70(%edi)
54034e:	0f 8f 08 01 00 00    	jg     0x54045c
540354:	6a 00                	push   $0x0
540356:	56                   	push   %esi
540357:	6a 00                	push   $0x0
540359:	6a 48                	push   $0x48
54035b:	57                   	push   %edi
54035c:	e8 9f 61 fc ff       	call   0x506500
540361:	e9 3f 01 00 00       	jmp    0x5404a5
540366:	8b 45 90             	mov    -0x70(%ebp),%eax
540369:	8b 40 04             	mov    0x4(%eax),%eax
54036c:	0f b7 44 08 10       	movzwl 0x10(%eax,%ecx,1),%eax
540371:	a8 60                	test   $0x60,%al
540373:	74 0f                	je     0x540384
540375:	a8 20                	test   $0x20,%al
540377:	8d 46 ff             	lea    -0x1(%esi),%eax
54037a:	0f 44 c6             	cmove  %esi,%eax
54037d:	8b f0                	mov    %eax,%esi
54037f:	e9 2a 01 00 00       	jmp    0x5404ae
540384:	8b 45 84             	mov    -0x7c(%ebp),%eax
540387:	8b 04 98             	mov    (%eax,%ebx,4),%eax
54038a:	85 c0                	test   %eax,%eax
54038c:	0f 88 a0 00 00 00    	js     0x540432
540392:	8b 4d 88             	mov    -0x78(%ebp),%ecx
540395:	8d 04 80             	lea    (%eax,%eax,4),%eax
540398:	8b 7d 9c             	mov    -0x64(%ebp),%edi
54039b:	56                   	push   %esi
54039c:	8b 44 81 04          	mov    0x4(%ecx,%eax,4),%eax
5403a0:	50                   	push   %eax
5403a1:	57                   	push   %edi
5403a2:	89 85 f0 fe ff ff    	mov    %eax,-0x110(%ebp)
5403a8:	e8 a3 4e fe ff       	call   0x525250
5403ad:	83 c4 0c             	add    $0xc,%esp
5403b0:	89 85 34 ff ff ff    	mov    %eax,-0xcc(%ebp)
5403b6:	3b c6                	cmp    %esi,%eax
5403b8:	0f 84 ea 00 00 00    	je     0x5404a8
5403be:	8b 7f 08             	mov    0x8(%edi),%edi
5403c1:	85 ff                	test   %edi,%edi
5403c3:	0f 84 df 00 00 00    	je     0x5404a8
5403c9:	8b 95 f0 fe ff ff    	mov    -0x110(%ebp),%edx
5403cf:	8b 4f 6c             	mov    0x6c(%edi),%ecx
5403d2:	8b 52 04             	mov    0x4(%edx),%edx
5403d5:	81 e2 00 00 20 00    	and    $0x200000,%edx
5403db:	f7 da                	neg    %edx
5403dd:	1b d2                	sbb    %edx,%edx
5403df:	83 c2 4e             	add    $0x4e,%edx
5403e2:	39 4f 70             	cmp    %ecx,0x70(%edi)
5403e5:	7f 10                	jg     0x5403f7
5403e7:	6a 00                	push   $0x0
5403e9:	56                   	push   %esi
5403ea:	50                   	push   %eax
5403eb:	52                   	push   %edx
5403ec:	57                   	push   %edi
5403ed:	e8 0e 61 fc ff       	call   0x506500
5403f2:	e9 ae 00 00 00       	jmp    0x5404a5
5403f7:	8d 41 01             	lea    0x1(%ecx),%eax
5403fa:	89 47 6c             	mov    %eax,0x6c(%edi)
5403fd:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
540400:	8b 47 68             	mov    0x68(%edi),%eax
540403:	88 14 88             	mov    %dl,(%eax,%ecx,4)
540406:	33 d2                	xor    %edx,%edx
540408:	66 89 54 88 02       	mov    %dx,0x2(%eax,%ecx,4)
54040d:	8b 95 34 ff ff ff    	mov    -0xcc(%ebp),%edx
540413:	89 54 88 04          	mov    %edx,0x4(%eax,%ecx,4)
540417:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
54041b:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
540422:	00
540423:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
54042a:	00
54042b:	c6 44 88 01 00       	movb   $0x0,0x1(%eax,%ecx,4)
540430:	eb 76                	jmp    0x5404a8
540432:	f7 85 ec fe ff ff 01 	testl  $0x1,-0x114(%ebp)
540439:	00 00 00
54043c:	74 4f                	je     0x54048d
54043e:	83 fb 1f             	cmp    $0x1f,%ebx
540441:	7f 4a                	jg     0x54048d
540443:	b8 01 00 00 00       	mov    $0x1,%eax
540448:	8b cb                	mov    %ebx,%ecx
54044a:	d3 e0                	shl    %cl,%eax
54044c:	85 c2                	test   %eax,%edx
54044e:	75 3d                	jne    0x54048d
540450:	8b 4f 6c             	mov    0x6c(%edi),%ecx
540453:	39 4f 70             	cmp    %ecx,0x70(%edi)
540456:	0f 8e f8 fe ff ff    	jle    0x540354
54045c:	8d 41 01             	lea    0x1(%ecx),%eax
54045f:	89 47 6c             	mov    %eax,0x6c(%edi)
540462:	8d 0c 89             	lea    (%ecx,%ecx,4),%ecx
540465:	8b 47 68             	mov    0x68(%edi),%eax
540468:	c7 04 88 48 00 00 00 	movl   $0x48,(%eax,%ecx,4)
54046f:	c7 44 88 04 00 00 00 	movl   $0x0,0x4(%eax,%ecx,4)
540476:	00
540477:	89 74 88 08          	mov    %esi,0x8(%eax,%ecx,4)
54047b:	c7 44 88 0c 00 00 00 	movl   $0x0,0xc(%eax,%ecx,4)
540482:	00
540483:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
54048a:	00
54048b:	eb 21                	jmp    0x5404ae
54048d:	56                   	push   %esi
54048e:	53                   	push   %ebx
54048f:	ff 75 8c             	push   -0x74(%ebp)
540492:	ff 75 90             	push   -0x70(%ebp)
540495:	57                   	push   %edi
540496:	e8 25 3c fe ff       	call   0x5240c0
54049b:	c7 85 18 ff ff ff 00 	movl   $0x0,-0xe8(%ebp)
5404a2:	00 00 00
5404a5:	83 c4 14             	add    $0x14,%esp
5404a8:	8b 95 64 ff ff ff    	mov    -0x9c(%ebp),%edx
5404ae:	8b 45 90             	mov    -0x70(%ebp),%eax
5404b1:	43                   	inc    %ebx
5404b2:	83 85 44 ff ff ff 14 	addl   $0x14,-0xbc(%ebp)
5404b9:	46                   	inc    %esi
5404ba:	8b 8d 44 ff ff ff    	mov    -0xbc(%ebp),%ecx
5404c0:	8b 7d 98             	mov    -0x68(%ebp),%edi
5404c3:	0f bf 40 2a          	movswl 0x2a(%eax),%eax
5404c7:	3b d8                	cmp    %eax,%ebx
5404c9:	8b 45 90             	mov    -0x70(%ebp),%eax
5404cc:	0f 8c 6e fe ff ff    	jl     0x540340
5404d2:	8b 8d 24 ff ff ff    	mov    -0xdc(%ebp),%ecx
5404d8:	f6 40 24 60          	testb  $0x60,0x24(%eax)
5404dc:	74 10                	je     0x5404ee
5404de:	50                   	push   %eax
5404df:	51                   	push   %ecx
5404e0:	ff 75 9c             	push   -0x64(%ebp)
5404e3:	e8 d8 f6 fd ff       	call   0x51fbc0
5404e8:	8b 45 90             	mov    -0x70(%ebp),%eax
5404eb:	83 c4 0c             	add    $0xc,%esp
5404ee:	f6 85 ec fe ff ff 01 	testb  $0x1,-0x114(%ebp)
5404f5:	0f 84 b1 01 00 00    	je     0x5406ac
5404fb:	ff b5 24 ff ff ff    	push   -0xdc(%ebp)
540501:	8b 5d 98             	mov    -0x68(%ebp),%ebx
540504:	50                   	push   %eax
540505:	53                   	push   %ebx
540506:	e8 35 d8 ff ff       	call   0x53dd40
54050b:	8b 85 6c ff ff ff    	mov    -0x94(%ebp),%eax
540511:	83 c4 0c             	add    $0xc,%esp
540514:	8b bd 54 ff ff ff    	mov    -0xac(%ebp),%edi
54051a:	8b f0                	mov    %eax,%esi
54051c:	85 c0                	test   %eax,%eax
54051e:	74 3f                	je     0x54055f
540520:	8b 5d 90             	mov    -0x70(%ebp),%ebx
540523:	80 7e 08 7f          	cmpb   $0x7f,0x8(%esi)
540527:	75 2c                	jne    0x540555
540529:	80 7e 09 01          	cmpb   $0x1,0x9(%esi)
54052d:	75 26                	jne    0x540555
54052f:	ff 75 88             	push   -0x78(%ebp)
540532:	ff 76 10             	push   0x10(%esi)
540535:	e8 86 7a fb ff       	call   0x4f7fc0
54053a:	83 c4 08             	add    $0x8,%esp
54053d:	85 c0                	test   %eax,%eax
54053f:	74 14                	je     0x540555
540541:	57                   	push   %edi
540542:	ff 75 18             	push   0x18(%ebp)
540545:	ff 75 80             	push   -0x80(%ebp)
540548:	53                   	push   %ebx
540549:	56                   	push   %esi
54054a:	ff 75 9c             	push   -0x64(%ebp)
54054d:	e8 fe e8 fd ff       	call   0x51ee50
540552:	83 c4 18             	add    $0x18,%esp
540555:	8b 76 20             	mov    0x20(%esi),%esi
540558:	85 f6                	test   %esi,%esi
54055a:	75 c7                	jne    0x540523
54055c:	8b 5d 98             	mov    -0x68(%ebp),%ebx
54055f:	83 bd 68 ff ff ff 00 	cmpl   $0x0,-0x98(%ebp)
540566:	0f 84 a2 00 00 00    	je     0x54060e
54056c:	8b 53 6c             	mov    0x6c(%ebx),%edx
54056f:	39 53 70             	cmp    %edx,0x70(%ebx)
540572:	7f 19                	jg     0x54058d
540574:	ff b5 70 ff ff ff    	push   -0x90(%ebp)
54057a:	57                   	push   %edi
54057b:	ff 75 8c             	push   -0x74(%ebp)
54057e:	6a 1d                	push   $0x1d
540580:	53                   	push   %ebx
540581:	e8 7a 5f fc ff       	call   0x506500
540586:	83 c4 14             	add    $0x14,%esp
540589:	8b d0                	mov    %eax,%edx
54058b:	eb 30                	jmp    0x5405bd
54058d:	8b 75 8c             	mov    -0x74(%ebp),%esi
540590:	8d 42 01             	lea    0x1(%edx),%eax
540593:	89 43 6c             	mov    %eax,0x6c(%ebx)
540596:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
540599:	8b 43 68             	mov    0x68(%ebx),%eax
54059c:	89 74 88 04          	mov    %esi,0x4(%eax,%ecx,4)
5405a0:	8b b5 70 ff ff ff    	mov    -0x90(%ebp),%esi
5405a6:	c7 04 88 1d 00 00 00 	movl   $0x1d,(%eax,%ecx,4)
5405ad:	89 7c 88 08          	mov    %edi,0x8(%eax,%ecx,4)
5405b1:	89 74 88 0c          	mov    %esi,0xc(%eax,%ecx,4)
5405b5:	c7 44 88 10 00 00 00 	movl   $0x0,0x10(%eax,%ecx,4)
5405bc:	00
5405bd:	8b 03                	mov    (%ebx),%eax
5405bf:	80 78 51 00          	cmpb   $0x0,0x51(%eax)
5405c3:	75 15                	jne    0x5405da
5405c5:	8b 43 68             	mov    0x68(%ebx),%eax
5405c8:	8d 0c 92             	lea    (%edx,%edx,4),%ecx
5405cb:	8b 95 fc fe ff ff    	mov    -0x104(%ebp),%edx
5405d1:	c6 44 88 01 fd       	movb   $0xfd,0x1(%eax,%ecx,4)
5405d6:	89 54 88 10          	mov    %edx,0x10(%eax,%ecx,4)