41a2b3:	7d 04                	jge    0x41a2b9
41a2b5:	8b f9                	mov    %ecx,%edi
41a2b7:	f7 df                	neg    %edi
41a2b9:	57                   	push   %edi
41a2ba:	56                   	push   %esi
41a2bb:	ff 75 0c             	push   0xc(%ebp)
41a2be:	53                   	push   %ebx
41a2bf:	e8 e5 01 00 00       	call   0x41a4a9
41a2c4:	57                   	push   %edi
41a2c5:	6a 30                	push   $0x30
41a2c7:	56                   	push   %esi
41a2c8:	e8 13 e7 fe ff       	call   0x4089e0
41a2cd:	83 c4 1c             	add    $0x1c,%esp
41a2d0:	80 7d fc 00          	cmpb   $0x0,-0x4(%ebp)
41a2d4:	5f                   	pop    %edi
41a2d5:	5e                   	pop    %esi
41a2d6:	5b                   	pop    %ebx
41a2d7:	74 0a                	je     0x41a2e3
41a2d9:	8b 45 f0             	mov    -0x10(%ebp),%eax
41a2dc:	83 a0 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%eax)
41a2e3:	33 c0                	xor    %eax,%eax
41a2e5:	8b e5                	mov    %ebp,%esp
41a2e7:	5d                   	pop    %ebp
41a2e8:	c3                   	ret
41a2e9:	8b ff                	mov    %edi,%edi
41a2eb:	55                   	push   %ebp
41a2ec:	8b ec                	mov    %esp,%ebp
41a2ee:	83 ec 10             	sub    $0x10,%esp
41a2f1:	53                   	push   %ebx
41a2f2:	56                   	push   %esi
41a2f3:	57                   	push   %edi
41a2f4:	ff 75 18             	push   0x18(%ebp)
41a2f7:	33 c0                	xor    %eax,%eax
41a2f9:	8d 7d f0             	lea    -0x10(%ebp),%edi
41a2fc:	ff 75 14             	push   0x14(%ebp)
41a2ff:	ab                   	stos   %eax,%es:(%edi)
41a300:	ab                   	stos   %eax,%es:(%edi)
41a301:	ab                   	stos   %eax,%es:(%edi)
41a302:	8d 45 f0             	lea    -0x10(%ebp),%eax
41a305:	8b 7d 1c             	mov    0x1c(%ebp),%edi
41a308:	50                   	push   %eax
41a309:	8b 45 08             	mov    0x8(%ebp),%eax
41a30c:	57                   	push   %edi
41a30d:	ff 70 04             	push   0x4(%eax)
41a310:	ff 30                	push   (%eax)
41a312:	e8 d9 8c 00 00       	call   0x422ff0
41a317:	8b 45 f4             	mov    -0xc(%ebp),%eax
41a31a:	33 c9                	xor    %ecx,%ecx
41a31c:	8b 5d 0c             	mov    0xc(%ebp),%ebx
41a31f:	83 c4 18             	add    $0x18,%esp
41a322:	83 7d f0 2d          	cmpl   $0x2d,-0x10(%ebp)
41a326:	0f 94 c1             	sete   %cl
41a329:	48                   	dec    %eax
41a32a:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a32d:	83 c8 ff             	or     $0xffffffff,%eax
41a330:	8d 34 19             	lea    (%ecx,%ebx,1),%esi
41a333:	39 45 10             	cmp    %eax,0x10(%ebp)
41a336:	74 05                	je     0x41a33d
41a338:	8b 45 10             	mov    0x10(%ebp),%eax
41a33b:	2b c1                	sub    %ecx,%eax
41a33d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
41a340:	51                   	push   %ecx
41a341:	57                   	push   %edi
41a342:	50                   	push   %eax
41a343:	56                   	push   %esi
41a344:	e8 c1 8b 00 00       	call   0x422f0a
41a349:	83 c4 10             	add    $0x10,%esp
41a34c:	85 c0                	test   %eax,%eax
41a34e:	74 05                	je     0x41a355
41a350:	c6 03 00             	movb   $0x0,(%ebx)
41a353:	eb 55                	jmp    0x41a3aa
41a355:	8b 45 f4             	mov    -0xc(%ebp),%eax
41a358:	48                   	dec    %eax
41a359:	39 45 fc             	cmp    %eax,-0x4(%ebp)
41a35c:	0f 9c c1             	setl   %cl
41a35f:	83 f8 fc             	cmp    $0xfffffffc,%eax
41a362:	7c 2a                	jl     0x41a38e
41a364:	3b c7                	cmp    %edi,%eax
41a366:	7d 26                	jge    0x41a38e
41a368:	84 c9                	test   %cl,%cl
41a36a:	74 0a                	je     0x41a376
41a36c:	8a 06                	mov    (%esi),%al
41a36e:	46                   	inc    %esi
41a36f:	84 c0                	test   %al,%al
41a371:	75 f9                	jne    0x41a36c
41a373:	88 46 fe             	mov    %al,-0x2(%esi)
41a376:	ff 75 28             	push   0x28(%ebp)
41a379:	8d 45 f0             	lea    -0x10(%ebp),%eax
41a37c:	6a 01                	push   $0x1
41a37e:	50                   	push   %eax
41a37f:	57                   	push   %edi
41a380:	ff 75 10             	push   0x10(%ebp)
41a383:	53                   	push   %ebx
41a384:	e8 89 fe ff ff       	call   0x41a212
41a389:	83 c4 18             	add    $0x18,%esp
41a38c:	eb 1c                	jmp    0x41a3aa
41a38e:	ff 75 28             	push   0x28(%ebp)
41a391:	8d 45 f0             	lea    -0x10(%ebp),%eax
41a394:	6a 01                	push   $0x1
41a396:	50                   	push   %eax
41a397:	ff 75 24             	push   0x24(%ebp)
41a39a:	ff 75 20             	push   0x20(%ebp)
41a39d:	57                   	push   %edi
41a39e:	ff 75 10             	push   0x10(%ebp)
41a3a1:	53                   	push   %ebx
41a3a2:	e8 93 fc ff ff       	call   0x41a03a
41a3a7:	83 c4 20             	add    $0x20,%esp
41a3aa:	5f                   	pop    %edi
41a3ab:	5e                   	pop    %esi
41a3ac:	5b                   	pop    %ebx
41a3ad:	8b e5                	mov    %ebp,%esp
41a3af:	5d                   	pop    %ebp
41a3b0:	c3                   	ret
41a3b1:	8b ff                	mov    %edi,%edi
41a3b3:	55                   	push   %ebp
41a3b4:	8b ec                	mov    %esp,%ebp
41a3b6:	83 ec 48             	sub    $0x48,%esp
41a3b9:	a1 28 ba 43 00       	mov    0x43ba28,%eax
41a3be:	33 c5                	xor    %ebp,%eax
41a3c0:	89 45 fc             	mov    %eax,-0x4(%ebp)
41a3c3:	8b 55 14             	mov    0x14(%ebp),%edx
41a3c6:	8b 4d 10             	mov    0x10(%ebp),%ecx
41a3c9:	53                   	push   %ebx
41a3ca:	8a 5d 0c             	mov    0xc(%ebp),%bl
41a3cd:	0f b6 c3             	movzbl %bl,%eax
41a3d0:	83 c0 04             	add    $0x4,%eax
41a3d3:	3b d0                	cmp    %eax,%edx
41a3d5:	73 15                	jae    0x41a3ec
41a3d7:	6a 0c                	push   $0xc
41a3d9:	c6 01 00             	movb   $0x0,(%ecx)
41a3dc:	58                   	pop    %eax
41a3dd:	8b 4d fc             	mov    -0x4(%ebp),%ecx
41a3e0:	33 cd                	xor    %ebp,%ecx
41a3e2:	5b                   	pop    %ebx
41a3e3:	e8 78 cc fe ff       	call   0x407060
41a3e8:	8b e5                	mov    %ebp,%esp
41a3ea:	5d                   	pop    %ebp
41a3eb:	c3                   	ret
41a3ec:	84 db                	test   %bl,%bl
41a3ee:	74 08                	je     0x41a3f8
41a3f0:	c6 01 2d             	movb   $0x2d,(%ecx)
41a3f3:	41                   	inc    %ecx
41a3f4:	4a                   	dec    %edx
41a3f5:	c6 01 00             	movb   $0x0,(%ecx)
41a3f8:	b8 2c cd 42 00       	mov    $0x42cd2c,%eax
41a3fd:	c7 45 dc 3c cd 42 00 	movl   $0x42cd3c,-0x24(%ebp)
41a404:	89 45 bc             	mov    %eax,-0x44(%ebp)
41a407:	33 db                	xor    %ebx,%ebx
41a409:	38 5d 18             	cmp    %bl,0x18(%ebp)
41a40c:	89 45 c0             	mov    %eax,-0x40(%ebp)
41a40f:	b8 30 cd 42 00       	mov    $0x42cd30,%eax
41a414:	89 45 c4             	mov    %eax,-0x3c(%ebp)
41a417:	0f 95 c3             	setne  %bl
41a41a:	89 45 c8             	mov    %eax,-0x38(%ebp)
41a41d:	4b                   	dec    %ebx
41a41e:	b8 38 cd 42 00       	mov    $0x42cd38,%eax
41a423:	c7 45 e4 48 cd 42 00 	movl   $0x42cd48,-0x1c(%ebp)
41a42a:	89 45 d4             	mov    %eax,-0x2c(%ebp)
41a42d:	83 e3 02             	and    $0x2,%ebx
41a430:	89 45 d8             	mov    %eax,-0x28(%ebp)
41a433:	89 45 e8             	mov    %eax,-0x18(%ebp)
41a436:	89 45 f8             	mov    %eax,-0x8(%ebp)
41a439:	8b 45 08             	mov    0x8(%ebp),%eax
41a43c:	56                   	push   %esi
41a43d:	be 34 cd 42 00       	mov    $0x42cd34,%esi
41a442:	c7 45 ec 54 cd 42 00 	movl   $0x42cd54,-0x14(%ebp)
41a449:	57                   	push   %edi
41a44a:	8d 3c 85 fc ff ff ff 	lea    -0x4(,%eax,4),%edi
41a451:	89 75 cc             	mov    %esi,-0x34(%ebp)
41a454:	8d 04 1f             	lea    (%edi,%ebx,1),%eax
41a457:	89 75 d0             	mov    %esi,-0x30(%ebp)
41a45a:	89 75 e0             	mov    %esi,-0x20(%ebp)
41a45d:	89 75 f0             	mov    %esi,-0x10(%ebp)
41a460:	c7 45 f4 60 cd 42 00 	movl   $0x42cd60,-0xc(%ebp)
41a467:	8b 74 85 bc          	mov    -0x44(%ebp,%eax,4),%esi
41a46b:	8d 46 01             	lea    0x1(%esi),%eax
41a46e:	89 45 b8             	mov    %eax,-0x48(%ebp)
41a471:	8a 06                	mov    (%esi),%al
41a473:	46                   	inc    %esi
41a474:	84 c0                	test   %al,%al
41a476:	75 f9                	jne    0x41a471
41a478:	2b 75 b8             	sub    -0x48(%ebp),%esi
41a47b:	3b f2                	cmp    %edx,%esi
41a47d:	1b c0                	sbb    %eax,%eax
41a47f:	47                   	inc    %edi
41a480:	03 c7                	add    %edi,%eax
41a482:	03 c3                	add    %ebx,%eax
41a484:	ff 74 85 bc          	push   -0x44(%ebp,%eax,4)
41a488:	52                   	push   %edx
41a489:	51                   	push   %ecx
41a48a:	e8 d6 d6 ff ff       	call   0x417b65
41a48f:	83 c4 0c             	add    $0xc,%esp
41a492:	5f                   	pop    %edi
41a493:	5e                   	pop    %esi
41a494:	85 c0                	test   %eax,%eax
41a496:	0f 84 41 ff ff ff    	je     0x41a3dd
41a49c:	33 c0                	xor    %eax,%eax
41a49e:	50                   	push   %eax
41a49f:	50                   	push   %eax
41a4a0:	50                   	push   %eax
41a4a1:	50                   	push   %eax
41a4a2:	50                   	push   %eax
41a4a3:	e8 67 18 ff ff       	call   0x40bd0f
41a4a8:	cc                   	int3
41a4a9:	8b ff                	mov    %edi,%edi
41a4ab:	55                   	push   %ebp
41a4ac:	8b ec                	mov    %esp,%ebp
41a4ae:	8b 55 14             	mov    0x14(%ebp),%edx
41a4b1:	85 d2                	test   %edx,%edx
41a4b3:	74 26                	je     0x41a4db
41a4b5:	56                   	push   %esi
41a4b6:	8b 75 10             	mov    0x10(%ebp),%esi
41a4b9:	8b ce                	mov    %esi,%ecx
41a4bb:	57                   	push   %edi
41a4bc:	8d 79 01             	lea    0x1(%ecx),%edi
41a4bf:	8a 01                	mov    (%ecx),%al
41a4c1:	41                   	inc    %ecx
41a4c2:	84 c0                	test   %al,%al
41a4c4:	75 f9                	jne    0x41a4bf
41a4c6:	2b cf                	sub    %edi,%ecx
41a4c8:	8d 41 01             	lea    0x1(%ecx),%eax
41a4cb:	50                   	push   %eax
41a4cc:	8d 04 16             	lea    (%esi,%edx,1),%eax
41a4cf:	56                   	push   %esi
41a4d0:	50                   	push   %eax
41a4d1:	e8 4a d5 fe ff       	call   0x407a20
41a4d6:	83 c4 0c             	add    $0xc,%esp
41a4d9:	5f                   	pop    %edi
41a4da:	5e                   	pop    %esi
41a4db:	5d                   	pop    %ebp
41a4dc:	c3                   	ret
41a4dd:	8b ff                	mov    %edi,%edi
41a4df:	55                   	push   %ebp
41a4e0:	8b ec                	mov    %esp,%ebp
41a4e2:	51                   	push   %ecx
41a4e3:	51                   	push   %ecx
41a4e4:	56                   	push   %esi
41a4e5:	57                   	push   %edi
41a4e6:	8b 7d 0c             	mov    0xc(%ebp),%edi
41a4e9:	85 ff                	test   %edi,%edi
41a4eb:	75 16                	jne    0x41a503
41a4ed:	e8 79 a5 ff ff       	call   0x414a6b
41a4f2:	6a 16                	push   $0x16
41a4f4:	5e                   	pop    %esi
41a4f5:	89 30                	mov    %esi,(%eax)
41a4f7:	e8 e6 17 ff ff       	call   0x40bce2
41a4fc:	8b c6                	mov    %esi,%eax
41a4fe:	e9 1e 01 00 00       	jmp    0x41a621
41a503:	53                   	push   %ebx
41a504:	8b 5d 10             	mov    0x10(%ebp),%ebx
41a507:	85 db                	test   %ebx,%ebx
41a509:	74 0c                	je     0x41a517
41a50b:	83 7d 14 00          	cmpl   $0x0,0x14(%ebp)
41a50f:	74 06                	je     0x41a517
41a511:	83 7d 18 00          	cmpl   $0x0,0x18(%ebp)
41a515:	77 16                	ja     0x41a52d
41a517:	e8 4f a5 ff ff       	call   0x414a6b
41a51c:	6a 16                	push   $0x16
41a51e:	5e                   	pop    %esi
41a51f:	89 30                	mov    %esi,(%eax)
41a521:	e8 bc 17 ff ff       	call   0x40bce2
41a526:	8b c6                	mov    %esi,%eax
41a528:	e9 f3 00 00 00       	jmp    0x41a620
41a52d:	8b 75 1c             	mov    0x1c(%ebp),%esi
41a530:	83 fe 41             	cmp    $0x41,%esi
41a533:	74 13                	je     0x41a548
41a535:	83 fe 45             	cmp    $0x45,%esi
41a538:	74 0e                	je     0x41a548
41a53a:	83 fe 46             	cmp    $0x46,%esi
41a53d:	74 09                	je     0x41a548
41a53f:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
41a543:	83 fe 47             	cmp    $0x47,%esi
41a546:	75 04                	jne    0x41a54c
41a548:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
41a54c:	8b 45 24             	mov    0x24(%ebp),%eax
41a54f:	83 e0 08             	and    $0x8,%eax
41a552:	83 c8 00             	or     $0x0,%eax
41a555:	75 32                	jne    0x41a589
41a557:	ff 75 08             	push   0x8(%ebp)
41a55a:	e8 b3 f6 ff ff       	call   0x419c12
41a55f:	89 45 f8             	mov    %eax,-0x8(%ebp)
41a562:	59                   	pop    %ecx
41a563:	85 c0                	test   %eax,%eax
41a565:	74 22                	je     0x41a589
41a567:	ff 75 fc             	push   -0x4(%ebp)
41a56a:	53                   	push   %ebx
41a56b:	57                   	push   %edi
41a56c:	ff 75 08             	push   0x8(%ebp)
41a56f:	e8 0a f7 ff ff       	call   0x419c7e
41a574:	59                   	pop    %ecx
41a575:	0f b6 c0             	movzbl %al,%eax
41a578:	50                   	push   %eax
41a579:	ff 75 f8             	push   -0x8(%ebp)
41a57c:	e8 30 fe ff ff       	call   0x41a3b1
41a581:	83 c4 14             	add    $0x14,%esp
41a584:	e9 97 00 00 00       	jmp    0x41a620
41a589:	8b 45 24             	mov    0x24(%ebp),%eax
41a58c:	83 e0 10             	and    $0x10,%eax
41a58f:	83 c8 00             	or     $0x0,%eax
41a592:	74 04                	je     0x41a598
41a594:	6a 03                	push   $0x3
41a596:	eb 02                	jmp    0x41a59a
41a598:	6a 02                	push   $0x2
41a59a:	58                   	pop    %eax
41a59b:	83 fe 61             	cmp    $0x61,%esi
41a59e:	7f 28                	jg     0x41a5c8
41a5a0:	74 0a                	je     0x41a5ac
41a5a2:	83 ee 41             	sub    $0x41,%esi
41a5a5:	74 05                	je     0x41a5ac
41a5a7:	83 ee 04             	sub    $0x4,%esi
41a5aa:	eb 1f                	jmp    0x41a5cb
41a5ac:	ff 75 2c             	push   0x2c(%ebp)
41a5af:	50                   	push   %eax
41a5b0:	ff 75 fc             	push   -0x4(%ebp)
41a5b3:	ff 75 20             	push   0x20(%ebp)
41a5b6:	ff 75 18             	push   0x18(%ebp)
41a5b9:	ff 75 14             	push   0x14(%ebp)
41a5bc:	53                   	push   %ebx
41a5bd:	57                   	push   %edi
41a5be:	ff 75 08             	push   0x8(%ebp)
41a5c1:	e8 d6 f6 ff ff       	call   0x419c9c
41a5c6:	eb 55                	jmp    0x41a61d
41a5c8:	83 ee 65             	sub    $0x65,%esi
41a5cb:	ff 75 2c             	push   0x2c(%ebp)
41a5ce:	74 36                	je     0x41a606
41a5d0:	83 ee 01             	sub    $0x1,%esi
41a5d3:	74 19                	je     0x41a5ee
41a5d5:	50                   	push   %eax
41a5d6:	ff 75 fc             	push   -0x4(%ebp)
41a5d9:	ff 75 20             	push   0x20(%ebp)
41a5dc:	ff 75 18             	push   0x18(%ebp)
41a5df:	ff 75 14             	push   0x14(%ebp)
41a5e2:	53                   	push   %ebx
41a5e3:	57                   	push   %edi
41a5e4:	ff 75 08             	push   0x8(%ebp)
41a5e7:	e8 fd fc ff ff       	call   0x41a2e9
41a5ec:	eb 2f                	jmp    0x41a61d
41a5ee:	ff 75 20             	push   0x20(%ebp)
41a5f1:	ff 75 18             	push   0x18(%ebp)
41a5f4:	ff 75 14             	push   0x14(%ebp)
41a5f7:	53                   	push   %ebx
41a5f8:	57                   	push   %edi
41a5f9:	ff 75 08             	push   0x8(%ebp)
41a5fc:	e8 84 fb ff ff       	call   0x41a185
41a601:	83 c4 1c             	add    $0x1c,%esp
41a604:	eb 1a                	jmp    0x41a620
41a606:	50                   	push   %eax
41a607:	ff 75 fc             	push   -0x4(%ebp)
41a60a:	ff 75 20             	push   0x20(%ebp)
41a60d:	ff 75 18             	push   0x18(%ebp)