40a89b:	ff 04 00             	incl   (%eax,%eax,1)
40a89e:	00 00                	add    %al,(%eax)
40a8a0:	79 79                	jns    0x40a91b
40a8a2:	79 79                	jns    0x40a91d
40a8a4:	00 00                	add    %al,(%eax)
40a8a6:	00 00                	add    %al,(%eax)
40a8a8:	55                   	push   %ebp
40a8a9:	8b ec                	mov    %esp,%ebp
40a8ab:	83 c4 d4             	add    $0xffffffd4,%esp
40a8ae:	53                   	push   %ebx
40a8af:	56                   	push   %esi
40a8b0:	57                   	push   %edi
40a8b1:	33 d2                	xor    %edx,%edx
40a8b3:	89 55 d4             	mov    %edx,-0x2c(%ebp)
40a8b6:	89 55 d8             	mov    %edx,-0x28(%ebp)
40a8b9:	89 45 fc             	mov    %eax,-0x4(%ebp)
40a8bc:	8d 7d fc             	lea    -0x4(%ebp),%edi
40a8bf:	33 c0                	xor    %eax,%eax
40a8c1:	55                   	push   %ebp
40a8c2:	68 2c b0 40 00       	push   $0x40b02c
40a8c7:	64 ff 30             	push   %fs:(%eax)
40a8ca:	64 89 20             	mov    %esp,%fs:(%eax)
40a8cd:	83 3f 00             	cmpl   $0x0,(%edi)
40a8d0:	0f 84 3b 07 00 00    	je     0x40b011
40a8d6:	8b 45 08             	mov    0x8(%ebp),%eax
40a8d9:	83 b8 f8 fe ff ff 02 	cmpl   $0x2,-0x108(%eax)
40a8e0:	0f 8d 2b 07 00 00    	jge    0x40b011
40a8e6:	8b 45 08             	mov    0x8(%ebp),%eax
40a8e9:	ff 80 f8 fe ff ff    	incl   -0x108(%eax)
40a8ef:	c6 45 e2 20          	movb   $0x20,-0x1e(%ebp)
40a8f3:	c6 45 ed 00          	movb   $0x0,-0x13(%ebp)
40a8f7:	c6 45 e3 00          	movb   $0x0,-0x1d(%ebp)
40a8fb:	c6 45 e1 00          	movb   $0x0,-0x1f(%ebp)
40a8ff:	e9 f9 06 00 00       	jmp    0x40affd
40a904:	8b 07                	mov    (%edi),%eax
40a906:	0f b6 00             	movzbl (%eax),%eax
40a909:	88 45 fb             	mov    %al,-0x5(%ebp)
40a90c:	0f b6 45 fb          	movzbl -0x5(%ebp),%eax
40a910:	0f b6 c0             	movzbl %al,%eax
40a913:	0f a3 05 0c 08 46 00 	bt     %eax,0x46080c
40a91a:	73 27                	jae    0x40a943
40a91c:	8b 45 08             	mov    0x8(%ebp),%eax
40a91f:	50                   	push   %eax
40a920:	8b 07                	mov    (%edi),%eax
40a922:	e8 51 25 00 00       	call   0x40ce78
40a927:	8b d0                	mov    %eax,%edx
40a929:	8b 07                	mov    (%edi),%eax
40a92b:	e8 94 fb ff ff       	call   0x40a4c4
40a930:	59                   	pop    %ecx
40a931:	8b 07                	mov    (%edi),%eax
40a933:	e8 60 25 00 00       	call   0x40ce98
40a938:	89 07                	mov    %eax,(%edi)
40a93a:	c6 45 e2 20          	movb   $0x20,-0x1e(%ebp)
40a93e:	e9 ba 06 00 00       	jmp    0x40affd
40a943:	8b 07                	mov    (%edi),%eax
40a945:	e8 4e 25 00 00       	call   0x40ce98
40a94a:	89 07                	mov    %eax,(%edi)
40a94c:	0f b6 5d fb          	movzbl -0x5(%ebp),%ebx
40a950:	8b c3                	mov    %ebx,%eax
40a952:	04 9f                	add    $0x9f,%al
40a954:	2c 1a                	sub    $0x1a,%al
40a956:	73 03                	jae    0x40a95b
40a958:	80 eb 20             	sub    $0x20,%bl
40a95b:	8b c3                	mov    %ebx,%eax
40a95d:	04 bf                	add    $0xbf,%al
40a95f:	2c 1a                	sub    $0x1a,%al
40a961:	73 10                	jae    0x40a973
40a963:	80 fb 4d             	cmp    $0x4d,%bl
40a966:	75 08                	jne    0x40a970
40a968:	80 7d e2 48          	cmpb   $0x48,-0x1e(%ebp)
40a96c:	75 02                	jne    0x40a970
40a96e:	b3 4e                	mov    $0x4e,%bl
40a970:	88 5d e2             	mov    %bl,-0x1e(%ebp)
40a973:	0f b6 c3             	movzbl %bl,%eax
40a976:	83 c0 de             	add    $0xffffffde,%eax
40a979:	83 f8 38             	cmp    $0x38,%eax
40a97c:	0f 87 69 06 00 00    	ja     0x40afeb
40a982:	0f b6 80 90 a9 40 00 	movzbl 0x40a990(%eax),%eax
40a989:	ff 24 85 c9 a9 40 00 	jmp    *0x40a9c9(,%eax,4)
40a990:	0f 00 00             	sldt   (%eax)
40a993:	00 00                	add    %al,(%eax)
40a995:	0f 00 00             	sldt   (%eax)
40a998:	00 00                	add    %al,(%eax)
40a99a:	00 00                	add    %al,(%eax)
40a99c:	00 0d 00 00 00 00    	add    %cl,0x0
40a9a2:	00 00                	add    %al,(%eax)
40a9a4:	00 00                	add    %al,(%eax)
40a9a6:	00 00                	add    %al,(%eax)
40a9a8:	0e                   	push   %cs
40a9a9:	00 00                	add    %al,(%eax)
40a9ab:	00 00                	add    %al,(%eax)
40a9ad:	00 00                	add    %al,(%eax)
40a9af:	0b 00                	or     (%eax),%eax
40a9b1:	0c 05                	or     $0x5,%al
40a9b3:	03 00                	add    (%eax),%eax
40a9b5:	02 06                	add    (%esi),%al
40a9b7:	00 00                	add    %al,(%eax)
40a9b9:	00 00                	add    %al,(%eax)
40a9bb:	04 07                	add    $0x7,%al
40a9bd:	00 00                	add    %al,(%eax)
40a9bf:	00 00                	add    %al,(%eax)
40a9c1:	08 09                	or     %cl,(%ecx)
40a9c3:	00 00                	add    %al,(%eax)
40a9c5:	00 00                	add    %al,(%eax)
40a9c7:	01 0a                	add    %ecx,(%edx)
40a9c9:	eb af                	jmp    0x40a97a
40a9cb:	40                   	inc    %eax
40a9cc:	00 09                	add    %cl,(%ecx)
40a9ce:	aa                   	stos   %al,%es:(%edi)
40a9cf:	40                   	inc    %eax
40a9d0:	00 58 aa             	add    %bl,-0x56(%eax)
40a9d3:	40                   	inc    %eax
40a9d4:	00 85 aa 40 00 b2    	add    %al,-0x4dffbf56(%ebp)
40a9da:	aa                   	stos   %al,%es:(%edi)
40a9db:	40                   	inc    %eax
40a9dc:	00 17                	add    %dl,(%edi)
40a9de:	ab                   	stos   %eax,%es:(%edi)
40a9df:	40                   	inc    %eax
40a9e0:	00 c4                	add    %al,%ah
40a9e2:	ab                   	stos   %eax,%es:(%edi)
40a9e3:	40                   	inc    %eax
40a9e4:	00 c8                	add    %cl,%al
40a9e6:	ac                   	lods   %ds:(%esi),%al
40a9e7:	40                   	inc    %eax
40a9e8:	00 f9                	add    %bh,%cl
40a9ea:	ac                   	lods   %ds:(%esi),%al
40a9eb:	40                   	inc    %eax
40a9ec:	00 2a                	add    %ch,(%edx)
40a9ee:	ad                   	lods   %ds:(%esi),%eax
40a9ef:	40                   	inc    %eax
40a9f0:	00 5f ad             	add    %bl,-0x53(%edi)
40a9f3:	40                   	inc    %eax
40a9f4:	00 90 ad 40 00 fd    	add    %dl,-0x2ffbf53(%eax)
40a9fa:	ae                   	scas   %es:(%edi),%al
40a9fb:	40                   	inc    %eax
40a9fc:	00 5b af             	add    %bl,-0x51(%ebx)
40a9ff:	40                   	inc    %eax
40aa00:	00 7e af             	add    %bh,-0x51(%esi)
40aa03:	40                   	inc    %eax
40aa04:	00 9d af 40 00 55    	add    %bl,0x550040af(%ebp)
40aa0a:	e8 61 fb ff ff       	call   0x40a570
40aa0f:	59                   	pop    %ecx
40aa10:	55                   	push   %ebp
40aa11:	e8 86 fb ff ff       	call   0x40a59c
40aa16:	59                   	pop    %ecx
40aa17:	83 7d f4 02          	cmpl   $0x2,-0xc(%ebp)
40aa1b:	7f 23                	jg     0x40aa40
40aa1d:	8b 45 08             	mov    0x8(%ebp),%eax
40aa20:	50                   	push   %eax
40aa21:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
40aa25:	b9 64 00 00 00       	mov    $0x64,%ecx
40aa2a:	33 d2                	xor    %edx,%edx
40aa2c:	f7 f1                	div    %ecx
40aa2e:	8b c2                	mov    %edx,%eax
40aa30:	ba 02 00 00 00       	mov    $0x2,%edx
40aa35:	e8 ea fa ff ff       	call   0x40a524
40aa3a:	59                   	pop    %ecx
40aa3b:	e9 bd 05 00 00       	jmp    0x40affd
40aa40:	8b 45 08             	mov    0x8(%ebp),%eax
40aa43:	50                   	push   %eax
40aa44:	0f b7 45 f2          	movzwl -0xe(%ebp),%eax
40aa48:	ba 04 00 00 00       	mov    $0x4,%edx
40aa4d:	e8 d2 fa ff ff       	call   0x40a524
40aa52:	59                   	pop    %ecx
40aa53:	e9 a5 05 00 00       	jmp    0x40affd
40aa58:	55                   	push   %ebp
40aa59:	e8 12 fb ff ff       	call   0x40a570
40aa5e:	59                   	pop    %ecx
40aa5f:	55                   	push   %ebp
40aa60:	e8 37 fb ff ff       	call   0x40a59c
40aa65:	59                   	pop    %ecx
40aa66:	8b 45 08             	mov    0x8(%ebp),%eax
40aa69:	50                   	push   %eax
40aa6a:	55                   	push   %ebp
40aa6b:	8d 55 d8             	lea    -0x28(%ebp),%edx
40aa6e:	8b 45 f4             	mov    -0xc(%ebp),%eax
40aa71:	e8 9e fb ff ff       	call   0x40a614
40aa76:	59                   	pop    %ecx
40aa77:	8b 45 d8             	mov    -0x28(%ebp),%eax
40aa7a:	e8 89 fa ff ff       	call   0x40a508
40aa7f:	59                   	pop    %ecx
40aa80:	e9 78 05 00 00       	jmp    0x40affd
40aa85:	55                   	push   %ebp
40aa86:	e8 e5 fa ff ff       	call   0x40a570
40aa8b:	59                   	pop    %ecx
40aa8c:	55                   	push   %ebp
40aa8d:	e8 0a fb ff ff       	call   0x40a59c
40aa92:	59                   	pop    %ecx
40aa93:	8b 45 08             	mov    0x8(%ebp),%eax
40aa96:	50                   	push   %eax
40aa97:	55                   	push   %ebp
40aa98:	8d 55 d4             	lea    -0x2c(%ebp),%edx
40aa9b:	8b 45 f4             	mov    -0xc(%ebp),%eax
40aa9e:	e8 ed fc ff ff       	call   0x40a790
40aaa3:	59                   	pop    %ecx
40aaa4:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40aaa7:	e8 5c fa ff ff       	call   0x40a508
40aaac:	59                   	pop    %ecx
40aaad:	e9 4b 05 00 00       	jmp    0x40affd
40aab2:	55                   	push   %ebp
40aab3:	e8 b8 fa ff ff       	call   0x40a570
40aab8:	59                   	pop    %ecx
40aab9:	55                   	push   %ebp
40aaba:	e8 dd fa ff ff       	call   0x40a59c
40aabf:	59                   	pop    %ecx
40aac0:	8b 45 f4             	mov    -0xc(%ebp),%eax
40aac3:	48                   	dec    %eax
40aac4:	83 e8 02             	sub    $0x2,%eax
40aac7:	72 04                	jb     0x40aacd
40aac9:	74 18                	je     0x40aae3
40aacb:	eb 30                	jmp    0x40aafd
40aacd:	8b 45 08             	mov    0x8(%ebp),%eax
40aad0:	50                   	push   %eax
40aad1:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
40aad5:	8b 55 f4             	mov    -0xc(%ebp),%edx
40aad8:	e8 47 fa ff ff       	call   0x40a524
40aadd:	59                   	pop    %ecx
40aade:	e9 1a 05 00 00       	jmp    0x40affd
40aae3:	8b 45 08             	mov    0x8(%ebp),%eax
40aae6:	50                   	push   %eax
40aae7:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
40aaeb:	8b 04 85 2c 08 47 00 	mov    0x47082c(,%eax,4),%eax
40aaf2:	e8 11 fa ff ff       	call   0x40a508
40aaf7:	59                   	pop    %ecx
40aaf8:	e9 00 05 00 00       	jmp    0x40affd
40aafd:	8b 45 08             	mov    0x8(%ebp),%eax
40ab00:	50                   	push   %eax
40ab01:	0f b7 45 f0          	movzwl -0x10(%ebp),%eax
40ab05:	8b 04 85 5c 08 47 00 	mov    0x47085c(,%eax,4),%eax
40ab0c:	e8 f7 f9 ff ff       	call   0x40a508
40ab11:	59                   	pop    %ecx
40ab12:	e9 e6 04 00 00       	jmp    0x40affd
40ab17:	55                   	push   %ebp
40ab18:	e8 53 fa ff ff       	call   0x40a570
40ab1d:	59                   	pop    %ecx
40ab1e:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ab21:	48                   	dec    %eax
40ab22:	83 e8 02             	sub    $0x2,%eax
40ab25:	72 0a                	jb     0x40ab31
40ab27:	74 25                	je     0x40ab4e
40ab29:	48                   	dec    %eax
40ab2a:	74 49                	je     0x40ab75
40ab2c:	48                   	dec    %eax
40ab2d:	74 6d                	je     0x40ab9c
40ab2f:	eb 7f                	jmp    0x40abb0
40ab31:	55                   	push   %ebp
40ab32:	e8 65 fa ff ff       	call   0x40a59c
40ab37:	59                   	pop    %ecx
40ab38:	8b 45 08             	mov    0x8(%ebp),%eax
40ab3b:	50                   	push   %eax
40ab3c:	0f b7 45 ee          	movzwl -0x12(%ebp),%eax
40ab40:	8b 55 f4             	mov    -0xc(%ebp),%edx
40ab43:	e8 dc f9 ff ff       	call   0x40a524
40ab48:	59                   	pop    %ecx
40ab49:	e9 af 04 00 00       	jmp    0x40affd
40ab4e:	8b 45 08             	mov    0x8(%ebp),%eax
40ab51:	50                   	push   %eax
40ab52:	8b 45 08             	mov    0x8(%ebp),%eax
40ab55:	ff 70 0c             	push   0xc(%eax)
40ab58:	ff 70 08             	push   0x8(%eax)
40ab5b:	e8 28 f9 ff ff       	call   0x40a488
40ab60:	0f b7 c0             	movzwl %ax,%eax
40ab63:	8b 04 85 8c 08 47 00 	mov    0x47088c(,%eax,4),%eax
40ab6a:	e8 99 f9 ff ff       	call   0x40a508
40ab6f:	59                   	pop    %ecx
40ab70:	e9 88 04 00 00       	jmp    0x40affd
40ab75:	8b 45 08             	mov    0x8(%ebp),%eax
40ab78:	50                   	push   %eax
40ab79:	8b 45 08             	mov    0x8(%ebp),%eax
40ab7c:	ff 70 0c             	push   0xc(%eax)
40ab7f:	ff 70 08             	push   0x8(%eax)
40ab82:	e8 01 f9 ff ff       	call   0x40a488
40ab87:	0f b7 c0             	movzwl %ax,%eax
40ab8a:	8b 04 85 a8 08 47 00 	mov    0x4708a8(,%eax,4),%eax
40ab91:	e8 72 f9 ff ff       	call   0x40a508
40ab96:	59                   	pop    %ecx
40ab97:	e9 61 04 00 00       	jmp    0x40affd
40ab9c:	8b 45 08             	mov    0x8(%ebp),%eax
40ab9f:	50                   	push   %eax
40aba0:	a1 14 08 47 00       	mov    0x470814,%eax
40aba5:	e8 fe fc ff ff       	call   0x40a8a8
40abaa:	59                   	pop    %ecx
40abab:	e9 4d 04 00 00       	jmp    0x40affd
40abb0:	8b 45 08             	mov    0x8(%ebp),%eax
40abb3:	50                   	push   %eax
40abb4:	a1 18 08 47 00       	mov    0x470818,%eax
40abb9:	e8 ea fc ff ff       	call   0x40a8a8
40abbe:	59                   	pop    %ecx
40abbf:	e9 39 04 00 00       	jmp    0x40affd
40abc4:	55                   	push   %ebp
40abc5:	e8 a6 f9 ff ff       	call   0x40a570
40abca:	59                   	pop    %ecx
40abcb:	55                   	push   %ebp
40abcc:	e8 03 fa ff ff       	call   0x40a5d4
40abd1:	59                   	pop    %ecx
40abd2:	c6 45 e0 00          	movb   $0x0,-0x20(%ebp)
40abd6:	8b 37                	mov    (%edi),%esi
40abd8:	e9 96 00 00 00       	jmp    0x40ac73
40abdd:	0f b6 06             	movzbl (%esi),%eax
40abe0:	0f b6 c0             	movzbl %al,%eax
40abe3:	0f a3 05 0c 08 46 00 	bt     %eax,0x46080c
40abea:	73 0b                	jae    0x40abf7
40abec:	8b c6                	mov    %esi,%eax
40abee:	e8 a5 22 00 00       	call   0x40ce98
40abf3:	8b f0                	mov    %eax,%esi
40abf5:	eb 7c                	jmp    0x40ac73
40abf7:	0f b6 06             	movzbl (%esi),%eax
40abfa:	83 f8 48             	cmp    $0x48,%eax
40abfd:	7f 13                	jg     0x40ac12
40abff:	74 7b                	je     0x40ac7c
40ac01:	83 e8 22             	sub    $0x22,%eax
40ac04:	74 63                	je     0x40ac69
40ac06:	83 e8 05             	sub    $0x5,%eax
40ac09:	74 5e                	je     0x40ac69
40ac0b:	83 e8 1a             	sub    $0x1a,%eax
40ac0e:	74 0e                	je     0x40ac1e
40ac10:	eb 60                	jmp    0x40ac72
40ac12:	83 e8 61             	sub    $0x61,%eax
40ac15:	74 07                	je     0x40ac1e
40ac17:	83 e8 07             	sub    $0x7,%eax
40ac1a:	74 60                	je     0x40ac7c
40ac1c:	eb 54                	jmp    0x40ac72
40ac1e:	80 7d e0 00          	cmpb   $0x0,-0x20(%ebp)
40ac22:	75 4e                	jne    0x40ac72
40ac24:	ba 3c b0 40 00       	mov    $0x40b03c,%edx
40ac29:	b9 05 00 00 00       	mov    $0x5,%ecx
40ac2e:	8b c6                	mov    %esi,%eax
40ac30:	e8 0f e7 ff ff       	call   0x409344
40ac35:	85 c0                	test   %eax,%eax
40ac37:	74 2a                	je     0x40ac63
40ac39:	ba 44 b0 40 00       	mov    $0x40b044,%edx
40ac3e:	b9 03 00 00 00       	mov    $0x3,%ecx
40ac43:	8b c6                	mov    %esi,%eax
40ac45:	e8 fa e6 ff ff       	call   0x409344
40ac4a:	85 c0                	test   %eax,%eax
40ac4c:	74 15                	je     0x40ac63
40ac4e:	ba 48 b0 40 00       	mov    $0x40b048,%edx
40ac53:	b9 04 00 00 00       	mov    $0x4,%ecx
40ac58:	8b c6                	mov    %esi,%eax
40ac5a:	e8 e5 e6 ff ff       	call   0x409344
40ac5f:	85 c0                	test   %eax,%eax
40ac61:	75 19                	jne    0x40ac7c
40ac63:	c6 45 e1 01          	movb   $0x1,-0x1f(%ebp)
40ac67:	eb 13                	jmp    0x40ac7c
40ac69:	0f b6 45 e0          	movzbl -0x20(%ebp),%eax
40ac6d:	34 01                	xor    $0x1,%al
40ac6f:	88 45 e0             	mov    %al,-0x20(%ebp)
40ac72:	46                   	inc    %esi
40ac73:	80 3e 00             	cmpb   $0x0,(%esi)
40ac76:	0f 85 61 ff ff ff    	jne    0x40abdd