54221c:	0f 84 39 02 00 00    	je     0x54245b
542222:	8b 4e 14             	mov    0x14(%esi),%ecx
542225:	2b d1                	sub    %ecx,%edx
542227:	52                   	push   %edx
542228:	51                   	push   %ecx
542229:	ff 37                	push   (%edi)
54222b:	e8 e9 c9 ec ff       	call   0x40ec19
542230:	83 c4 0c             	add    $0xc,%esp
542233:	85 c0                	test   %eax,%eax
542235:	75 5c                	jne    0x542293
542237:	8b 0f                	mov    (%edi),%ecx
542239:	8d 51 01             	lea    0x1(%ecx),%edx
54223c:	0f 1f 40 00          	nopl   0x0(%eax)
542240:	8a 01                	mov    (%ecx),%al
542242:	41                   	inc    %ecx
542243:	84 c0                	test   %al,%al
542245:	75 f9                	jne    0x542240
542247:	2b ca                	sub    %edx,%ecx
542249:	8b 54 24 14          	mov    0x14(%esp),%edx
54224d:	8b c2                	mov    %edx,%eax
54224f:	2b 46 14             	sub    0x14(%esi),%eax
542252:	3b c1                	cmp    %ecx,%eax
542254:	0f 84 bb 00 00 00    	je     0x542315
54225a:	85 db                	test   %ebx,%ebx
54225c:	75 0c                	jne    0x54226a
54225e:	8b 44 24 10          	mov    0x10(%esp),%eax
542262:	8b df                	mov    %edi,%ebx
542264:	89 44 24 18          	mov    %eax,0x18(%esp)
542268:	eb 31                	jmp    0x54229b
54226a:	83 7c 24 38 00       	cmpl   $0x0,0x38(%esp)
54226f:	75 18                	jne    0x542289
542271:	8b 43 04             	mov    0x4(%ebx),%eax
542274:	3b 47 04             	cmp    0x4(%edi),%eax
542277:	75 10                	jne    0x542289
542279:	8b 43 08             	mov    0x8(%ebx),%eax
54227c:	3b 47 08             	cmp    0x8(%edi),%eax
54227f:	75 08                	jne    0x542289
542281:	8b 43 0c             	mov    0xc(%ebx),%eax
542284:	3b 47 0c             	cmp    0xc(%edi),%eax
542287:	74 0e                	je     0x542297
542289:	c7 44 24 1c 01 00 00 	movl   $0x1,0x1c(%esp)
542290:	00
542291:	eb 04                	jmp    0x542297
542293:	8b 54 24 14          	mov    0x14(%esp),%edx
542297:	8b 44 24 10          	mov    0x10(%esp),%eax
54229b:	83 c7 10             	add    $0x10,%edi
54229e:	40                   	inc    %eax
54229f:	89 44 24 10          	mov    %eax,0x10(%esp)
5422a3:	83 3f 00             	cmpl   $0x0,(%edi)
5422a6:	0f 85 76 ff ff ff    	jne    0x542222
5422ac:	33 c9                	xor    %ecx,%ecx
5422ae:	8b 44 24 1c          	mov    0x1c(%esp),%eax
5422b2:	85 c0                	test   %eax,%eax
5422b4:	74 70                	je     0x542326
5422b6:	85 c9                	test   %ecx,%ecx
5422b8:	75 6c                	jne    0x542326
5422ba:	39 4c 24 3c          	cmp    %ecx,0x3c(%esp)
5422be:	74 21                	je     0x5422e1
5422c0:	8b 06                	mov    (%esi),%eax
5422c2:	ff 74 85 00          	push   0x0(%ebp,%eax,4)
5422c6:	ff 75 00             	push   0x0(%ebp)
5422c9:	68 40 df bd 00       	push   $0xbddf40
5422ce:	6a 02                	push   $0x2
5422d0:	e8 65 85 ec ff       	call   0x40a83a
5422d5:	83 c4 04             	add    $0x4,%esp
5422d8:	50                   	push   %eax
5422d9:	e8 d2 8b ed ff       	call   0x41aeb0
5422de:	83 c4 10             	add    $0x10,%esp
5422e1:	8b 56 14             	mov    0x14(%esi),%edx
5422e4:	8b ca                	mov    %edx,%ecx
5422e6:	8d 79 01             	lea    0x1(%ecx),%edi
5422e9:	0f 1f 80 00 00 00 00 	nopl   0x0(%eax)
5422f0:	8a 01                	mov    (%ecx),%al
5422f2:	41                   	inc    %ecx
5422f3:	84 c0                	test   %al,%al
5422f5:	75 f9                	jne    0x5422f0
5422f7:	2b cf                	sub    %edi,%ecx
5422f9:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
542300:	ff 06                	incl   (%esi)
542302:	5f                   	pop    %edi
542303:	5d                   	pop    %ebp
542304:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
542307:	89 46 14             	mov    %eax,0x14(%esi)
54230a:	b8 3f 00 00 00       	mov    $0x3f,%eax
54230f:	5e                   	pop    %esi
542310:	5b                   	pop    %ebx
542311:	83 c4 10             	add    $0x10,%esp
542314:	c3                   	ret
542315:	8b 44 24 10          	mov    0x10(%esp),%eax
542319:	8b df                	mov    %edi,%ebx
54231b:	89 44 24 18          	mov    %eax,0x18(%esp)
54231f:	b9 01 00 00 00       	mov    $0x1,%ecx
542324:	eb 88                	jmp    0x5422ae
542326:	85 db                	test   %ebx,%ebx
542328:	0f 84 2d 01 00 00    	je     0x54245b
54232e:	ff 06                	incl   (%esi)
542330:	80 3a 00             	cmpb   $0x0,(%edx)
542333:	8b 0e                	mov    (%esi),%ecx
542335:	0f 84 b7 00 00 00    	je     0x5423f2
54233b:	83 7b 04 00          	cmpl   $0x0,0x4(%ebx)
54233f:	74 35                	je     0x542376
542341:	8d 42 01             	lea    0x1(%edx),%eax
542344:	89 46 0c             	mov    %eax,0xc(%esi)
542347:	8b 56 14             	mov    0x14(%esi),%edx
54234a:	8b ca                	mov    %edx,%ecx
54234c:	8d 79 01             	lea    0x1(%ecx),%edi
54234f:	90                   	nop
542350:	8a 01                	mov    (%ecx),%al
542352:	41                   	inc    %ecx
542353:	84 c0                	test   %al,%al
542355:	75 f9                	jne    0x542350
542357:	2b cf                	sub    %edi,%ecx
542359:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
54235c:	89 46 14             	mov    %eax,0x14(%esi)
54235f:	8b 44 24 34          	mov    0x34(%esp),%eax
542363:	85 c0                	test   %eax,%eax
542365:	0f 84 7a 03 00 00    	je     0x5426e5
54236b:	8b 4c 24 18          	mov    0x18(%esp),%ecx
54236f:	89 08                	mov    %ecx,(%eax)
542371:	e9 6f 03 00 00       	jmp    0x5426e5
542376:	83 7c 24 3c 00       	cmpl   $0x0,0x3c(%esp)
54237b:	74 48                	je     0x5423c5
54237d:	8b 44 8d fc          	mov    -0x4(%ebp,%ecx,4),%eax
542381:	ff 33                	push   (%ebx)
542383:	80 78 01 2d          	cmpb   $0x2d,0x1(%eax)
542387:	75 1d                	jne    0x5423a6
542389:	ff 75 00             	push   0x0(%ebp)
54238c:	68 64 df bd 00       	push   $0xbddf64
542391:	6a 02                	push   $0x2
542393:	e8 a2 84 ec ff       	call   0x40a83a
542398:	83 c4 04             	add    $0x4,%esp
54239b:	50                   	push   %eax
54239c:	e8 0f 8b ed ff       	call   0x41aeb0
5423a1:	83 c4 10             	add    $0x10,%esp
5423a4:	eb 1f                	jmp    0x5423c5
5423a6:	0f be 00             	movsbl (%eax),%eax
5423a9:	50                   	push   %eax
5423aa:	ff 75 00             	push   0x0(%ebp)
5423ad:	68 9c df bd 00       	push   $0xbddf9c
5423b2:	6a 02                	push   $0x2
5423b4:	e8 81 84 ec ff       	call   0x40a83a
5423b9:	83 c4 04             	add    $0x4,%esp
5423bc:	50                   	push   %eax
5423bd:	e8 ee 8a ed ff       	call   0x41aeb0
5423c2:	83 c4 14             	add    $0x14,%esp
5423c5:	8b 56 14             	mov    0x14(%esi),%edx
5423c8:	8b ca                	mov    %edx,%ecx
5423ca:	8d 79 01             	lea    0x1(%ecx),%edi
5423cd:	0f 1f 00             	nopl   (%eax)
5423d0:	8a 01                	mov    (%ecx),%al
5423d2:	41                   	inc    %ecx
5423d3:	84 c0                	test   %al,%al
5423d5:	75 f9                	jne    0x5423d0
5423d7:	2b cf                	sub    %edi,%ecx
5423d9:	5f                   	pop    %edi
5423da:	5d                   	pop    %ebp
5423db:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
5423de:	89 46 14             	mov    %eax,0x14(%esi)
5423e1:	8b 43 0c             	mov    0xc(%ebx),%eax
5423e4:	89 46 08             	mov    %eax,0x8(%esi)
5423e7:	b8 3f 00 00 00       	mov    $0x3f,%eax
5423ec:	5e                   	pop    %esi
5423ed:	5b                   	pop    %ebx
5423ee:	83 c4 10             	add    $0x10,%esp
5423f1:	c3                   	ret
5423f2:	83 7b 04 01          	cmpl   $0x1,0x4(%ebx)
5423f6:	0f 85 4b ff ff ff    	jne    0x542347
5423fc:	3b 4c 24 24          	cmp    0x24(%esp),%ecx
542400:	7d 11                	jge    0x542413
542402:	8b 44 8d 00          	mov    0x0(%ebp,%ecx,4),%eax
542406:	89 46 0c             	mov    %eax,0xc(%esi)
542409:	8d 41 01             	lea    0x1(%ecx),%eax
54240c:	89 06                	mov    %eax,(%esi)
54240e:	e9 34 ff ff ff       	jmp    0x542347
542413:	83 7c 24 3c 00       	cmpl   $0x0,0x3c(%esp)
542418:	74 1f                	je     0x542439
54241a:	ff 74 8d fc          	push   -0x4(%ebp,%ecx,4)
54241e:	ff 75 00             	push   0x0(%ebp)
542421:	68 d4 df bd 00       	push   $0xbddfd4
542426:	6a 02                	push   $0x2
542428:	e8 0d 84 ec ff       	call   0x40a83a
54242d:	83 c4 04             	add    $0x4,%esp
542430:	50                   	push   %eax
542431:	e8 7a 8a ed ff       	call   0x41aeb0
542436:	83 c4 10             	add    $0x10,%esp
542439:	8b 56 14             	mov    0x14(%esi),%edx
54243c:	8b ca                	mov    %edx,%ecx
54243e:	8d 79 01             	lea    0x1(%ecx),%edi
542441:	8a 01                	mov    (%ecx),%al
542443:	41                   	inc    %ecx
542444:	84 c0                	test   %al,%al
542446:	75 f9                	jne    0x542441
542448:	2b cf                	sub    %edi,%ecx
54244a:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
54244d:	89 46 14             	mov    %eax,0x14(%esi)
542450:	8b 43 0c             	mov    0xc(%ebx),%eax
542453:	89 46 08             	mov    %eax,0x8(%esi)
542456:	e9 54 03 00 00       	jmp    0x5427af
54245b:	83 7c 24 38 00       	cmpl   $0x0,0x38(%esp)
542460:	74 23                	je     0x542485
542462:	8b 06                	mov    (%esi),%eax
542464:	8b 44 85 00          	mov    0x0(%ebp,%eax,4),%eax
542468:	80 78 01 2d          	cmpb   $0x2d,0x1(%eax)
54246c:	74 17                	je     0x542485
54246e:	8b 46 14             	mov    0x14(%esi),%eax
542471:	0f be 00             	movsbl (%eax),%eax
542474:	50                   	push   %eax
542475:	ff 74 24 30          	push   0x30(%esp)
542479:	e8 d5 28 ed ff       	call   0x414d53
54247e:	83 c4 08             	add    $0x8,%esp
542481:	85 c0                	test   %eax,%eax
542483:	75 6f                	jne    0x5424f4
542485:	83 7c 24 3c 00       	cmpl   $0x0,0x3c(%esp)
54248a:	74 4b                	je     0x5424d7
54248c:	8b 06                	mov    (%esi),%eax
54248e:	ff 76 14             	push   0x14(%esi)
542491:	8b 44 85 00          	mov    0x0(%ebp,%eax,4),%eax
542495:	80 78 01 2d          	cmpb   $0x2d,0x1(%eax)
542499:	75 1d                	jne    0x5424b8
54249b:	ff 75 00             	push   0x0(%ebp)
54249e:	68 04 e0 bd 00       	push   $0xbde004
5424a3:	6a 02                	push   $0x2
5424a5:	e8 90 83 ec ff       	call   0x40a83a
5424aa:	83 c4 04             	add    $0x4,%esp
5424ad:	50                   	push   %eax
5424ae:	e8 fd 89 ed ff       	call   0x41aeb0
5424b3:	83 c4 10             	add    $0x10,%esp
5424b6:	eb 1f                	jmp    0x5424d7
5424b8:	0f be 00             	movsbl (%eax),%eax
5424bb:	50                   	push   %eax
5424bc:	ff 75 00             	push   0x0(%ebp)
5424bf:	68 2c e0 bd 00       	push   $0xbde02c
5424c4:	6a 02                	push   $0x2
5424c6:	e8 6f 83 ec ff       	call   0x40a83a
5424cb:	83 c4 04             	add    $0x4,%esp
5424ce:	50                   	push   %eax
5424cf:	e8 dc 89 ed ff       	call   0x41aeb0
5424d4:	83 c4 14             	add    $0x14,%esp
5424d7:	ff 06                	incl   (%esi)
5424d9:	b8 3f 00 00 00       	mov    $0x3f,%eax
5424de:	5f                   	pop    %edi
5424df:	5d                   	pop    %ebp
5424e0:	c7 46 14 35 41 bd 00 	movl   $0xbd4135,0x14(%esi)
5424e7:	c7 46 08 00 00 00 00 	movl   $0x0,0x8(%esi)
5424ee:	5e                   	pop    %esi
5424ef:	5b                   	pop    %ebx
5424f0:	83 c4 10             	add    $0x10,%esp
5424f3:	c3                   	ret
5424f4:	8b 46 14             	mov    0x14(%esi),%eax
5424f7:	8a 18                	mov    (%eax),%bl
5424f9:	40                   	inc    %eax
5424fa:	0f be fb             	movsbl %bl,%edi
5424fd:	57                   	push   %edi
5424fe:	ff 74 24 30          	push   0x30(%esp)
542502:	89 46 14             	mov    %eax,0x14(%esi)
542505:	e8 49 28 ed ff       	call   0x414d53
54250a:	8b 4e 14             	mov    0x14(%esi),%ecx
54250d:	83 c4 08             	add    $0x8,%esp
542510:	80 39 00             	cmpb   $0x0,(%ecx)
542513:	75 02                	jne    0x542517
542515:	ff 06                	incl   (%esi)
542517:	85 c0                	test   %eax,%eax
542519:	0f 84 7a 03 00 00    	je     0x542899
54251f:	80 fb 3a             	cmp    $0x3a,%bl
542522:	0f 84 71 03 00 00    	je     0x542899
542528:	80 38 57             	cmpb   $0x57,(%eax)
54252b:	0f 85 ad 02 00 00    	jne    0x5427de
542531:	80 78 01 3b          	cmpb   $0x3b,0x1(%eax)
542535:	0f 85 a3 02 00 00    	jne    0x5427de
54253b:	33 c0                	xor    %eax,%eax
54253d:	33 d2                	xor    %edx,%edx
54253f:	33 db                	xor    %ebx,%ebx
542541:	89 44 24 1c          	mov    %eax,0x1c(%esp)
542545:	89 54 24 18          	mov    %edx,0x18(%esp)
542549:	38 01                	cmp    %al,(%ecx)
54254b:	74 07                	je     0x542554
54254d:	ff 06                	incl   (%esi)
54254f:	89 4e 0c             	mov    %ecx,0xc(%esi)
542552:	eb 54                	jmp    0x5425a8
542554:	8b 0e                	mov    (%esi),%ecx
542556:	3b 4c 24 24          	cmp    0x24(%esp),%ecx
54255a:	75 40                	jne    0x54259c
54255c:	39 44 24 3c          	cmp    %eax,0x3c(%esp)
542560:	74 1c                	je     0x54257e
542562:	57                   	push   %edi
542563:	ff 75 00             	push   0x0(%ebp)
542566:	68 94 e0 bd 00       	push   $0xbde094
54256b:	6a 02                	push   $0x2
54256d:	e8 c8 82 ec ff       	call   0x40a83a
542572:	83 c4 04             	add    $0x4,%esp
542575:	50                   	push   %eax
542576:	e8 35 89 ed ff       	call   0x41aeb0
54257b:	83 c4 10             	add    $0x10,%esp
54257e:	8b 4c 24 2c          	mov    0x2c(%esp),%ecx
542582:	b8 3a 00 00 00       	mov    $0x3a,%eax
542587:	89 7e 08             	mov    %edi,0x8(%esi)
54258a:	ba 3f 00 00 00       	mov    $0x3f,%edx
54258f:	5f                   	pop    %edi
542590:	5d                   	pop    %ebp
542591:	38 01                	cmp    %al,(%ecx)
542593:	5e                   	pop    %esi
542594:	0f 45 c2             	cmovne %edx,%eax
542597:	5b                   	pop    %ebx
542598:	83 c4 10             	add    $0x10,%esp
54259b:	c3                   	ret
54259c:	8b 44 8d 00          	mov    0x0(%ebp,%ecx,4),%eax
5425a0:	89 46 0c             	mov    %eax,0xc(%esi)
5425a3:	8d 41 01             	lea    0x1(%ecx),%eax
5425a6:	89 06                	mov    %eax,(%esi)
5425a8:	8b 7e 0c             	mov    0xc(%esi),%edi
5425ab:	89 7e 14             	mov    %edi,0x14(%esi)
5425ae:	8a 07                	mov    (%edi),%al
5425b0:	84 c0                	test   %al,%al
5425b2:	74 0c                	je     0x5425c0
5425b4:	3c 3d                	cmp    $0x3d,%al
5425b6:	74 08                	je     0x5425c0
5425b8:	8a 47 01             	mov    0x1(%edi),%al
5425bb:	47                   	inc    %edi
5425bc:	84 c0                	test   %al,%al
5425be:	75 f4                	jne    0x5425b4
5425c0:	89 54 24 10          	mov    %edx,0x10(%esp)
5425c4:	8b 54 24 30          	mov    0x30(%esp),%edx
5425c8:	39 1a                	cmp    %ebx,(%edx)
5425ca:	0f 84 fa 01 00 00    	je     0x5427ca
5425d0:	8b 4e 14             	mov    0x14(%esi),%ecx
5425d3:	8b c7                	mov    %edi,%eax
5425d5:	2b c1                	sub    %ecx,%eax
5425d7:	50                   	push   %eax
5425d8:	51                   	push   %ecx
5425d9:	ff 32                	push   (%edx)
5425db:	e8 39 c6 ec ff       	call   0x40ec19
5425e0:	8b 54 24 3c          	mov    0x3c(%esp),%edx
5425e4:	83 c4 0c             	add    $0xc,%esp
5425e7:	85 c0                	test   %eax,%eax
5425e9:	75 39                	jne    0x542624
5425eb:	8b 0a                	mov    (%edx),%ecx
5425ed:	8d 51 01             	lea    0x1(%ecx),%edx
5425f0:	8a 01                	mov    (%ecx),%al
5425f2:	41                   	inc    %ecx
5425f3:	84 c0                	test   %al,%al
5425f5:	75 f9                	jne    0x5425f0
5425f7:	8b c7                	mov    %edi,%eax
5425f9:	2b ca                	sub    %edx,%ecx
5425fb:	2b 46 14             	sub    0x14(%esi),%eax
5425fe:	3b c1                	cmp    %ecx,%eax
542600:	8b 44 24 10          	mov    0x10(%esp),%eax
542604:	0f 84 8a 00 00 00    	je     0x542694
54260a:	8b 54 24 30          	mov    0x30(%esp),%edx
54260e:	85 db                	test   %ebx,%ebx
542610:	75 08                	jne    0x54261a