40ae1b:	74 09                	je     0x40ae26
40ae1d:	c7 45 14 0a 00 00 00 	movl   $0xa,0x14(%ebp)
40ae24:	eb 34                	jmp    0x40ae5a
40ae26:	8a 07                	mov    (%edi),%al
40ae28:	3c 78                	cmp    $0x78,%al
40ae2a:	74 0d                	je     0x40ae39
40ae2c:	3c 58                	cmp    $0x58,%al
40ae2e:	74 09                	je     0x40ae39
40ae30:	c7 45 14 08 00 00 00 	movl   $0x8,0x14(%ebp)
40ae37:	eb 21                	jmp    0x40ae5a
40ae39:	c7 45 14 10 00 00 00 	movl   $0x10,0x14(%ebp)
40ae40:	eb 0a                	jmp    0x40ae4c
40ae42:	83 f8 10             	cmp    $0x10,%eax
40ae45:	75 13                	jne    0x40ae5a
40ae47:	80 fb 30             	cmp    $0x30,%bl
40ae4a:	75 0e                	jne    0x40ae5a
40ae4c:	8a 07                	mov    (%edi),%al
40ae4e:	3c 78                	cmp    $0x78,%al
40ae50:	74 04                	je     0x40ae56
40ae52:	3c 58                	cmp    $0x58,%al
40ae54:	75 04                	jne    0x40ae5a
40ae56:	47                   	inc    %edi
40ae57:	8a 1f                	mov    (%edi),%bl
40ae59:	47                   	inc    %edi
40ae5a:	8b b1 c8 00 00 00    	mov    0xc8(%ecx),%esi
40ae60:	b8 ff ff ff ff       	mov    $0xffffffff,%eax
40ae65:	33 d2                	xor    %edx,%edx
40ae67:	f7 75 14             	divl   0x14(%ebp)
40ae6a:	0f b6 cb             	movzbl %bl,%ecx
40ae6d:	0f b7 0c 4e          	movzwl (%esi,%ecx,2),%ecx
40ae71:	f6 c1 04             	test   $0x4,%cl
40ae74:	74 08                	je     0x40ae7e
40ae76:	0f be cb             	movsbl %bl,%ecx
40ae79:	83 e9 30             	sub    $0x30,%ecx
40ae7c:	eb 1b                	jmp    0x40ae99
40ae7e:	f7 c1 03 01 00 00    	test   $0x103,%ecx
40ae84:	74 31                	je     0x40aeb7
40ae86:	8a cb                	mov    %bl,%cl
40ae88:	80 e9 61             	sub    $0x61,%cl
40ae8b:	80 f9 19             	cmp    $0x19,%cl
40ae8e:	0f be cb             	movsbl %bl,%ecx
40ae91:	77 03                	ja     0x40ae96
40ae93:	83 e9 20             	sub    $0x20,%ecx
40ae96:	83 c1 c9             	add    $0xffffffc9,%ecx
40ae99:	3b 4d 14             	cmp    0x14(%ebp),%ecx
40ae9c:	73 19                	jae    0x40aeb7
40ae9e:	83 4d 18 08          	orl    $0x8,0x18(%ebp)
40aea2:	39 45 fc             	cmp    %eax,-0x4(%ebp)
40aea5:	72 27                	jb     0x40aece
40aea7:	75 04                	jne    0x40aead
40aea9:	3b ca                	cmp    %edx,%ecx
40aeab:	76 21                	jbe    0x40aece
40aead:	83 4d 18 04          	orl    $0x4,0x18(%ebp)
40aeb1:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40aeb5:	75 23                	jne    0x40aeda
40aeb7:	8b 45 18             	mov    0x18(%ebp),%eax
40aeba:	4f                   	dec    %edi
40aebb:	a8 08                	test   $0x8,%al
40aebd:	75 20                	jne    0x40aedf
40aebf:	83 7d 10 00          	cmpl   $0x0,0x10(%ebp)
40aec3:	74 03                	je     0x40aec8
40aec5:	8b 7d 0c             	mov    0xc(%ebp),%edi
40aec8:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40aecc:	eb 5b                	jmp    0x40af29
40aece:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40aed1:	0f af 5d 14          	imul   0x14(%ebp),%ebx
40aed5:	03 d9                	add    %ecx,%ebx
40aed7:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40aeda:	8a 1f                	mov    (%edi),%bl
40aedc:	47                   	inc    %edi
40aedd:	eb 8b                	jmp    0x40ae6a
40aedf:	be ff ff ff 7f       	mov    $0x7fffffff,%esi
40aee4:	a8 04                	test   $0x4,%al
40aee6:	75 1b                	jne    0x40af03
40aee8:	a8 01                	test   $0x1,%al
40aeea:	75 3d                	jne    0x40af29
40aeec:	83 e0 02             	and    $0x2,%eax
40aeef:	74 09                	je     0x40aefa
40aef1:	81 7d fc 00 00 00 80 	cmpl   $0x80000000,-0x4(%ebp)
40aef8:	77 09                	ja     0x40af03
40aefa:	85 c0                	test   %eax,%eax
40aefc:	75 2b                	jne    0x40af29
40aefe:	39 75 fc             	cmp    %esi,-0x4(%ebp)
40af01:	76 26                	jbe    0x40af29
40af03:	e8 44 7f ff ff       	call   0x402e4c
40af08:	f6 45 18 01          	testb  $0x1,0x18(%ebp)
40af0c:	c7 00 22 00 00 00    	movl   $0x22,(%eax)
40af12:	74 06                	je     0x40af1a
40af14:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40af18:	eb 0f                	jmp    0x40af29
40af1a:	f6 45 18 02          	testb  $0x2,0x18(%ebp)
40af1e:	6a 00                	push   $0x0
40af20:	58                   	pop    %eax
40af21:	0f 95 c0             	setne  %al
40af24:	03 c6                	add    %esi,%eax
40af26:	89 45 fc             	mov    %eax,-0x4(%ebp)
40af29:	8b 45 10             	mov    0x10(%ebp),%eax
40af2c:	85 c0                	test   %eax,%eax
40af2e:	74 02                	je     0x40af32
40af30:	89 38                	mov    %edi,(%eax)
40af32:	f6 45 18 02          	testb  $0x2,0x18(%ebp)
40af36:	74 03                	je     0x40af3b
40af38:	f7 5d fc             	negl   -0x4(%ebp)
40af3b:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
40af3f:	74 07                	je     0x40af48
40af41:	8b 45 f4             	mov    -0xc(%ebp),%eax
40af44:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40af48:	8b 45 fc             	mov    -0x4(%ebp),%eax
40af4b:	eb 18                	jmp    0x40af65
40af4d:	8b 45 10             	mov    0x10(%ebp),%eax
40af50:	85 c0                	test   %eax,%eax
40af52:	74 02                	je     0x40af56
40af54:	89 30                	mov    %esi,(%eax)
40af56:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
40af5a:	74 07                	je     0x40af63
40af5c:	8b 45 f4             	mov    -0xc(%ebp),%eax
40af5f:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40af63:	33 c0                	xor    %eax,%eax
40af65:	5b                   	pop    %ebx
40af66:	5f                   	pop    %edi
40af67:	5e                   	pop    %esi
40af68:	c9                   	leave
40af69:	c3                   	ret
40af6a:	8b ff                	mov    %edi,%edi
40af6c:	55                   	push   %ebp
40af6d:	8b ec                	mov    %esp,%ebp
40af6f:	33 c0                	xor    %eax,%eax
40af71:	50                   	push   %eax
40af72:	ff 75 10             	push   0x10(%ebp)
40af75:	ff 75 0c             	push   0xc(%ebp)
40af78:	ff 75 08             	push   0x8(%ebp)
40af7b:	39 05 ec 0f 43 00    	cmp    %eax,0x430fec
40af81:	75 07                	jne    0x40af8a
40af83:	68 40 fb 41 00       	push   $0x41fb40
40af88:	eb 01                	jmp    0x40af8b
40af8a:	50                   	push   %eax
40af8b:	e8 ab fd ff ff       	call   0x40ad3b
40af90:	83 c4 14             	add    $0x14,%esp
40af93:	5d                   	pop    %ebp
40af94:	c3                   	ret
40af95:	cc                   	int3
40af96:	cc                   	int3
40af97:	cc                   	int3
40af98:	cc                   	int3
40af99:	cc                   	int3
40af9a:	cc                   	int3
40af9b:	cc                   	int3
40af9c:	cc                   	int3
40af9d:	cc                   	int3
40af9e:	cc                   	int3
40af9f:	cc                   	int3
40afa0:	55                   	push   %ebp
40afa1:	8b ec                	mov    %esp,%ebp
40afa3:	57                   	push   %edi
40afa4:	56                   	push   %esi
40afa5:	53                   	push   %ebx
40afa6:	8b 4d 10             	mov    0x10(%ebp),%ecx
40afa9:	0b c9                	or     %ecx,%ecx
40afab:	74 4d                	je     0x40affa
40afad:	8b 75 08             	mov    0x8(%ebp),%esi
40afb0:	8b 7d 0c             	mov    0xc(%ebp),%edi
40afb3:	b7 41                	mov    $0x41,%bh
40afb5:	b3 5a                	mov    $0x5a,%bl
40afb7:	b6 20                	mov    $0x20,%dh
40afb9:	8d 49 00             	lea    0x0(%ecx),%ecx
40afbc:	8a 26                	mov    (%esi),%ah
40afbe:	0a e4                	or     %ah,%ah
40afc0:	8a 07                	mov    (%edi),%al
40afc2:	74 27                	je     0x40afeb
40afc4:	0a c0                	or     %al,%al
40afc6:	74 23                	je     0x40afeb
40afc8:	83 c6 01             	add    $0x1,%esi
40afcb:	83 c7 01             	add    $0x1,%edi
40afce:	3a e7                	cmp    %bh,%ah
40afd0:	72 06                	jb     0x40afd8
40afd2:	3a e3                	cmp    %bl,%ah
40afd4:	77 02                	ja     0x40afd8
40afd6:	02 e6                	add    %dh,%ah
40afd8:	3a c7                	cmp    %bh,%al
40afda:	72 06                	jb     0x40afe2
40afdc:	3a c3                	cmp    %bl,%al
40afde:	77 02                	ja     0x40afe2
40afe0:	02 c6                	add    %dh,%al
40afe2:	3a e0                	cmp    %al,%ah
40afe4:	75 0b                	jne    0x40aff1
40afe6:	83 e9 01             	sub    $0x1,%ecx
40afe9:	75 d1                	jne    0x40afbc
40afeb:	33 c9                	xor    %ecx,%ecx
40afed:	3a e0                	cmp    %al,%ah
40afef:	74 09                	je     0x40affa
40aff1:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
40aff6:	72 02                	jb     0x40affa
40aff8:	f7 d9                	neg    %ecx
40affa:	8b c1                	mov    %ecx,%eax
40affc:	5b                   	pop    %ebx
40affd:	5e                   	pop    %esi
40affe:	5f                   	pop    %edi
40afff:	c9                   	leave
40b000:	c3                   	ret
40b001:	cc                   	int3
40b002:	cc                   	int3
40b003:	cc                   	int3
40b004:	cc                   	int3
40b005:	cc                   	int3
40b006:	cc                   	int3
40b007:	cc                   	int3
40b008:	cc                   	int3
40b009:	cc                   	int3
40b00a:	cc                   	int3
40b00b:	cc                   	int3
40b00c:	cc                   	int3
40b00d:	cc                   	int3
40b00e:	cc                   	int3
40b00f:	cc                   	int3
40b010:	56                   	push   %esi
40b011:	8b 44 24 14          	mov    0x14(%esp),%eax
40b015:	0b c0                	or     %eax,%eax
40b017:	75 28                	jne    0x40b041
40b019:	8b 4c 24 10          	mov    0x10(%esp),%ecx
40b01d:	8b 44 24 0c          	mov    0xc(%esp),%eax
40b021:	33 d2                	xor    %edx,%edx
40b023:	f7 f1                	div    %ecx
40b025:	8b d8                	mov    %eax,%ebx
40b027:	8b 44 24 08          	mov    0x8(%esp),%eax
40b02b:	f7 f1                	div    %ecx
40b02d:	8b f0                	mov    %eax,%esi
40b02f:	8b c3                	mov    %ebx,%eax
40b031:	f7 64 24 10          	mull   0x10(%esp)
40b035:	8b c8                	mov    %eax,%ecx
40b037:	8b c6                	mov    %esi,%eax
40b039:	f7 64 24 10          	mull   0x10(%esp)
40b03d:	03 d1                	add    %ecx,%edx
40b03f:	eb 47                	jmp    0x40b088
40b041:	8b c8                	mov    %eax,%ecx
40b043:	8b 5c 24 10          	mov    0x10(%esp),%ebx
40b047:	8b 54 24 0c          	mov    0xc(%esp),%edx
40b04b:	8b 44 24 08          	mov    0x8(%esp),%eax
40b04f:	d1 e9                	shr    $1,%ecx
40b051:	d1 db                	rcr    $1,%ebx
40b053:	d1 ea                	shr    $1,%edx
40b055:	d1 d8                	rcr    $1,%eax
40b057:	0b c9                	or     %ecx,%ecx
40b059:	75 f4                	jne    0x40b04f
40b05b:	f7 f3                	div    %ebx
40b05d:	8b f0                	mov    %eax,%esi
40b05f:	f7 64 24 14          	mull   0x14(%esp)
40b063:	8b c8                	mov    %eax,%ecx
40b065:	8b 44 24 10          	mov    0x10(%esp),%eax
40b069:	f7 e6                	mul    %esi
40b06b:	03 d1                	add    %ecx,%edx
40b06d:	72 0e                	jb     0x40b07d
40b06f:	3b 54 24 0c          	cmp    0xc(%esp),%edx
40b073:	77 08                	ja     0x40b07d
40b075:	72 0f                	jb     0x40b086
40b077:	3b 44 24 08          	cmp    0x8(%esp),%eax
40b07b:	76 09                	jbe    0x40b086
40b07d:	4e                   	dec    %esi
40b07e:	2b 44 24 10          	sub    0x10(%esp),%eax
40b082:	1b 54 24 14          	sbb    0x14(%esp),%edx
40b086:	33 db                	xor    %ebx,%ebx
40b088:	2b 44 24 08          	sub    0x8(%esp),%eax
40b08c:	1b 54 24 0c          	sbb    0xc(%esp),%edx
40b090:	f7 da                	neg    %edx
40b092:	f7 d8                	neg    %eax
40b094:	83 da 00             	sbb    $0x0,%edx
40b097:	8b ca                	mov    %edx,%ecx
40b099:	8b d3                	mov    %ebx,%edx
40b09b:	8b d9                	mov    %ecx,%ebx
40b09d:	8b c8                	mov    %eax,%ecx
40b09f:	8b c6                	mov    %esi,%eax
40b0a1:	5e                   	pop    %esi
40b0a2:	c2 10 00             	ret    $0x10
40b0a5:	8b ff                	mov    %edi,%edi
40b0a7:	55                   	push   %ebp
40b0a8:	8b ec                	mov    %esp,%ebp
40b0aa:	83 ec 18             	sub    $0x18,%esp
40b0ad:	a1 04 f0 41 00       	mov    0x41f004,%eax
40b0b2:	33 c5                	xor    %ebp,%eax
40b0b4:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b0b7:	8b 45 10             	mov    0x10(%ebp),%eax
40b0ba:	53                   	push   %ebx
40b0bb:	56                   	push   %esi
40b0bc:	33 f6                	xor    %esi,%esi
40b0be:	57                   	push   %edi
40b0bf:	c7 45 e8 4e 40 00 00 	movl   $0x404e,-0x18(%ebp)
40b0c6:	89 30                	mov    %esi,(%eax)
40b0c8:	89 70 04             	mov    %esi,0x4(%eax)
40b0cb:	89 70 08             	mov    %esi,0x8(%eax)
40b0ce:	39 75 0c             	cmp    %esi,0xc(%ebp)
40b0d1:	0f 86 46 01 00 00    	jbe    0x40b21d
40b0d7:	8b 10                	mov    (%eax),%edx
40b0d9:	8b 58 04             	mov    0x4(%eax),%ebx
40b0dc:	8b f0                	mov    %eax,%esi
40b0de:	8d 7d f0             	lea    -0x10(%ebp),%edi
40b0e1:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40b0e2:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40b0e3:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40b0e4:	8b ca                	mov    %edx,%ecx
40b0e6:	c1 e9 1f             	shr    $0x1f,%ecx
40b0e9:	8d 3c 12             	lea    (%edx,%edx,1),%edi
40b0ec:	8d 14 1b             	lea    (%ebx,%ebx,1),%edx
40b0ef:	0b d1                	or     %ecx,%edx
40b0f1:	8b 48 08             	mov    0x8(%eax),%ecx
40b0f4:	8b f3                	mov    %ebx,%esi
40b0f6:	c1 ee 1f             	shr    $0x1f,%esi
40b0f9:	03 c9                	add    %ecx,%ecx
40b0fb:	0b ce                	or     %esi,%ecx
40b0fd:	89 7d ec             	mov    %edi,-0x14(%ebp)
40b100:	8b f7                	mov    %edi,%esi
40b102:	83 65 ec 00          	andl   $0x0,-0x14(%ebp)
40b106:	8b da                	mov    %edx,%ebx
40b108:	c1 eb 1f             	shr    $0x1f,%ebx
40b10b:	03 c9                	add    %ecx,%ecx
40b10d:	c1 ef 1f             	shr    $0x1f,%edi
40b110:	0b cb                	or     %ebx,%ecx
40b112:	8b 5d f0             	mov    -0x10(%ebp),%ebx
40b115:	03 f6                	add    %esi,%esi
40b117:	03 d2                	add    %edx,%edx
40b119:	0b d7                	or     %edi,%edx
40b11b:	8d 3c 1e             	lea    (%esi,%ebx,1),%edi
40b11e:	89 30                	mov    %esi,(%eax)
40b120:	89 50 04             	mov    %edx,0x4(%eax)
40b123:	89 48 08             	mov    %ecx,0x8(%eax)
40b126:	3b fe                	cmp    %esi,%edi
40b128:	72 04                	jb     0x40b12e
40b12a:	3b fb                	cmp    %ebx,%edi
40b12c:	73 07                	jae    0x40b135
40b12e:	c7 45 ec 01 00 00 00 	movl   $0x1,-0x14(%ebp)
40b135:	33 db                	xor    %ebx,%ebx
40b137:	89 38                	mov    %edi,(%eax)
40b139:	39 5d ec             	cmp    %ebx,-0x14(%ebp)
40b13c:	74 1a                	je     0x40b158
40b13e:	8d 72 01             	lea    0x1(%edx),%esi
40b141:	3b f2                	cmp    %edx,%esi
40b143:	72 05                	jb     0x40b14a
40b145:	83 fe 01             	cmp    $0x1,%esi
40b148:	73 03                	jae    0x40b14d
40b14a:	33 db                	xor    %ebx,%ebx
40b14c:	43                   	inc    %ebx
40b14d:	89 70 04             	mov    %esi,0x4(%eax)
40b150:	85 db                	test   %ebx,%ebx
40b152:	74 04                	je     0x40b158
40b154:	41                   	inc    %ecx
40b155:	89 48 08             	mov    %ecx,0x8(%eax)
40b158:	8b 48 04             	mov    0x4(%eax),%ecx
40b15b:	8b 55 f4             	mov    -0xc(%ebp),%edx
40b15e:	8d 1c 11             	lea    (%ecx,%edx,1),%ebx
40b161:	33 f6                	xor    %esi,%esi
40b163:	3b d9                	cmp    %ecx,%ebx
40b165:	72 04                	jb     0x40b16b