416532:	5e                   	pop    %esi
416533:	41                   	inc    %ecx
416534:	00 1d 5f 41 00 4e    	add    %bl,0x4e00415f
41653a:	5f                   	pop    %edi
41653b:	41                   	inc    %ecx
41653c:	00 af 5f 41 00 32    	add    %ch,0x3200415f(%edi)
416542:	60                   	pusha
416543:	41                   	inc    %ecx
416544:	00 4b 60             	add    %cl,0x60(%ebx)
416547:	41                   	inc    %ecx
416548:	00 ae 60 41 00 90    	add    %ch,-0x6fffbea0(%esi)
41654e:	60                   	pusha
41654f:	41                   	inc    %ecx
416550:	00 f0                	add    %dh,%al
416552:	60                   	pusha
416553:	41                   	inc    %ecx
416554:	00 e5                	add    %ah,%ch
416556:	60                   	pusha
416557:	41                   	inc    %ecx
416558:	00 ba 60 41 00 55    	add    %bh,0x55004160(%edx)
41655e:	8b ec                	mov    %esp,%ebp
416560:	81 ec 88 00 00 00    	sub    $0x88,%esp
416566:	a1 90 08 42 00       	mov    0x420890,%eax
41656b:	33 c5                	xor    %ebp,%eax
41656d:	89 45 fc             	mov    %eax,-0x4(%ebp)
416570:	0f b7 55 10          	movzwl 0x10(%ebp),%edx
416574:	53                   	push   %ebx
416575:	8b 5d 1c             	mov    0x1c(%ebp),%ebx
416578:	56                   	push   %esi
416579:	be 00 80 00 00       	mov    $0x8000,%esi
41657e:	23 d6                	and    %esi,%edx
416580:	0f b7 75 10          	movzwl 0x10(%ebp),%esi
416584:	33 c9                	xor    %ecx,%ecx
416586:	b8 ff 7f 00 00       	mov    $0x7fff,%eax
41658b:	41                   	inc    %ecx
41658c:	23 f0                	and    %eax,%esi
41658e:	57                   	push   %edi
41658f:	89 5d 90             	mov    %ebx,-0x70(%ebp)
416592:	c7 45 d0 cc cc cc cc 	movl   $0xcccccccc,-0x30(%ebp)
416599:	c7 45 d4 cc cc cc cc 	movl   $0xcccccccc,-0x2c(%ebp)
4165a0:	c7 45 d8 cc cc fb 3f 	movl   $0x3ffbcccc,-0x28(%ebp)
4165a7:	89 55 88             	mov    %edx,-0x78(%ebp)
4165aa:	89 45 98             	mov    %eax,-0x68(%ebp)
4165ad:	66 85 d2             	test   %dx,%dx
4165b0:	74 06                	je     0x4165b8
4165b2:	c6 43 02 2d          	movb   $0x2d,0x2(%ebx)
4165b6:	eb 04                	jmp    0x4165bc
4165b8:	c6 43 02 20          	movb   $0x20,0x2(%ebx)
4165bc:	8b 7d 0c             	mov    0xc(%ebp),%edi
4165bf:	66 85 f6             	test   %si,%si
4165c2:	75 3a                	jne    0x4165fe
4165c4:	85 ff                	test   %edi,%edi
4165c6:	0f 85 c7 00 00 00    	jne    0x416693
4165cc:	39 7d 08             	cmp    %edi,0x8(%ebp)
4165cf:	0f 85 be 00 00 00    	jne    0x416693
4165d5:	33 c0                	xor    %eax,%eax
4165d7:	66 89 03             	mov    %ax,(%ebx)
4165da:	b8 00 80 00 00       	mov    $0x8000,%eax
4165df:	66 3b d0             	cmp    %ax,%dx
4165e2:	0f 95 c0             	setne  %al
4165e5:	fe c8                	dec    %al
4165e7:	24 0d                	and    $0xd,%al
4165e9:	04 20                	add    $0x20,%al
4165eb:	88 43 02             	mov    %al,0x2(%ebx)
4165ee:	88 4b 03             	mov    %cl,0x3(%ebx)
4165f1:	66 c7 43 04 30 00    	movw   $0x30,0x4(%ebx)
4165f7:	8b c1                	mov    %ecx,%eax
4165f9:	e9 ce 08 00 00       	jmp    0x416ecc
4165fe:	66 3b f0             	cmp    %ax,%si
416601:	0f 85 8c 00 00 00    	jne    0x416693
416607:	8b 45 0c             	mov    0xc(%ebp),%eax
41660a:	ba 00 00 00 80       	mov    $0x80000000,%edx
41660f:	66 89 0b             	mov    %cx,(%ebx)
416612:	8b 4d 08             	mov    0x8(%ebp),%ecx
416615:	3b c2                	cmp    %edx,%eax
416617:	75 04                	jne    0x41661d
416619:	85 c9                	test   %ecx,%ecx
41661b:	74 0e                	je     0x41662b
41661d:	a9 00 00 00 40       	test   $0x40000000,%eax
416622:	75 07                	jne    0x41662b
416624:	68 7c d3 41 00       	push   $0x41d37c
416629:	eb 47                	jmp    0x416672
41662b:	66 83 7d 88 00       	cmpw   $0x0,-0x78(%ebp)
416630:	74 12                	je     0x416644
416632:	3d 00 00 00 c0       	cmp    $0xc0000000,%eax
416637:	75 0b                	jne    0x416644
416639:	85 c9                	test   %ecx,%ecx
41663b:	75 30                	jne    0x41666d
41663d:	68 84 d3 41 00       	push   $0x41d384
416642:	eb 0d                	jmp    0x416651
416644:	3b c2                	cmp    %edx,%eax
416646:	75 25                	jne    0x41666d
416648:	85 c9                	test   %ecx,%ecx
41664a:	75 21                	jne    0x41666d
41664c:	68 8c d3 41 00       	push   $0x41d38c
416651:	8d 43 04             	lea    0x4(%ebx),%eax
416654:	6a 16                	push   $0x16
416656:	50                   	push   %eax
416657:	e8 e9 4d ff ff       	call   0x40b445
41665c:	83 c4 0c             	add    $0xc,%esp
41665f:	85 c0                	test   %eax,%eax
416661:	0f 85 ad 08 00 00    	jne    0x416f14
416667:	c6 43 03 05          	movb   $0x5,0x3(%ebx)
41666b:	eb 1f                	jmp    0x41668c
41666d:	68 94 d3 41 00       	push   $0x41d394
416672:	8d 43 04             	lea    0x4(%ebx),%eax
416675:	6a 16                	push   $0x16
416677:	50                   	push   %eax
416678:	e8 c8 4d ff ff       	call   0x40b445
41667d:	83 c4 0c             	add    $0xc,%esp
416680:	85 c0                	test   %eax,%eax
416682:	0f 85 8c 08 00 00    	jne    0x416f14
416688:	c6 43 03 06          	movb   $0x6,0x3(%ebx)
41668c:	33 c0                	xor    %eax,%eax
41668e:	e9 39 08 00 00       	jmp    0x416ecc
416693:	0f b7 d6             	movzwl %si,%edx
416696:	8b c2                	mov    %edx,%eax
416698:	69 d2 10 4d 00 00    	imul   $0x4d10,%edx,%edx
41669e:	c1 e8 08             	shr    $0x8,%eax
4166a1:	8b cf                	mov    %edi,%ecx
4166a3:	c1 e9 18             	shr    $0x18,%ecx
4166a6:	81 c2 0c ed bc ec    	add    $0xecbced0c,%edx
4166ac:	8d 04 48             	lea    (%eax,%ecx,2),%eax
4166af:	6b c0 4d             	imul   $0x4d,%eax,%eax
4166b2:	03 c2                	add    %edx,%eax
4166b4:	c1 f8 10             	sar    $0x10,%eax
4166b7:	0f b7 c8             	movzwl %ax,%ecx
4166ba:	8b 45 08             	mov    0x8(%ebp),%eax
4166bd:	89 45 e2             	mov    %eax,-0x1e(%ebp)
4166c0:	33 c0                	xor    %eax,%eax
4166c2:	89 4d b8             	mov    %ecx,-0x48(%ebp)
4166c5:	0f bf c9             	movswl %cx,%ecx
4166c8:	66 89 45 e0          	mov    %ax,-0x20(%ebp)
4166cc:	f7 d9                	neg    %ecx
4166ce:	b8 40 14 42 00       	mov    $0x421440,%eax
4166d3:	83 e8 60             	sub    $0x60,%eax
4166d6:	33 db                	xor    %ebx,%ebx
4166d8:	66 89 75 ea          	mov    %si,-0x16(%ebp)
4166dc:	89 7d e6             	mov    %edi,-0x1a(%ebp)
4166df:	89 4d bc             	mov    %ecx,-0x44(%ebp)
4166e2:	c7 45 a4 05 00 00 00 	movl   $0x5,-0x5c(%ebp)
4166e9:	c7 45 94 fd bf 00 00 	movl   $0xbffd,-0x6c(%ebp)
4166f0:	c7 45 a8 bf 3f 00 00 	movl   $0x3fbf,-0x58(%ebp)
4166f7:	85 c9                	test   %ecx,%ecx
4166f9:	0f 84 21 03 00 00    	je     0x416a20
4166ff:	79 0f                	jns    0x416710
416701:	f7 d9                	neg    %ecx
416703:	b8 a0 15 42 00       	mov    $0x4215a0,%eax
416708:	83 e8 60             	sub    $0x60,%eax
41670b:	89 4d bc             	mov    %ecx,-0x44(%ebp)
41670e:	85 c9                	test   %ecx,%ecx
416710:	0f 84 0a 03 00 00    	je     0x416a20
416716:	8b 75 e0             	mov    -0x20(%ebp),%esi
416719:	8b 55 e4             	mov    -0x1c(%ebp),%edx
41671c:	89 75 c0             	mov    %esi,-0x40(%ebp)
41671f:	c1 7d bc 03          	sarl   $0x3,-0x44(%ebp)
416723:	83 c0 54             	add    $0x54,%eax
416726:	89 45 ac             	mov    %eax,-0x54(%ebp)
416729:	83 e1 07             	and    $0x7,%ecx
41672c:	0f 84 e1 02 00 00    	je     0x416a13
416732:	6b c9 0c             	imul   $0xc,%ecx,%ecx
416735:	03 c8                	add    %eax,%ecx
416737:	b8 00 80 00 00       	mov    $0x8000,%eax
41673c:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
416742:	66 39 01             	cmp    %ax,(%ecx)
416745:	72 14                	jb     0x41675b
416747:	8b f1                	mov    %ecx,%esi
416749:	8d 7d c4             	lea    -0x3c(%ebp),%edi
41674c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41674d:	a5                   	movsl  %ds:(%esi),%es:(%edi)
41674e:	8d 4d c4             	lea    -0x3c(%ebp),%ecx
416751:	a5                   	movsl  %ds:(%esi),%es:(%edi)
416752:	ff 4d c6             	decl   -0x3a(%ebp)
416755:	89 8d 78 ff ff ff    	mov    %ecx,-0x88(%ebp)
41675b:	0f b7 79 0a          	movzwl 0xa(%ecx),%edi
41675f:	8b 45 ea             	mov    -0x16(%ebp),%eax
416762:	89 7d 9c             	mov    %edi,-0x64(%ebp)
416765:	31 45 9c             	xor    %eax,-0x64(%ebp)
416768:	25 ff 7f 00 00       	and    $0x7fff,%eax
41676d:	81 e7 ff 7f 00 00    	and    $0x7fff,%edi
416773:	89 45 b0             	mov    %eax,-0x50(%ebp)
416776:	03 c7                	add    %edi,%eax
416778:	be 00 80 00 00       	mov    $0x8000,%esi
41677d:	21 75 9c             	and    %esi,-0x64(%ebp)
416780:	89 7d a0             	mov    %edi,-0x60(%ebp)
416783:	0f b7 f8             	movzwl %ax,%edi
416786:	8b 45 b0             	mov    -0x50(%ebp),%eax
416789:	4e                   	dec    %esi
41678a:	89 5d 8c             	mov    %ebx,-0x74(%ebp)
41678d:	89 5d f0             	mov    %ebx,-0x10(%ebp)
416790:	89 5d f4             	mov    %ebx,-0xc(%ebp)
416793:	89 5d f8             	mov    %ebx,-0x8(%ebp)
416796:	89 7d b4             	mov    %edi,-0x4c(%ebp)
416799:	66 3b c6             	cmp    %si,%ax
41679c:	0f 83 4a 02 00 00    	jae    0x4169ec
4167a2:	66 39 75 a0          	cmp    %si,-0x60(%ebp)
4167a6:	8b 75 c0             	mov    -0x40(%ebp),%esi
4167a9:	0f 83 3d 02 00 00    	jae    0x4169ec
4167af:	66 3b 7d 94          	cmp    -0x6c(%ebp),%di
4167b3:	0f 87 33 02 00 00    	ja     0x4169ec
4167b9:	66 3b 7d a8          	cmp    -0x58(%ebp),%di
4167bd:	77 08                	ja     0x4167c7
4167bf:	89 5d e8             	mov    %ebx,-0x18(%ebp)
4167c2:	e9 3c 02 00 00       	jmp    0x416a03
4167c7:	66 85 c0             	test   %ax,%ax
4167ca:	75 20                	jne    0x4167ec
4167cc:	47                   	inc    %edi
4167cd:	f7 45 e8 ff ff ff 7f 	testl  $0x7fffffff,-0x18(%ebp)
4167d4:	89 7d b4             	mov    %edi,-0x4c(%ebp)
4167d7:	75 13                	jne    0x4167ec
4167d9:	85 d2                	test   %edx,%edx
4167db:	75 0f                	jne    0x4167ec
4167dd:	85 f6                	test   %esi,%esi
4167df:	75 0b                	jne    0x4167ec
4167e1:	33 c0                	xor    %eax,%eax
4167e3:	66 89 45 ea          	mov    %ax,-0x16(%ebp)
4167e7:	e9 24 02 00 00       	jmp    0x416a10
4167ec:	66 83 7d a0 00       	cmpw   $0x0,-0x60(%ebp)
4167f1:	75 16                	jne    0x416809
4167f3:	47                   	inc    %edi
4167f4:	f7 41 08 ff ff ff 7f 	testl  $0x7fffffff,0x8(%ecx)
4167fb:	89 7d b4             	mov    %edi,-0x4c(%ebp)
4167fe:	75 09                	jne    0x416809
416800:	39 59 04             	cmp    %ebx,0x4(%ecx)
416803:	75 04                	jne    0x416809
416805:	39 19                	cmp    %ebx,(%ecx)
416807:	74 b6                	je     0x4167bf
416809:	6a 05                	push   $0x5
41680b:	8b c3                	mov    %ebx,%eax
41680d:	5e                   	pop    %esi
41680e:	89 45 80             	mov    %eax,-0x80(%ebp)
416811:	8d 55 f4             	lea    -0xc(%ebp),%edx
416814:	89 75 b0             	mov    %esi,-0x50(%ebp)
416817:	89 75 a0             	mov    %esi,-0x60(%ebp)
41681a:	85 f6                	test   %esi,%esi
41681c:	7e 6f                	jle    0x41688d
41681e:	8d 75 e0             	lea    -0x20(%ebp),%esi
416821:	8d 04 46             	lea    (%esi,%eax,2),%eax
416824:	8d 71 08             	lea    0x8(%ecx),%esi
416827:	8b 4d a0             	mov    -0x60(%ebp),%ecx
41682a:	89 45 c0             	mov    %eax,-0x40(%ebp)
41682d:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
416833:	0f b7 38             	movzwl (%eax),%edi
416836:	0f b7 06             	movzwl (%esi),%eax
416839:	0f af f8             	imul   %eax,%edi
41683c:	8b 42 fc             	mov    -0x4(%edx),%eax
41683f:	89 5d 84             	mov    %ebx,-0x7c(%ebp)
416842:	8d 34 38             	lea    (%eax,%edi,1),%esi
416845:	3b f0                	cmp    %eax,%esi
416847:	89 75 a0             	mov    %esi,-0x60(%ebp)
41684a:	8b c6                	mov    %esi,%eax
41684c:	72 04                	jb     0x416852
41684e:	3b c7                	cmp    %edi,%eax
416850:	73 05                	jae    0x416857
416852:	33 f6                	xor    %esi,%esi
416854:	46                   	inc    %esi
416855:	eb 03                	jmp    0x41685a
416857:	8b 75 84             	mov    -0x7c(%ebp),%esi
41685a:	89 42 fc             	mov    %eax,-0x4(%edx)
41685d:	85 f6                	test   %esi,%esi
41685f:	74 03                	je     0x416864
416861:	66 ff 02             	incw   (%edx)
416864:	8b 45 c0             	mov    -0x40(%ebp),%eax
416867:	8b b5 7c ff ff ff    	mov    -0x84(%ebp),%esi
41686d:	83 c0 02             	add    $0x2,%eax
416870:	83 ee 02             	sub    $0x2,%esi
416873:	49                   	dec    %ecx
416874:	89 45 c0             	mov    %eax,-0x40(%ebp)
416877:	89 b5 7c ff ff ff    	mov    %esi,-0x84(%ebp)
41687d:	85 c9                	test   %ecx,%ecx
41687f:	7f b2                	jg     0x416833
416881:	8b 8d 78 ff ff ff    	mov    -0x88(%ebp),%ecx
416887:	8b 75 b0             	mov    -0x50(%ebp),%esi
41688a:	8b 45 80             	mov    -0x80(%ebp),%eax
41688d:	83 c2 02             	add    $0x2,%edx
416890:	40                   	inc    %eax
416891:	4e                   	dec    %esi
416892:	89 45 80             	mov    %eax,-0x80(%ebp)
416895:	89 75 b0             	mov    %esi,-0x50(%ebp)
416898:	85 f6                	test   %esi,%esi
41689a:	0f 8f 77 ff ff ff    	jg     0x416817
4168a0:	8b 7d b4             	mov    -0x4c(%ebp),%edi
4168a3:	8b 45 f8             	mov    -0x8(%ebp),%eax
4168a6:	8b 75 f0             	mov    -0x10(%ebp),%esi
4168a9:	81 c7 02 c0 00 00    	add    $0xc002,%edi
4168af:	89 45 c0             	mov    %eax,-0x40(%ebp)
4168b2:	66 85 ff             	test   %di,%di
4168b5:	7e 3b                	jle    0x4168f2
4168b7:	85 c0                	test   %eax,%eax
4168b9:	78 32                	js     0x4168ed
4168bb:	8b 45 f4             	mov    -0xc(%ebp),%eax
4168be:	8b c8                	mov    %eax,%ecx
4168c0:	03 c0                	add    %eax,%eax
4168c2:	8b d6                	mov    %esi,%edx
4168c4:	c1 ea 1f             	shr    $0x1f,%edx
4168c7:	0b c2                	or     %edx,%eax
4168c9:	89 45 f4             	mov    %eax,-0xc(%ebp)
4168cc:	8b 45 c0             	mov    -0x40(%ebp),%eax
4168cf:	c1 e9 1f             	shr    $0x1f,%ecx
4168d2:	03 c0                	add    %eax,%eax
4168d4:	0b c1                	or     %ecx,%eax
4168d6:	b9 ff ff 00 00       	mov    $0xffff,%ecx
4168db:	03 f6                	add    %esi,%esi
4168dd:	03 f9                	add    %ecx,%edi
4168df:	89 75 f0             	mov    %esi,-0x10(%ebp)
4168e2:	89 45 c0             	mov    %eax,-0x40(%ebp)
4168e5:	89 45 f8             	mov    %eax,-0x8(%ebp)
4168e8:	66 85 ff             	test   %di,%di
4168eb:	7f ca                	jg     0x4168b7
4168ed:	66 85 ff             	test   %di,%di
4168f0:	7f 71                	jg     0x416963
4168f2:	b8 ff ff 00 00       	mov    $0xffff,%eax
4168f7:	03 f8                	add    %eax,%edi
4168f9:	66 85 ff             	test   %di,%di
4168fc:	79 65                	jns    0x416963
4168fe:	8b 5d c0             	mov    -0x40(%ebp),%ebx
416901:	8b c7                	mov    %edi,%eax
416903:	f7 d8                	neg    %eax
416905:	0f b7 c0             	movzwl %ax,%eax
416908:	03 f8                	add    %eax,%edi
41690a:	33 d2                	xor    %edx,%edx
41690c:	89 7d b4             	mov    %edi,-0x4c(%ebp)
41690f:	8b 7d 8c             	mov    -0x74(%ebp),%edi
416912:	89 45 b0             	mov    %eax,-0x50(%ebp)
416915:	42                   	inc    %edx
416916:	84 55 f0             	test   %dl,-0x10(%ebp)
416919:	74 01                	je     0x41691c
41691b:	47                   	inc    %edi
41691c:	8b 4d f4             	mov    -0xc(%ebp),%ecx
41691f:	8b c3                	mov    %ebx,%eax
416921:	c1 e0 1f             	shl    $0x1f,%eax
416924:	89 4d c0             	mov    %ecx,-0x40(%ebp)
416927:	d1 6d c0             	shrl   $1,-0x40(%ebp)
41692a:	09 45 c0             	or     %eax,-0x40(%ebp)
41692d:	8b 45 c0             	mov    -0x40(%ebp),%eax
416930:	c1 e1 1f             	shl    $0x1f,%ecx
416933:	d1 ee                	shr    $1,%esi
416935:	d1 eb                	shr    $1,%ebx
416937:	0b f1                	or     %ecx,%esi
416939:	ff 4d b0             	decl   -0x50(%ebp)
41693c:	89 5d f8             	mov    %ebx,-0x8(%ebp)
41693f:	89 45 f4             	mov    %eax,-0xc(%ebp)
416942:	89 75 f0             	mov    %esi,-0x10(%ebp)
416945:	75 cf                	jne    0x416916
416947:	6a 00                	push   $0x0
416949:	89 5d c0             	mov    %ebx,-0x40(%ebp)
41694c:	85 ff                	test   %edi,%edi
41694e:	8b 7d b4             	mov    -0x4c(%ebp),%edi
416951:	5b                   	pop    %ebx
416952:	74 0f                	je     0x416963