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
406986:	12 12                	adc    (%edx),%dl
406988:	12 12                	adc    (%edx),%dl
40698a:	12 12                	adc    (%edx),%dl
40698c:	12 12                	adc    (%edx),%dl
40698e:	12 12                	adc    (%edx),%dl
406990:	12 12                	adc    (%edx),%dl
406992:	12 12                	adc    (%edx),%dl
406994:	12 0f                	adc    (%edi),%cl
406996:	12 10                	adc    (%eax),%dl
406998:	11 55 8b             	adc    %edx,-0x75(%ebp)
40699b:	ec                   	in     (%dx),%al
40699c:	56                   	push   %esi
40699d:	57                   	push   %edi
40699e:	8b 7d 08             	mov    0x8(%ebp),%edi
4069a1:	33 f6                	xor    %esi,%esi
4069a3:	ff 37                	push   (%edi)
4069a5:	ff 34 b5 80 4e 4a 00 	push   0x4a4e80(,%esi,4)
4069ac:	e8 db cd 01 00       	call   0x42378c
4069b1:	59                   	pop    %ecx
4069b2:	59                   	pop    %ecx
4069b3:	85 c0                	test   %eax,%eax
4069b5:	74 0b                	je     0x4069c2
4069b7:	46                   	inc    %esi
4069b8:	83 fe 2d             	cmp    $0x2d,%esi
4069bb:	7c e6                	jl     0x4069a3
4069bd:	83 c8 ff             	or     $0xffffffff,%eax
4069c0:	eb 02                	jmp    0x4069c4
4069c2:	8b c6                	mov    %esi,%eax
4069c4:	5f                   	pop    %edi
4069c5:	5e                   	pop    %esi
4069c6:	5d                   	pop    %ebp
4069c7:	c2 04 00             	ret    $0x4
4069ca:	55                   	push   %ebp
4069cb:	8b ec                	mov    %esp,%ebp
4069cd:	83 ec 68             	sub    $0x68,%esp
4069d0:	53                   	push   %ebx
4069d1:	56                   	push   %esi
4069d2:	8b 75 08             	mov    0x8(%ebp),%esi
4069d5:	33 db                	xor    %ebx,%ebx
4069d7:	57                   	push   %edi
4069d8:	6a 01                	push   $0x1
4069da:	8b f9                	mov    %ecx,%edi
4069dc:	89 5d a4             	mov    %ebx,-0x5c(%ebp)
4069df:	ff 36                	push   (%esi)
4069e1:	8d 4d 98             	lea    -0x68(%ebp),%ecx
4069e4:	89 5d a8             	mov    %ebx,-0x58(%ebp)
4069e7:	88 5d ac             	mov    %bl,-0x54(%ebp)
4069ea:	e8 4e e5 ff ff       	call   0x404f3d
4069ef:	85 c0                	test   %eax,%eax
4069f1:	0f 84 63 7a 03 00    	je     0x43e45a
4069f7:	6a 02                	push   $0x2
4069f9:	ff 36                	push   (%esi)
4069fb:	8d 4d 98             	lea    -0x68(%ebp),%ecx
4069fe:	e8 3a e5 ff ff       	call   0x404f3d
406a03:	85 c0                	test   %eax,%eax
406a05:	0f 84 4f 7a 03 00    	je     0x43e45a
406a0b:	8b 45 10             	mov    0x10(%ebp),%eax
406a0e:	83 38 04             	cmpl   $0x4,(%eax)
406a11:	0f 84 64 7a 03 00    	je     0x43e47b
406a17:	53                   	push   %ebx
406a18:	68 10 f9 48 00       	push   $0x48f910
406a1d:	56                   	push   %esi
406a1e:	ff 75 0c             	push   0xc(%ebp)
406a21:	8b cf                	mov    %edi,%ecx
406a23:	c7 00 02 00 00 00    	movl   $0x2,(%eax)
406a29:	56                   	push   %esi
406a2a:	e8 bd 01 00 00       	call   0x406bec
406a2f:	8a d8                	mov    %al,%bl
406a31:	5f                   	pop    %edi
406a32:	5e                   	pop    %esi
406a33:	8a c3                	mov    %bl,%al
406a35:	5b                   	pop    %ebx
406a36:	8b e5                	mov    %ebp,%esp
406a38:	5d                   	pop    %ebp
406a39:	c2 0c 00             	ret    $0xc
406a3c:	55                   	push   %ebp
406a3d:	8b ec                	mov    %esp,%ebp
406a3f:	83 ec 2c             	sub    $0x2c,%esp
406a42:	53                   	push   %ebx
406a43:	56                   	push   %esi
406a44:	57                   	push   %edi
406a45:	68 00 20 00 00       	push   $0x2000
406a4a:	8b f9                	mov    %ecx,%edi
406a4c:	e8 a5 a5 01 00       	call   0x420ff6
406a51:	59                   	pop    %ecx
406a52:	50                   	push   %eax
406a53:	8d 4d f8             	lea    -0x8(%ebp),%ecx
406a56:	e8 33 e9 ff ff       	call   0x40538e
406a5b:	8b 75 08             	mov    0x8(%ebp),%esi
406a5e:	66 83 3e 23          	cmpw   $0x23,(%esi)
406a62:	74 25                	je     0x406a89
406a64:	6a 03                	push   $0x3
406a66:	5b                   	pop    %ebx
406a67:	8b 45 fc             	mov    -0x4(%ebp),%eax
406a6a:	ff 08                	decl   (%eax)
406a6c:	75 10                	jne    0x406a7e
406a6e:	50                   	push   %eax
406a6f:	e8 f8 a5 01 00       	call   0x42106c
406a74:	59                   	pop    %ecx
406a75:	ff 75 f8             	push   -0x8(%ebp)
406a78:	e8 ef a5 01 00       	call   0x42106c
406a7d:	59                   	pop    %ecx
406a7e:	5f                   	pop    %edi
406a7f:	5e                   	pop    %esi
406a80:	8b c3                	mov    %ebx,%eax
406a82:	5b                   	pop    %ebx
406a83:	8b e5                	mov    %ebp,%esp
406a85:	5d                   	pop    %ebp
406a86:	c2 10 00             	ret    $0x10
406a89:	6a 0f                	push   $0xf
406a8b:	68 24 26 49 00       	push   $0x492624
406a90:	56                   	push   %esi
406a91:	e8 75 cf 01 00       	call   0x423a0b
406a96:	83 c4 0c             	add    $0xc,%esp
406a99:	85 c0                	test   %eax,%eax
406a9b:	0f 84 31 01 00 00    	je     0x406bd2
406aa1:	6a 0b                	push   $0xb
406aa3:	68 7c 26 49 00       	push   $0x49267c
406aa8:	56                   	push   %esi
406aa9:	e8 5d cf 01 00       	call   0x423a0b
406aae:	83 c4 0c             	add    $0xc,%esp
406ab1:	85 c0                	test   %eax,%eax
406ab3:	0f 84 21 01 00 00    	je     0x406bda
406ab9:	6a 0d                	push   $0xd
406abb:	68 44 26 49 00       	push   $0x492644
406ac0:	56                   	push   %esi
406ac1:	e8 45 cf 01 00       	call   0x423a0b
406ac6:	83 c4 0c             	add    $0xc,%esp
406ac9:	85 c0                	test   %eax,%eax
406acb:	0f 84 12 7c 03 00    	je     0x43e6e3
406ad1:	6a 16                	push   $0x16
406ad3:	68 f4 25 49 00       	push   $0x4925f4
406ad8:	56                   	push   %esi
406ad9:	e8 2d cf 01 00       	call   0x423a0b
406ade:	83 c4 0c             	add    $0xc,%esp
406ae1:	85 c0                	test   %eax,%eax
406ae3:	0f 84 05 7c 03 00    	je     0x43e6ee
406ae9:	6a 0d                	push   $0xd
406aeb:	68 60 26 49 00       	push   $0x492660
406af0:	56                   	push   %esi
406af1:	e8 15 cf 01 00       	call   0x423a0b
406af6:	83 c4 0c             	add    $0xc,%esp
406af9:	85 c0                	test   %eax,%eax
406afb:	0f 84 70 7c 03 00    	je     0x43e771
406b01:	6a 08                	push   $0x8
406b03:	68 2c 24 49 00       	push   $0x49242c
406b08:	56                   	push   %esi
406b09:	e8 fd ce 01 00       	call   0x423a0b
406b0e:	83 c4 0c             	add    $0xc,%esp
406b11:	85 c0                	test   %eax,%eax
406b13:	0f 84 9a 7c 03 00    	je     0x43e7b3
406b19:	6a 0f                	push   $0xf
406b1b:	68 50 fb 48 00       	push   $0x48fb50
406b20:	56                   	push   %esi
406b21:	e8 e5 ce 01 00       	call   0x423a0b
406b26:	83 c4 0c             	add    $0xc,%esp
406b29:	85 c0                	test   %eax,%eax
406b2b:	74 18                	je     0x406b45
406b2d:	6a 03                	push   $0x3
406b2f:	68 70 fb 48 00       	push   $0x48fb70
406b34:	56                   	push   %esi
406b35:	e8 d1 ce 01 00       	call   0x423a0b
406b3a:	83 c4 0c             	add    $0xc,%esp
406b3d:	85 c0                	test   %eax,%eax
406b3f:	0f 85 8d 00 00 00    	jne    0x406bd2
406b45:	33 db                	xor    %ebx,%ebx
406b47:	43                   	inc    %ebx
406b48:	89 5d 08             	mov    %ebx,0x8(%ebp)
406b4b:	51                   	push   %ecx
406b4c:	8b 4d 14             	mov    0x14(%ebp),%ecx
406b4f:	56                   	push   %esi
406b50:	e8 78 ee ff ff       	call   0x4059cd
406b55:	84 c0                	test   %al,%al
406b57:	0f 84 c3 7c 03 00    	je     0x43e820
406b5d:	8b 45 10             	mov    0x10(%ebp),%eax