41a120:	33 c0                	xor    %eax,%eax
41a122:	8b cf                	mov    %edi,%ecx
41a124:	40                   	inc    %eax
41a125:	8a d8                	mov    %al,%bl
41a127:	e8 a3 0c 00 00       	call   0x41adcf
41a12c:	56                   	push   %esi
41a12d:	8b cf                	mov    %edi,%ecx
41a12f:	e8 c0 6a 00 00       	call   0x420bf4
41a134:	84 c0                	test   %al,%al
41a136:	74 d1                	je     0x41a109
41a138:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
41a13e:	84 db                	test   %bl,%bl
41a140:	88 5d 9f             	mov    %bl,-0x61(%ebp)
41a143:	8b 5d 90             	mov    -0x70(%ebp),%ebx
41a146:	74 04                	je     0x41a14c
41a148:	c6 03 30             	movb   $0x30,(%ebx)
41a14b:	43                   	inc    %ebx
41a14c:	ff 75 98             	push   -0x68(%ebp)
41a14f:	8b cf                	mov    %edi,%ecx
41a151:	e8 9e 6a 00 00       	call   0x420bf4
41a156:	84 c0                	test   %al,%al
41a158:	75 4c                	jne    0x41a1a6
41a15a:	38 47 04             	cmp    %al,0x4(%edi)
41a15d:	75 07                	jne    0x41a166
41a15f:	8b cf                	mov    %edi,%ecx
41a161:	e8 2f 23 00 00       	call   0x41c495
41a166:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
41a16a:	8d 45 d0             	lea    -0x30(%ebp),%eax
41a16d:	66 39 08             	cmp    %cx,(%eax)
41a170:	74 0a                	je     0x41a17c
41a172:	83 c0 02             	add    $0x2,%eax
41a175:	8d 55 ec             	lea    -0x14(%ebp),%edx
41a178:	3b c2                	cmp    %edx,%eax
41a17a:	75 f1                	jne    0x41a16d
41a17c:	8d 4d d0             	lea    -0x30(%ebp),%ecx
41a17f:	2b c1                	sub    %ecx,%eax
41a181:	d1 f8                	sar    $1,%eax
41a183:	83 f8 0a             	cmp    $0xa,%eax
41a186:	73 1e                	jae    0x41a1a6
41a188:	83 fe 08             	cmp    $0x8,%esi
41a18b:	7d 0a                	jge    0x41a197
41a18d:	8a 80 98 64 49 00    	mov    0x496498(%eax),%al
41a193:	88 03                	mov    %al,(%ebx)
41a195:	43                   	inc    %ebx
41a196:	46                   	inc    %esi
41a197:	33 c0                	xor    %eax,%eax
41a199:	8b cf                	mov    %edi,%ecx
41a19b:	40                   	inc    %eax
41a19c:	88 45 9f             	mov    %al,-0x61(%ebp)
41a19f:	e8 2b 0c 00 00       	call   0x41adcf
41a1a4:	eb a6                	jmp    0x41a14c
41a1a6:	8a 45 9f             	mov    -0x61(%ebp),%al
41a1a9:	80 7d 9e 00          	cmpb   $0x0,-0x62(%ebp)
41a1ad:	75 04                	jne    0x41a1b3
41a1af:	84 c0                	test   %al,%al
41a1b1:	75 03                	jne    0x41a1b6
41a1b3:	8b 5d 80             	mov    -0x80(%ebp),%ebx
41a1b6:	c6 03 00             	movb   $0x0,(%ebx)
41a1b9:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41a1bd:	8d 4d a0             	lea    -0x60(%ebp),%ecx
41a1c0:	e8 0f 31 00 00       	call   0x41d2d4
41a1c5:	8b 45 94             	mov    -0x6c(%ebp),%eax
41a1c8:	e8 5b 58 02 00       	call   0x43fa28
41a1cd:	c3                   	ret
41a1ce:	68 ac 00 00 00       	push   $0xac
41a1d3:	b8 6f f7 48 00       	mov    $0x48f76f,%eax
41a1d8:	e8 a1 58 02 00       	call   0x43fa7e
41a1dd:	8b 45 14             	mov    0x14(%ebp),%eax
41a1e0:	8b 75 18             	mov    0x18(%ebp),%esi
41a1e3:	8b ce                	mov    %esi,%ecx
41a1e5:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41a1e8:	8b 7d 10             	mov    0x10(%ebp),%edi
41a1eb:	89 85 7c ff ff ff    	mov    %eax,-0x84(%ebp)
41a1f1:	8b 45 1c             	mov    0x1c(%ebp),%eax
41a1f4:	89 85 50 ff ff ff    	mov    %eax,-0xb0(%ebp)
41a1fa:	8d 85 48 ff ff ff    	lea    -0xb8(%ebp),%eax
41a200:	50                   	push   %eax
41a201:	89 9d 54 ff ff ff    	mov    %ebx,-0xac(%ebp)
41a207:	e8 0a 7b 00 00       	call   0x421d16
41a20c:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
41a210:	50                   	push   %eax
41a211:	e8 98 ec fe ff       	call   0x408eae
41a216:	8b d8                	mov    %eax,%ebx
41a218:	59                   	pop    %ecx
41a219:	89 9d 60 ff ff ff    	mov    %ebx,-0xa0(%ebp)
41a21f:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
41a223:	8d 8d 48 ff ff ff    	lea    -0xb8(%ebp),%ecx
41a229:	e8 b9 51 ff ff       	call   0x40f3e7
41a22e:	8d 45 84             	lea    -0x7c(%ebp),%eax
41a231:	8b cb                	mov    %ebx,%ecx
41a233:	50                   	push   %eax
41a234:	e8 13 7b 00 00       	call   0x421d4c
41a239:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
41a240:	8d 85 58 ff ff ff    	lea    -0xa8(%ebp),%eax
41a246:	50                   	push   %eax
41a247:	8b ce                	mov    %esi,%ecx
41a249:	e8 c8 7a 00 00       	call   0x421d16
41a24e:	c6 45 fc 02          	movb   $0x2,-0x4(%ebp)
41a252:	50                   	push   %eax
41a253:	e8 0a eb fe ff       	call   0x408d62
41a258:	59                   	pop    %ecx
41a259:	8b f0                	mov    %eax,%esi
41a25b:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
41a25f:	8d 8d 58 ff ff ff    	lea    -0xa8(%ebp),%ecx
41a265:	e8 7d 51 ff ff       	call   0x40f3e7
41a26a:	8b 0e                	mov    (%esi),%ecx
41a26c:	8d 45 b4             	lea    -0x4c(%ebp),%eax
41a26f:	50                   	push   %eax
41a270:	68 e1 64 49 00       	push   $0x4964e1
41a275:	68 c4 64 49 00       	push   $0x4964c4
41a27a:	8b 51 2c             	mov    0x2c(%ecx),%edx
41a27d:	8b ce                	mov    %esi,%ecx
41a27f:	ff d2                	call   *%edx
41a281:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a287:	8b b5 54 ff ff ff    	mov    -0xac(%ebp),%esi
41a28d:	8b cf                	mov    %edi,%ecx
41a28f:	8b de                	mov    %esi,%ebx
41a291:	c6 85 7b ff ff ff 00 	movb   $0x0,-0x85(%ebp)
41a298:	e8 57 69 00 00       	call   0x420bf4
41a29d:	84 c0                	test   %al,%al
41a29f:	75 3f                	jne    0x41a2e0
41a2a1:	38 47 04             	cmp    %al,0x4(%edi)
41a2a4:	75 07                	jne    0x41a2ad
41a2a6:	8b cf                	mov    %edi,%ecx
41a2a8:	e8 e8 21 00 00       	call   0x41c495
41a2ad:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a2b1:	66 3b 45 e2          	cmp    -0x1e(%ebp),%ax
41a2b5:	75 05                	jne    0x41a2bc
41a2b7:	c6 06 2b             	movb   $0x2b,(%esi)
41a2ba:	eb 1a                	jmp    0x41a2d6
41a2bc:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a2c0:	75 0b                	jne    0x41a2cd
41a2c2:	8b cf                	mov    %edi,%ecx
41a2c4:	e8 cc 21 00 00       	call   0x41c495
41a2c9:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a2cd:	66 3b 45 e0          	cmp    -0x20(%ebp),%ax
41a2d1:	75 0d                	jne    0x41a2e0
41a2d3:	c6 06 2d             	movb   $0x2d,(%esi)
41a2d6:	8b cf                	mov    %edi,%ecx
41a2d8:	8d 5e 01             	lea    0x1(%esi),%ebx
41a2db:	e8 ef 0a 00 00       	call   0x41adcf
41a2e0:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a2e6:	66 c7 03 30 78       	movw   $0x7830,(%ebx)
41a2eb:	33 f6                	xor    %esi,%esi
41a2ed:	21 b5 70 ff ff ff    	and    %esi,-0x90(%ebp)
41a2f3:	83 c3 02             	add    $0x2,%ebx
41a2f6:	8b cf                	mov    %edi,%ecx
41a2f8:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
41a2fe:	c6 45 83 00          	movb   $0x0,-0x7d(%ebp)
41a302:	89 b5 6c ff ff ff    	mov    %esi,-0x94(%ebp)
41a308:	e8 e7 68 00 00       	call   0x420bf4
41a30d:	84 c0                	test   %al,%al
41a30f:	75 68                	jne    0x41a379
41a311:	38 47 04             	cmp    %al,0x4(%edi)
41a314:	75 07                	jne    0x41a31d
41a316:	8b cf                	mov    %edi,%ecx
41a318:	e8 78 21 00 00       	call   0x41c495
41a31d:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a321:	66 3b 45 b4          	cmp    -0x4c(%ebp),%ax
41a325:	75 52                	jne    0x41a379
41a327:	8b cf                	mov    %edi,%ecx
41a329:	e8 a1 0a 00 00       	call   0x41adcf
41a32e:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a334:	8b cf                	mov    %edi,%ecx
41a336:	e8 b9 68 00 00       	call   0x420bf4
41a33b:	84 c0                	test   %al,%al
41a33d:	75 36                	jne    0x41a375
41a33f:	38 47 04             	cmp    %al,0x4(%edi)
41a342:	75 07                	jne    0x41a34b
41a344:	8b cf                	mov    %edi,%ecx
41a346:	e8 4a 21 00 00       	call   0x41c495
41a34b:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a34f:	66 3b 45 e6          	cmp    -0x1a(%ebp),%ax
41a353:	74 17                	je     0x41a36c
41a355:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a359:	75 0b                	jne    0x41a366
41a35b:	8b cf                	mov    %edi,%ecx
41a35d:	e8 33 21 00 00       	call   0x41c495
41a362:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a366:	66 3b 45 e4          	cmp    -0x1c(%ebp),%ax
41a36a:	75 09                	jne    0x41a375
41a36c:	8b cf                	mov    %edi,%ecx
41a36e:	e8 5c 0a 00 00       	call   0x41adcf
41a373:	eb 04                	jmp    0x41a379
41a375:	c6 45 83 01          	movb   $0x1,-0x7d(%ebp)
41a379:	8b 8d 50 ff ff ff    	mov    -0xb0(%ebp),%ecx
41a37f:	ba 00 03 00 00       	mov    $0x300,%edx
41a384:	6a 24                	push   $0x24
41a386:	58                   	pop    %eax
41a387:	81 39 00 ca 9a 3b    	cmpl   $0x3b9aca00,(%ecx)
41a38d:	0f 44 c2             	cmove  %edx,%eax
41a390:	83 7d 98 10          	cmpl   $0x10,-0x68(%ebp)
41a394:	89 85 5c ff ff ff    	mov    %eax,-0xa4(%ebp)
41a39a:	8d 45 84             	lea    -0x7c(%ebp),%eax
41a39d:	0f 43 45 84          	cmovae -0x7c(%ebp),%eax
41a3a1:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
41a3a7:	8a 00                	mov    (%eax),%al
41a3a9:	3c 7f                	cmp    $0x7f,%al
41a3ab:	0f 84 05 02 00 00    	je     0x41a5b6
41a3b1:	84 c0                	test   %al,%al
41a3b3:	0f 8e fd 01 00 00    	jle    0x41a5b6
41a3b9:	39 75 94             	cmp    %esi,-0x6c(%ebp)
41a3bc:	75 0a                	jne    0x41a3c8
41a3be:	33 c0                	xor    %eax,%eax
41a3c0:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
41a3c6:	eb 16                	jmp    0x41a3de
41a3c8:	8b 8d 60 ff ff ff    	mov    -0xa0(%ebp),%ecx
41a3ce:	8b 01                	mov    (%ecx),%eax
41a3d0:	ff 50 10             	call   *0x10(%eax)
41a3d3:	0f b7 c0             	movzwl %ax,%eax
41a3d6:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
41a3dc:	33 c0                	xor    %eax,%eax
41a3de:	50                   	push   %eax
41a3df:	89 45 ac             	mov    %eax,-0x54(%ebp)
41a3e2:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
41a3e5:	89 45 b0             	mov    %eax,-0x50(%ebp)
41a3e8:	6a 01                	push   $0x1
41a3ea:	89 45 ac             	mov    %eax,-0x54(%ebp)
41a3ed:	c7 45 b0 0f 00 00 00 	movl   $0xf,-0x50(%ebp)
41a3f4:	88 45 9c             	mov    %al,-0x64(%ebp)
41a3f7:	e8 42 53 00 00       	call   0x41f73e
41a3fc:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
41a400:	8b cf                	mov    %edi,%ecx
41a402:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a408:	33 f6                	xor    %esi,%esi
41a40a:	e8 e5 67 00 00       	call   0x420bf4
41a40f:	84 c0                	test   %al,%al
41a411:	0f 85 0a 01 00 00    	jne    0x41a521
41a417:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a41b:	75 07                	jne    0x41a424
41a41d:	8b cf                	mov    %edi,%ecx
41a41f:	e8 71 20 00 00       	call   0x41c495
41a424:	0f b7 4f 06          	movzwl 0x6(%edi),%ecx
41a428:	8d 45 b4             	lea    -0x4c(%ebp),%eax
41a42b:	66 39 08             	cmp    %cx,(%eax)
41a42e:	74 0a                	je     0x41a43a
41a430:	83 c0 02             	add    $0x2,%eax
41a433:	8d 55 ec             	lea    -0x14(%ebp),%edx
41a436:	3b c2                	cmp    %edx,%eax
41a438:	75 f1                	jne    0x41a42b
41a43a:	8d 4d b4             	lea    -0x4c(%ebp),%ecx
41a43d:	2b c1                	sub    %ecx,%eax
41a43f:	d1 f8                	sar    $1,%eax
41a441:	83 f8 16             	cmp    $0x16,%eax
41a444:	73 59                	jae    0x41a49f
41a446:	8b 8d 6c ff ff ff    	mov    -0x94(%ebp),%ecx
41a44c:	c6 45 83 01          	movb   $0x1,-0x7d(%ebp)
41a450:	39 8d 5c ff ff ff    	cmp    %ecx,-0xa4(%ebp)
41a456:	7f 08                	jg     0x41a460
41a458:	ff 85 70 ff ff ff    	incl   -0x90(%ebp)
41a45e:	eb 1e                	jmp    0x41a47e
41a460:	85 c0                	test   %eax,%eax
41a462:	75 04                	jne    0x41a468
41a464:	85 c9                	test   %ecx,%ecx
41a466:	74 16                	je     0x41a47e
41a468:	8a 80 c4 64 49 00    	mov    0x4964c4(%eax),%al
41a46e:	88 03                	mov    %al,(%ebx)
41a470:	43                   	inc    %ebx
41a471:	41                   	inc    %ecx
41a472:	89 9d 74 ff ff ff    	mov    %ebx,-0x8c(%ebp)
41a478:	89 8d 6c ff ff ff    	mov    %ecx,-0x94(%ebp)
41a47e:	83 7d b0 10          	cmpl   $0x10,-0x50(%ebp)
41a482:	8d 45 9c             	lea    -0x64(%ebp),%eax
41a485:	0f 43 45 9c          	cmovae -0x64(%ebp),%eax
41a489:	80 3c 30 7f          	cmpb   $0x7f,(%eax,%esi,1)
41a48d:	74 5a                	je     0x41a4e9
41a48f:	83 7d b0 10          	cmpl   $0x10,-0x50(%ebp)
41a493:	8d 45 9c             	lea    -0x64(%ebp),%eax
41a496:	0f 43 45 9c          	cmovae -0x64(%ebp),%eax
41a49a:	fe 04 30             	incb   (%eax,%esi,1)
41a49d:	eb 4a                	jmp    0x41a4e9
41a49f:	8b 4d b0             	mov    -0x50(%ebp),%ecx
41a4a2:	8d 45 9c             	lea    -0x64(%ebp),%eax
41a4a5:	8b 55 9c             	mov    -0x64(%ebp),%edx
41a4a8:	83 f9 10             	cmp    $0x10,%ecx
41a4ab:	0f 43 c2             	cmovae %edx,%eax
41a4ae:	80 3c 30 00          	cmpb   $0x0,(%eax,%esi,1)
41a4b2:	74 57                	je     0x41a50b
41a4b4:	66 83 bd 64 ff ff ff 	cmpw   $0x0,-0x9c(%ebp)
41a4bb:	00
41a4bc:	74 4d                	je     0x41a50b
41a4be:	80 7f 04 00          	cmpb   $0x0,0x4(%edi)
41a4c2:	75 0d                	jne    0x41a4d1
41a4c4:	8b cf                	mov    %edi,%ecx
41a4c6:	e8 ca 1f 00 00       	call   0x41c495
41a4cb:	8b 4d b0             	mov    -0x50(%ebp),%ecx
41a4ce:	8b 55 9c             	mov    -0x64(%ebp),%edx
41a4d1:	0f b7 47 06          	movzwl 0x6(%edi),%eax
41a4d5:	66 3b 85 64 ff ff ff 	cmp    -0x9c(%ebp),%ax
41a4dc:	75 2d                	jne    0x41a50b
41a4de:	6a 00                	push   $0x0
41a4e0:	8d 4d 9c             	lea    -0x64(%ebp),%ecx
41a4e3:	e8 aa 81 00 00       	call   0x422692
41a4e8:	46                   	inc    %esi
41a4e9:	8b cf                	mov    %edi,%ecx
41a4eb:	e8 df 08 00 00       	call   0x41adcf
41a4f0:	ff b5 7c ff ff ff    	push   -0x84(%ebp)
41a4f6:	8b cf                	mov    %edi,%ecx
41a4f8:	e8 f7 66 00 00       	call   0x420bf4
41a4fd:	84 c0                	test   %al,%al
41a4ff:	0f 84 12 ff ff ff    	je     0x41a417
41a505:	8b 4d b0             	mov    -0x50(%ebp),%ecx
41a508:	8b 55 9c             	mov    -0x64(%ebp),%edx
41a50b:	85 f6                	test   %esi,%esi
41a50d:	74 18                	je     0x41a527
41a50f:	83 f9 10             	cmp    $0x10,%ecx
41a512:	8d 45 9c             	lea    -0x64(%ebp),%eax
41a515:	0f 43 c2             	cmovae %edx,%eax
41a518:	80 3c 30 00          	cmpb   $0x0,(%eax,%esi,1)
41a51c:	7e 7a                	jle    0x41a598
41a51e:	46                   	inc    %esi
41a51f:	eb 06                	jmp    0x41a527
41a521:	8b 4d b0             	mov    -0x50(%ebp),%ecx
41a524:	8b 55 9c             	mov    -0x64(%ebp),%edx
41a527:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
41a52d:	89 85 64 ff ff ff    	mov    %eax,-0x9c(%ebp)
41a533:	85 f6                	test   %esi,%esi
41a535:	74 68                	je     0x41a59f
41a537:	8a 00                	mov    (%eax),%al
41a539:	88 85 7a ff ff ff    	mov    %al,-0x86(%ebp)
41a53f:	3c 7f                	cmp    $0x7f,%al
41a541:	74 5c                	je     0x41a59f
41a543:	83 ee 01             	sub    $0x1,%esi
41a546:	74 17                	je     0x41a55f
41a548:	83 f9 10             	cmp    $0x10,%ecx
41a54b:	8d 45 9c             	lea    -0x64(%ebp),%eax
41a54e:	8a 8d 7a ff ff ff    	mov    -0x86(%ebp),%cl
41a554:	0f 43 c2             	cmovae %edx,%eax
41a557:	3a 0c 30             	cmp    (%eax,%esi,1),%cl
41a55a:	8b 4d b0             	mov    -0x50(%ebp),%ecx
41a55d:	75 39                	jne    0x41a598
41a55f:	85 f6                	test   %esi,%esi
41a561:	75 16                	jne    0x41a579
41a563:	83 f9 10             	cmp    $0x10,%ecx
41a566:	8d 45 9c             	lea    -0x64(%ebp),%eax
41a569:	8a 8d 7a ff ff ff    	mov    -0x86(%ebp),%cl
41a56f:	0f 43 c2             	cmovae %edx,%eax
41a572:	3a 08                	cmp    (%eax),%cl
41a574:	8b 4d b0             	mov    -0x50(%ebp),%ecx
41a577:	7c 1f                	jl     0x41a598
41a579:	8b 85 68 ff ff ff    	mov    -0x98(%ebp),%eax
41a57f:	40                   	inc    %eax
41a580:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
41a586:	80 38 00             	cmpb   $0x0,(%eax)
41a589:	0f 4e 85 64 ff ff ff 	cmovle -0x9c(%ebp),%eax
41a590:	89 85 68 ff ff ff    	mov    %eax,-0x98(%ebp)
41a596:	eb 95                	jmp    0x41a52d
41a598:	c6 85 7b ff ff ff 01 	movb   $0x1,-0x85(%ebp)
41a59f:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
41a5a3:	8d 4d 9c             	lea    -0x64(%ebp),%ecx