406550:	40                   	inc    %eax
406551:	50                   	push   %eax
406552:	e8 5c 17 00 00       	call   0x407cb3
406557:	8b 4d d8             	mov    -0x28(%ebp),%ecx
40655a:	8b 45 dc             	mov    -0x24(%ebp),%eax
40655d:	33 d2                	xor    %edx,%edx
40655f:	66 89 34 41          	mov    %si,(%ecx,%eax,2)
406563:	40                   	inc    %eax
406564:	89 45 dc             	mov    %eax,-0x24(%ebp)
406567:	47                   	inc    %edi
406568:	66 89 14 41          	mov    %dx,(%ecx,%eax,2)
40656c:	eb b8                	jmp    0x406526
40656e:	66 83 fe 41          	cmp    $0x41,%si
406572:	73 c8                	jae    0x40653c
406574:	eb ba                	jmp    0x406530
406576:	66 83 fe 30          	cmp    $0x30,%si
40657a:	0f 83 b7 00 00 00    	jae    0x406637
406580:	66 83 fe 5f          	cmp    $0x5f,%si
406584:	74 b6                	je     0x40653c
406586:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
40658a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40658d:	0f 84 66 03 00 00    	je     0x4068f9
406593:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406596:	e8 14 1a 00 00       	call   0x407faf
40659b:	ff 75 dc             	push   -0x24(%ebp)
40659e:	ff 75 d8             	push   -0x28(%ebp)
4065a1:	ff 15 7c f6 48 00    	call   *0x48f67c
4065a7:	8d 45 d8             	lea    -0x28(%ebp),%eax
4065aa:	50                   	push   %eax
4065ab:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4065ae:	e8 ee f8 ff ff       	call   0x405ea1
4065b3:	8b 4d 10             	mov    0x10(%ebp),%ecx
4065b6:	8d 45 e8             	lea    -0x18(%ebp),%eax
4065b9:	50                   	push   %eax
4065ba:	e8 b0 10 00 00       	call   0x40766f
4065bf:	66 83 3c 7b 00       	cmpw   $0x0,(%ebx,%edi,2)
4065c4:	0f 85 16 fe ff ff    	jne    0x4063e0
4065ca:	6a 7f                	push   $0x7f
4065cc:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4065cf:	e8 3e f9 ff ff       	call   0x405f12
4065d4:	8b 4d 10             	mov    0x10(%ebp),%ecx
4065d7:	8d 45 e8             	lea    -0x18(%ebp),%eax
4065da:	50                   	push   %eax
4065db:	66 89 7d f2          	mov    %di,-0xe(%ebp)
4065df:	e8 8b 10 00 00       	call   0x40766f
4065e4:	33 f6                	xor    %esi,%esi
4065e6:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4065e9:	e8 76 f4 ff ff       	call   0x405a64
4065ee:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4065f1:	e8 05 f9 ff ff       	call   0x405efb
4065f6:	5f                   	pop    %edi
4065f7:	8b c6                	mov    %esi,%eax
4065f9:	5e                   	pop    %esi
4065fa:	5b                   	pop    %ebx
4065fb:	8b e5                	mov    %ebp,%esp
4065fd:	5d                   	pop    %ebp
4065fe:	c2 0c 00             	ret    $0xc
406601:	83 fe 7a             	cmp    $0x7a,%esi
406604:	0f 87 1e fe ff ff    	ja     0x406428
40660a:	8d 45 d8             	lea    -0x28(%ebp),%eax
40660d:	50                   	push   %eax
40660e:	8d 45 e8             	lea    -0x18(%ebp),%eax
406611:	50                   	push   %eax
406612:	8d 45 f8             	lea    -0x8(%ebp),%eax
406615:	50                   	push   %eax
406616:	53                   	push   %ebx
406617:	e8 b6 f9 ff ff       	call   0x405fd2
40661c:	83 7d e8 ff          	cmpl   $0xffffffff,-0x18(%ebp)
406620:	0f 84 ef 7d 03 00    	je     0x43e415
406626:	8b 4d 10             	mov    0x10(%ebp),%ecx
406629:	8d 45 e8             	lea    -0x18(%ebp),%eax
40662c:	50                   	push   %eax
40662d:	e8 3d 10 00 00       	call   0x40766f
406632:	8b 7d f8             	mov    -0x8(%ebp),%edi
406635:	eb 88                	jmp    0x4065bf
406637:	66 83 fe 39          	cmp    $0x39,%si
40663b:	0f 87 3f ff ff ff    	ja     0x406580
406641:	e9 f6 fe ff ff       	jmp    0x40653c
406646:	47                   	inc    %edi
406647:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40664a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40664d:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
406652:	0f 84 53 7d 03 00    	je     0x43e3ab
406658:	6a 41                	push   $0x41
40665a:	e8 b3 f8 ff ff       	call   0x405f12
40665f:	e9 4f ff ff ff       	jmp    0x4065b3
406664:	6a 4e                	push   $0x4e
406666:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406669:	e8 a4 f8 ff ff       	call   0x405f12
40666e:	8b 4d 10             	mov    0x10(%ebp),%ecx
406671:	8d 45 e8             	lea    -0x18(%ebp),%eax
406674:	50                   	push   %eax
406675:	e8 f5 0f 00 00       	call   0x40766f
40667a:	47                   	inc    %edi
40667b:	89 7d f8             	mov    %edi,-0x8(%ebp)
40667e:	e9 3c ff ff ff       	jmp    0x4065bf
406683:	6a 47                	push   $0x47
406685:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406688:	e8 85 f8 ff ff       	call   0x405f12
40668d:	8b 4d 10             	mov    0x10(%ebp),%ecx
406690:	8d 45 e8             	lea    -0x18(%ebp),%eax
406693:	50                   	push   %eax
406694:	e8 d6 0f 00 00       	call   0x40766f
406699:	47                   	inc    %edi
40669a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40669d:	e9 1d ff ff ff       	jmp    0x4065bf
4066a2:	6a 48                	push   $0x48
4066a4:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4066a7:	e8 66 f8 ff ff       	call   0x405f12
4066ac:	8b 4d 10             	mov    0x10(%ebp),%ecx
4066af:	8d 45 e8             	lea    -0x18(%ebp),%eax
4066b2:	50                   	push   %eax
4066b3:	e8 b7 0f 00 00       	call   0x40766f
4066b8:	47                   	inc    %edi
4066b9:	89 7d f8             	mov    %edi,-0x8(%ebp)
4066bc:	e9 fe fe ff ff       	jmp    0x4065bf
4066c1:	6a 40                	push   $0x40
4066c3:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4066c6:	e8 47 f8 ff ff       	call   0x405f12
4066cb:	8b 4d 10             	mov    0x10(%ebp),%ecx
4066ce:	8d 45 e8             	lea    -0x18(%ebp),%eax
4066d1:	50                   	push   %eax
4066d2:	e8 98 0f 00 00       	call   0x40766f
4066d7:	47                   	inc    %edi
4066d8:	89 7d f8             	mov    %edi,-0x8(%ebp)
4066db:	e9 df fe ff ff       	jmp    0x4065bf
4066e0:	8d 45 d8             	lea    -0x28(%ebp),%eax
4066e3:	50                   	push   %eax
4066e4:	8d 45 f8             	lea    -0x8(%ebp),%eax
4066e7:	50                   	push   %eax
4066e8:	53                   	push   %ebx
4066e9:	ff 75 08             	push   0x8(%ebp)
4066ec:	e8 2e fc ff ff       	call   0x40631f
4066f1:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4066f4:	85 c0                	test   %eax,%eax
4066f6:	0f 88 34 7d 03 00    	js     0x43e430
4066fc:	6a 36                	push   $0x36
4066fe:	e8 0f f8 ff ff       	call   0x405f12
406703:	8d 45 d8             	lea    -0x28(%ebp),%eax
406706:	50                   	push   %eax
406707:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40670a:	e8 92 f7 ff ff       	call   0x405ea1
40670f:	8b 4d 10             	mov    0x10(%ebp),%ecx
406712:	8d 45 e8             	lea    -0x18(%ebp),%eax
406715:	50                   	push   %eax
406716:	e8 54 0f 00 00       	call   0x40766f
40671b:	8b 7d f8             	mov    -0x8(%ebp),%edi
40671e:	e9 9c fe ff ff       	jmp    0x4065bf
406723:	6a 4d                	push   $0x4d
406725:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406728:	e8 e5 f7 ff ff       	call   0x405f12
40672d:	47                   	inc    %edi
40672e:	89 7d f8             	mov    %edi,-0x8(%ebp)
406731:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
406736:	0f 85 77 fe ff ff    	jne    0x4065b3
40673c:	47                   	inc    %edi
40673d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406740:	6a 56                	push   $0x56
406742:	89 7d f8             	mov    %edi,-0x8(%ebp)
406745:	e8 c8 f7 ff ff       	call   0x405f12
40674a:	e9 64 fe ff ff       	jmp    0x4065b3
40674f:	6a 49                	push   $0x49
406751:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406754:	e8 b9 f7 ff ff       	call   0x405f12
406759:	47                   	inc    %edi
40675a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40675d:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
406762:	0f 85 4b fe ff ff    	jne    0x4065b3
406768:	47                   	inc    %edi
406769:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40676c:	6a 52                	push   $0x52
40676e:	89 7d f8             	mov    %edi,-0x8(%ebp)
406771:	e8 9c f7 ff ff       	call   0x405f12
406776:	e9 38 fe ff ff       	jmp    0x4065b3
40677b:	6a 4c                	push   $0x4c
40677d:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406780:	e8 8d f7 ff ff       	call   0x405f12
406785:	47                   	inc    %edi
406786:	89 7d f8             	mov    %edi,-0x8(%ebp)
406789:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
40678e:	0f 85 1f fe ff ff    	jne    0x4065b3
406794:	47                   	inc    %edi
406795:	8d 4d e8             	lea    -0x18(%ebp),%ecx
406798:	6a 55                	push   $0x55
40679a:	89 7d f8             	mov    %edi,-0x8(%ebp)
40679d:	e8 70 f7 ff ff       	call   0x405f12
4067a2:	e9 0c fe ff ff       	jmp    0x4065b3
4067a7:	6a 4b                	push   $0x4b
4067a9:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4067ac:	e8 61 f7 ff ff       	call   0x405f12
4067b1:	47                   	inc    %edi
4067b2:	89 7d f8             	mov    %edi,-0x8(%ebp)
4067b5:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
4067ba:	0f 85 f3 fd ff ff    	jne    0x4065b3
4067c0:	e9 48 7b 03 00       	jmp    0x43e30d
4067c5:	b8 32 00 00 00       	mov    $0x32,%eax
4067ca:	e9 42 fd ff ff       	jmp    0x406511
4067cf:	6a 4a                	push   $0x4a
4067d1:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4067d4:	e8 39 f7 ff ff       	call   0x405f12
4067d9:	47                   	inc    %edi
4067da:	89 7d f8             	mov    %edi,-0x8(%ebp)
4067dd:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
4067e2:	0f 85 cb fd ff ff    	jne    0x4065b3
4067e8:	e9 0d 7b 03 00       	jmp    0x43e2fa
4067ed:	47                   	inc    %edi
4067ee:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4067f1:	89 7d f8             	mov    %edi,-0x8(%ebp)
4067f4:	66 83 3c 7b 3d       	cmpw   $0x3d,(%ebx,%edi,2)
4067f9:	74 66                	je     0x406861
4067fb:	6a 42                	push   $0x42
4067fd:	e8 10 f7 ff ff       	call   0x405f12
406802:	e9 ac fd ff ff       	jmp    0x4065b3
406807:	0f b7 44 7b 02       	movzwl 0x2(%ebx,%edi,2),%eax
40680c:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40680f:	47                   	inc    %edi
406810:	89 7d f8             	mov    %edi,-0x8(%ebp)
406813:	83 e8 3d             	sub    $0x3d,%eax
406816:	0f 84 d1 00 00 00    	je     0x4068ed
40681c:	48                   	dec    %eax
40681d:	74 52                	je     0x406871
40681f:	6a 43                	push   $0x43
406821:	e8 ec f6 ff ff       	call   0x405f12
406826:	e9 88 fd ff ff       	jmp    0x4065b3
40682b:	66 83 7d f0 05       	cmpw   $0x5,-0x10(%ebp)
406830:	0f 85 96 fc ff ff    	jne    0x4064cc
406836:	8b 4d e8             	mov    -0x18(%ebp),%ecx
406839:	8b 45 ec             	mov    -0x14(%ebp),%eax
40683c:	f7 d9                	neg    %ecx
40683e:	89 4d e8             	mov    %ecx,-0x18(%ebp)
406841:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406844:	83 d0 00             	adc    $0x0,%eax
406847:	f7 d8                	neg    %eax
406849:	89 45 ec             	mov    %eax,-0x14(%ebp)
40684c:	8b 47 04             	mov    0x4(%edi),%eax
40684f:	8b 44 88 fc          	mov    -0x4(%eax,%ecx,4),%eax
406853:	b9 49 00 00 00       	mov    $0x49,%ecx
406858:	66 89 48 08          	mov    %cx,0x8(%eax)
40685c:	e9 6b fc ff ff       	jmp    0x4064cc
406861:	6a 45                	push   $0x45
406863:	e8 aa f6 ff ff       	call   0x405f12
406868:	47                   	inc    %edi
406869:	89 7d f8             	mov    %edi,-0x8(%ebp)
40686c:	e9 42 fd ff ff       	jmp    0x4065b3
406871:	6a 44                	push   $0x44
406873:	e8 9a f6 ff ff       	call   0x405f12
406878:	47                   	inc    %edi
406879:	89 7d f8             	mov    %edi,-0x8(%ebp)
40687c:	e9 32 fd ff ff       	jmp    0x4065b3
406881:	8b 7d f8             	mov    -0x8(%ebp),%edi
406884:	83 fe 2e             	cmp    $0x2e,%esi
406887:	0f 85 89 fb ff ff    	jne    0x406416
40688d:	47                   	inc    %edi
40688e:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406891:	89 7d f8             	mov    %edi,-0x8(%ebp)
406894:	e8 53 16 00 00       	call   0x407eec
406899:	0f b7 04 7b          	movzwl (%ebx,%edi,2),%eax
40689d:	66 83 f8 5a          	cmp    $0x5a,%ax
4068a1:	76 18                	jbe    0x4068bb
4068a3:	66 83 f8 61          	cmp    $0x61,%ax
4068a7:	72 1a                	jb     0x4068c3
4068a9:	66 83 f8 7a          	cmp    $0x7a,%ax
4068ad:	77 14                	ja     0x4068c3
4068af:	50                   	push   %eax
4068b0:	8d 4d d8             	lea    -0x28(%ebp),%ecx
4068b3:	e8 cc 11 00 00       	call   0x407a84
4068b8:	47                   	inc    %edi
4068b9:	eb de                	jmp    0x406899
4068bb:	66 83 f8 41          	cmp    $0x41,%ax
4068bf:	73 ee                	jae    0x4068af
4068c1:	eb e0                	jmp    0x4068a3
4068c3:	66 83 f8 30          	cmp    $0x30,%ax
4068c7:	73 28                	jae    0x4068f1
4068c9:	66 83 f8 5f          	cmp    $0x5f,%ax
4068cd:	74 e0                	je     0x4068af
4068cf:	66 83 f8 7f          	cmp    $0x7f,%ax
4068d3:	77 da                	ja     0x4068af
4068d5:	83 7d dc 00          	cmpl   $0x0,-0x24(%ebp)
4068d9:	89 7d f8             	mov    %edi,-0x8(%ebp)
4068dc:	74 1b                	je     0x4068f9
4068de:	6a 35                	push   $0x35
4068e0:	8d 4d e8             	lea    -0x18(%ebp),%ecx
4068e3:	e8 2a f6 ff ff       	call   0x405f12
4068e8:	e9 ba fc ff ff       	jmp    0x4065a7
4068ed:	6a 46                	push   $0x46
4068ef:	eb 82                	jmp    0x406873
4068f1:	66 83 f8 39          	cmp    $0x39,%ax
4068f5:	76 b8                	jbe    0x4068af
4068f7:	eb d0                	jmp    0x4068c9
4068f9:	8d 47 ff             	lea    -0x1(%edi),%eax
4068fc:	50                   	push   %eax
4068fd:	e9 43 7b 03 00       	jmp    0x43e445
406902:	57                   	push   %edi
406903:	e9 3d 7b 03 00       	jmp    0x43e445
406908:	7d e3                	jge    0x4068ed
40690a:	43                   	inc    %ebx
40690b:	00 e0                	add    %ah,%al
40690d:	66 40                	inc    %ax
40690f:	00 23                	add    %ah,(%ebx)
406911:	67 40                	addr16 inc %eax
406913:	00 83 66 40 00 a2    	add    %al,-0x5dffbf9a(%ebx)
406919:	66 40                	inc    %ax
40691b:	00 7b 67             	add    %bh,0x67(%ebx)
40691e:	40                   	inc    %eax
40691f:	00 4f 67             	add    %cl,0x67(%edi)
406922:	40                   	inc    %eax
406923:	00 c1                	add    %al,%cl
406925:	66 40                	inc    %ax
406927:	00 cf                	add    %cl,%bh
406929:	67 40                	addr16 inc %eax
40692b:	00 a7 67 40 00 5e    	add    %ah,0x5e004067(%edi)
406931:	e3 43                	jecxz  0x406976
406933:	00 07                	add    %al,(%edi)
406935:	68 40 00 ed 67       	push   $0x67ed0040
40693a:	40                   	inc    %eax
40693b:	00 3f                	add    %bh,(%edi)
40693d:	e3 43                	jecxz  0x406982
40693f:	00 f3                	add    %dh,%bl
406941:	64 40                	fs inc %eax
406943:	00 64 66 40          	add    %ah,0x40(%esi,%eiz,2)
406947:	00 5f 64             	add    %bl,0x64(%edi)
40694a:	40                   	inc    %eax
40694b:	00 20                	add    %ah,(%eax)
40694d:	e3 43                	jecxz  0x406992
40694f:	00 1f                	add    %bl,(%edi)
406951:	e4 43                	in     $0x43,%al
406953:	00 00                	add    %al,(%eax)
406955:	12 12                	adc    (%edx),%dl
406957:	12 12                	adc    (%edx),%dl
406959:	12 12                	adc    (%edx),%dl
40695b:	12 01                	adc    (%ecx),%al
40695d:	12 12                	adc    (%edx),%dl
40695f:	12 02                	adc    (%edx),%al
406961:	01 03                	add    %eax,(%ebx)
406963:	04 05                	add    $0x5,%al
406965:	06                   	push   %es
406966:	07                   	pop    %es
406967:	08 12                	or     %dl,(%edx)
406969:	09 12                	or     %edx,(%edx)
40696b:	12 12                	adc    (%edx),%dl
40696d:	12 12                	adc    (%edx),%dl
40696f:	12 12                	adc    (%edx),%dl
406971:	12 12                	adc    (%edx),%dl
406973:	12 0a                	adc    (%edx),%cl
406975:	12 0b                	adc    (%ebx),%cl
406977:	12 0c 0d 0e 12 12 12 	adc    0x1212120e(,%ecx,1),%cl
40697e:	12 12                	adc    (%edx),%dl
406980:	12 12                	adc    (%edx),%dl
406982:	12 12                	adc    (%edx),%dl
406984:	12 12                	adc    (%edx),%dl