410354:	8b cf                	mov    %edi,%ecx
410356:	83 e1 1f             	and    $0x1f,%ecx
410359:	a1 b4 49 43 00       	mov    0x4349b4,%eax
41035e:	3b c7                	cmp    %edi,%eax
410360:	74 11                	je     0x410373
410362:	33 f8                	xor    %eax,%edi
410364:	d3 cf                	ror    %cl,%edi
410366:	53                   	push   %ebx
410367:	53                   	push   %ebx
410368:	53                   	push   %ebx
410369:	8b cf                	mov    %edi,%ecx
41036b:	ff 15 54 41 42 00    	call   *0x424154
410371:	ff d7                	call   *%edi
410373:	68 c8 49 43 00       	push   $0x4349c8
410378:	eb 0a                	jmp    0x410384
41037a:	83 f8 01             	cmp    $0x1,%eax
41037d:	75 0b                	jne    0x41038a
41037f:	68 d4 49 43 00       	push   $0x4349d4
410384:	e8 64 1d 00 00       	call   0x4120ed
410389:	59                   	pop    %ecx
41038a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
410391:	8b 06                	mov    (%esi),%eax
410393:	39 18                	cmp    %ebx,(%eax)
410395:	75 11                	jne    0x4103a8
410397:	68 c0 41 42 00       	push   $0x4241c0
41039c:	68 b0 41 42 00       	push   $0x4241b0
4103a1:	e8 b6 fe ff ff       	call   0x41025c
4103a6:	59                   	pop    %ecx
4103a7:	59                   	pop    %ecx
4103a8:	68 c8 41 42 00       	push   $0x4241c8
4103ad:	68 c4 41 42 00       	push   $0x4241c4
4103b2:	e8 a5 fe ff ff       	call   0x41025c
4103b7:	59                   	pop    %ecx
4103b8:	59                   	pop    %ecx
4103b9:	8b 46 04             	mov    0x4(%esi),%eax
4103bc:	39 18                	cmp    %ebx,(%eax)
4103be:	75 0d                	jne    0x4103cd
4103c0:	c6 05 b8 49 43 00 01 	movb   $0x1,0x4349b8
4103c7:	8b 46 08             	mov    0x8(%esi),%eax
4103ca:	c6 00 01             	movb   $0x1,(%eax)
4103cd:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4103d0:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4103d7:	59                   	pop    %ecx
4103d8:	5f                   	pop    %edi
4103d9:	5e                   	pop    %esi
4103da:	5b                   	pop    %ebx
4103db:	c9                   	leave
4103dc:	c3                   	ret
4103dd:	8b 45 ec             	mov    -0x14(%ebp),%eax
4103e0:	8b 00                	mov    (%eax),%eax
4103e2:	ff 30                	push   (%eax)
4103e4:	e8 0d 00 00 00       	call   0x4103f6
4103e9:	83 c4 04             	add    $0x4,%esp
4103ec:	c3                   	ret
4103ed:	8b 65 e8             	mov    -0x18(%ebp),%esp
4103f0:	e8 1d 1f 00 00       	call   0x412312
4103f5:	cc                   	int3
4103f6:	8b ff                	mov    %edi,%edi
4103f8:	55                   	push   %ebp
4103f9:	8b ec                	mov    %esp,%ebp
4103fb:	33 c0                	xor    %eax,%eax
4103fd:	81 7d 08 63 73 6d e0 	cmpl   $0xe06d7363,0x8(%ebp)
410404:	0f 94 c0             	sete   %al
410407:	5d                   	pop    %ebp
410408:	c3                   	ret
410409:	8b ff                	mov    %edi,%edi
41040b:	55                   	push   %ebp
41040c:	8b ec                	mov    %esp,%ebp
41040e:	83 ec 18             	sub    $0x18,%esp
410411:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
410415:	75 12                	jne    0x410429
410417:	e8 90 7a ff ff       	call   0x407eac
41041c:	84 c0                	test   %al,%al
41041e:	74 09                	je     0x410429
410420:	ff 75 08             	push   0x8(%ebp)
410423:	e8 87 00 00 00       	call   0x4104af
410428:	59                   	pop    %ecx
410429:	8d 45 0c             	lea    0xc(%ebp),%eax
41042c:	c6 45 ff 00          	movb   $0x0,-0x1(%ebp)
410430:	89 45 e8             	mov    %eax,-0x18(%ebp)
410433:	8d 4d fe             	lea    -0x2(%ebp),%ecx
410436:	8d 45 10             	lea    0x10(%ebp),%eax
410439:	89 45 ec             	mov    %eax,-0x14(%ebp)
41043c:	8d 45 ff             	lea    -0x1(%ebp),%eax
41043f:	6a 02                	push   $0x2
410441:	89 45 f0             	mov    %eax,-0x10(%ebp)
410444:	58                   	pop    %eax
410445:	89 45 f8             	mov    %eax,-0x8(%ebp)
410448:	89 45 f4             	mov    %eax,-0xc(%ebp)
41044b:	8d 45 f8             	lea    -0x8(%ebp),%eax
41044e:	50                   	push   %eax
41044f:	8d 45 e8             	lea    -0x18(%ebp),%eax
410452:	50                   	push   %eax
410453:	8d 45 f4             	lea    -0xc(%ebp),%eax
410456:	50                   	push   %eax
410457:	e8 73 fe ff ff       	call   0x4102cf
41045c:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
410460:	74 02                	je     0x410464
410462:	c9                   	leave
410463:	c3                   	ret
410464:	ff 75 08             	push   0x8(%ebp)
410467:	e8 01 00 00 00       	call   0x41046d
41046c:	cc                   	int3
41046d:	8b ff                	mov    %edi,%edi
41046f:	55                   	push   %ebp
410470:	8b ec                	mov    %esp,%ebp
410472:	e8 84 af 00 00       	call   0x41b3fb
410477:	83 f8 01             	cmp    $0x1,%eax
41047a:	74 20                	je     0x41049c
41047c:	64 a1 30 00 00 00    	mov    %fs:0x30,%eax
410482:	8b 40 68             	mov    0x68(%eax),%eax
410485:	c1 e8 08             	shr    $0x8,%eax
410488:	a8 01                	test   $0x1,%al
41048a:	75 10                	jne    0x41049c
41048c:	ff 75 08             	push   0x8(%ebp)
41048f:	ff 15 68 40 42 00    	call   *0x424068
410495:	50                   	push   %eax
410496:	ff 15 6c 40 42 00    	call   *0x42406c
41049c:	ff 75 08             	push   0x8(%ebp)
41049f:	e8 0b 00 00 00       	call   0x4104af
4104a4:	59                   	pop    %ecx
4104a5:	ff 75 08             	push   0x8(%ebp)
4104a8:	ff 15 c8 40 42 00    	call   *0x4240c8
4104ae:	cc                   	int3
4104af:	8b ff                	mov    %edi,%edi
4104b1:	55                   	push   %ebp
4104b2:	8b ec                	mov    %esp,%ebp
4104b4:	51                   	push   %ecx
4104b5:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4104b9:	8d 45 fc             	lea    -0x4(%ebp),%eax
4104bc:	50                   	push   %eax
4104bd:	68 cc 74 42 00       	push   $0x4274cc
4104c2:	6a 00                	push   $0x0
4104c4:	ff 15 cc 40 42 00    	call   *0x4240cc
4104ca:	85 c0                	test   %eax,%eax
4104cc:	74 23                	je     0x4104f1
4104ce:	56                   	push   %esi
4104cf:	68 e4 74 42 00       	push   $0x4274e4
4104d4:	ff 75 fc             	push   -0x4(%ebp)
4104d7:	ff 15 00 40 42 00    	call   *0x424000
4104dd:	8b f0                	mov    %eax,%esi
4104df:	85 f6                	test   %esi,%esi
4104e1:	74 0d                	je     0x4104f0
4104e3:	ff 75 08             	push   0x8(%ebp)
4104e6:	8b ce                	mov    %esi,%ecx
4104e8:	ff 15 54 41 42 00    	call   *0x424154
4104ee:	ff d6                	call   *%esi
4104f0:	5e                   	pop    %esi
4104f1:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
4104f5:	74 09                	je     0x410500
4104f7:	ff 75 fc             	push   -0x4(%ebp)
4104fa:	ff 15 b4 40 42 00    	call   *0x4240b4
410500:	c9                   	leave
410501:	c3                   	ret
410502:	8b ff                	mov    %edi,%edi
410504:	55                   	push   %ebp
410505:	8b ec                	mov    %esp,%ebp
410507:	8b 45 08             	mov    0x8(%ebp),%eax
41050a:	a3 b4 49 43 00       	mov    %eax,0x4349b4
41050f:	5d                   	pop    %ebp
410510:	c3                   	ret
410511:	6a 01                	push   $0x1
410513:	6a 02                	push   $0x2
410515:	6a 00                	push   $0x0
410517:	e8 ed fe ff ff       	call   0x410409
41051c:	83 c4 0c             	add    $0xc,%esp
41051f:	c3                   	ret
410520:	6a 01                	push   $0x1
410522:	6a 00                	push   $0x0
410524:	6a 00                	push   $0x0
410526:	e8 de fe ff ff       	call   0x410409
41052b:	83 c4 0c             	add    $0xc,%esp
41052e:	c3                   	ret
41052f:	8b ff                	mov    %edi,%edi
410531:	55                   	push   %ebp
410532:	8b ec                	mov    %esp,%ebp
410534:	6a 00                	push   $0x0
410536:	6a 02                	push   $0x2
410538:	ff 75 08             	push   0x8(%ebp)
41053b:	e8 c9 fe ff ff       	call   0x410409
410540:	83 c4 0c             	add    $0xc,%esp
410543:	5d                   	pop    %ebp
410544:	c3                   	ret
410545:	8b ff                	mov    %edi,%edi
410547:	55                   	push   %ebp
410548:	8b ec                	mov    %esp,%ebp
41054a:	a1 b4 49 43 00       	mov    0x4349b4,%eax
41054f:	3b 05 14 30 43 00    	cmp    0x433014,%eax
410555:	0f 85 b7 1d 00 00    	jne    0x412312
41055b:	ff 75 08             	push   0x8(%ebp)
41055e:	e8 e0 f6 ff ff       	call   0x40fc43
410563:	59                   	pop    %ecx
410564:	a3 b4 49 43 00       	mov    %eax,0x4349b4
410569:	5d                   	pop    %ebp
41056a:	c3                   	ret
41056b:	8b ff                	mov    %edi,%edi
41056d:	55                   	push   %ebp
41056e:	8b ec                	mov    %esp,%ebp
410570:	6a 00                	push   $0x0
410572:	6a 00                	push   $0x0
410574:	ff 75 08             	push   0x8(%ebp)
410577:	e8 8d fe ff ff       	call   0x410409
41057c:	83 c4 0c             	add    $0xc,%esp
41057f:	5d                   	pop    %ebp
410580:	c3                   	ret
410581:	8b ff                	mov    %edi,%edi
410583:	55                   	push   %ebp
410584:	8b ec                	mov    %esp,%ebp
410586:	8b 4d 08             	mov    0x8(%ebp),%ecx
410589:	85 c9                	test   %ecx,%ecx
41058b:	75 15                	jne    0x4105a2
41058d:	e8 69 e8 ff ff       	call   0x40edfb
410592:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
410598:	e8 e4 ca ff ff       	call   0x40d081
41059d:	6a 16                	push   $0x16
41059f:	58                   	pop    %eax
4105a0:	5d                   	pop    %ebp
4105a1:	c3                   	ret
4105a2:	a1 e8 4d 43 00       	mov    0x434de8,%eax
4105a7:	90                   	nop
4105a8:	89 01                	mov    %eax,(%ecx)
4105aa:	33 c0                	xor    %eax,%eax
4105ac:	5d                   	pop    %ebp
4105ad:	c3                   	ret
4105ae:	8b ff                	mov    %edi,%edi
4105b0:	55                   	push   %ebp
4105b1:	8b ec                	mov    %esp,%ebp
4105b3:	8b 45 08             	mov    0x8(%ebp),%eax
4105b6:	3d 00 40 00 00       	cmp    $0x4000,%eax
4105bb:	74 23                	je     0x4105e0
4105bd:	3d 00 80 00 00       	cmp    $0x8000,%eax
4105c2:	74 1c                	je     0x4105e0
4105c4:	3d 00 00 01 00       	cmp    $0x10000,%eax
4105c9:	74 15                	je     0x4105e0
4105cb:	e8 2b e8 ff ff       	call   0x40edfb
4105d0:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
4105d6:	e8 a6 ca ff ff       	call   0x40d081
4105db:	6a 16                	push   $0x16
4105dd:	58                   	pop    %eax
4105de:	5d                   	pop    %ebp
4105df:	c3                   	ret
4105e0:	b9 e8 4d 43 00       	mov    $0x434de8,%ecx
4105e5:	87 01                	xchg   %eax,(%ecx)
4105e7:	33 c0                	xor    %eax,%eax
4105e9:	5d                   	pop    %ebp
4105ea:	c3                   	ret
4105eb:	8b ff                	mov    %edi,%edi
4105ed:	55                   	push   %ebp
4105ee:	8b ec                	mov    %esp,%ebp
4105f0:	51                   	push   %ecx
4105f1:	8b 45 08             	mov    0x8(%ebp),%eax
4105f4:	53                   	push   %ebx
4105f5:	56                   	push   %esi
4105f6:	57                   	push   %edi
4105f7:	8b f8                	mov    %eax,%edi
4105f9:	83 e0 3f             	and    $0x3f,%eax
4105fc:	c1 ff 06             	sar    $0x6,%edi
4105ff:	6b d0 38             	imul   $0x38,%eax,%edx
410602:	8b 34 bd c0 4a 43 00 	mov    0x434ac0(,%edi,4),%esi
410609:	8a 44 16 28          	mov    0x28(%esi,%edx,1),%al
41060d:	8a 5c 16 29          	mov    0x29(%esi,%edx,1),%bl
410611:	0f b6 c8             	movzbl %al,%ecx
410614:	81 e1 80 00 00 00    	and    $0x80,%ecx
41061a:	89 4d fc             	mov    %ecx,-0x4(%ebp)
41061d:	8b 4d 0c             	mov    0xc(%ebp),%ecx
410620:	81 f9 00 40 00 00    	cmp    $0x4000,%ecx
410626:	74 50                	je     0x410678
410628:	81 f9 00 80 00 00    	cmp    $0x8000,%ecx
41062e:	74 40                	je     0x410670
410630:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
410636:	74 24                	je     0x41065c
410638:	81 f9 00 00 02 00    	cmp    $0x20000,%ecx
41063e:	74 1c                	je     0x41065c
410640:	81 f9 00 00 04 00    	cmp    $0x40000,%ecx
410646:	75 42                	jne    0x41068a
410648:	0c 80                	or     $0x80,%al
41064a:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
41064e:	8b 04 bd c0 4a 43 00 	mov    0x434ac0(,%edi,4),%eax
410655:	c6 44 10 29 01       	movb   $0x1,0x29(%eax,%edx,1)
41065a:	eb 2e                	jmp    0x41068a
41065c:	0c 80                	or     $0x80,%al
41065e:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
410662:	8b 04 bd c0 4a 43 00 	mov    0x434ac0(,%edi,4),%eax
410669:	c6 44 10 29 02       	movb   $0x2,0x29(%eax,%edx,1)
41066e:	eb 1a                	jmp    0x41068a
410670:	24 7f                	and    $0x7f,%al
410672:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
410676:	eb 12                	jmp    0x41068a
410678:	0c 80                	or     $0x80,%al
41067a:	88 44 16 28          	mov    %al,0x28(%esi,%edx,1)
41067e:	8b 0c bd c0 4a 43 00 	mov    0x434ac0(,%edi,4),%ecx
410685:	c6 44 11 29 00       	movb   $0x0,0x29(%ecx,%edx,1)
41068a:	83 7d fc 00          	cmpl   $0x0,-0x4(%ebp)
41068e:	75 07                	jne    0x410697
410690:	b8 00 80 00 00       	mov    $0x8000,%eax
410695:	eb 1e                	jmp    0x4106b5
410697:	84 db                	test   %bl,%bl
410699:	75 07                	jne    0x4106a2
41069b:	b8 00 40 00 00       	mov    $0x4000,%eax
4106a0:	eb 13                	jmp    0x4106b5
4106a2:	33 c0                	xor    %eax,%eax
4106a4:	80 fb 01             	cmp    $0x1,%bl
4106a7:	0f 95 c0             	setne  %al
4106aa:	48                   	dec    %eax
4106ab:	25 00 00 03 00       	and    $0x30000,%eax
4106b0:	05 00 00 01 00       	add    $0x10000,%eax
4106b5:	5f                   	pop    %edi
4106b6:	5e                   	pop    %esi
4106b7:	5b                   	pop    %ebx
4106b8:	c9                   	leave
4106b9:	c3                   	ret
4106ba:	6a 08                	push   $0x8
4106bc:	68 b8 16 43 00       	push   $0x4316b8
4106c1:	e8 fa 78 ff ff       	call   0x407fc0
4106c6:	8b 45 08             	mov    0x8(%ebp),%eax
4106c9:	ff 30                	push   (%eax)
4106cb:	e8 53 ca ff ff       	call   0x40d123
4106d0:	59                   	pop    %ecx
4106d1:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4106d5:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4106d8:	e8 c1 01 00 00       	call   0x41089e
4106dd:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
4106e4:	e8 12 00 00 00       	call   0x4106fb
4106e9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
4106ec:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
4106f3:	59                   	pop    %ecx
4106f4:	5f                   	pop    %edi
4106f5:	5e                   	pop    %esi
4106f6:	5b                   	pop    %ebx
4106f7:	c9                   	leave
4106f8:	c2 0c 00             	ret    $0xc
4106fb:	8b 45 10             	mov    0x10(%ebp),%eax
4106fe:	ff 30                	push   (%eax)
410700:	e8 66 ca ff ff       	call   0x40d16b
410705:	59                   	pop    %ecx
410706:	c3                   	ret
410707:	6a 08                	push   $0x8
410709:	68 d8 16 43 00       	push   $0x4316d8
41070e:	e8 ad 78 ff ff       	call   0x407fc0
410713:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
410717:	8b 4d 0c             	mov    0xc(%ebp),%ecx
41071a:	e8 15 01 00 00       	call   0x410834
41071f:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
410726:	e8 12 00 00 00       	call   0x41073d
41072b:	8b 4d f0             	mov    -0x10(%ebp),%ecx
41072e:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
410735:	59                   	pop    %ecx
410736:	5f                   	pop    %edi
410737:	5e                   	pop    %esi
410738:	5b                   	pop    %ebx