40ac7e:	39 45 10             	cmp    %eax,0x10(%ebp)
40ac81:	77 14                	ja     0x40ac97
40ac83:	e8 7f d0 ff ff       	call   0x407d07
40ac88:	6a 22                	push   $0x22
40ac8a:	5f                   	pop    %edi
40ac8b:	89 38                	mov    %edi,(%eax)
40ac8d:	e8 9c cf ff ff       	call   0x407c2e
40ac92:	e9 a8 02 00 00       	jmp    0x40af3f
40ac97:	8b 55 08             	mov    0x8(%ebp),%edx
40ac9a:	8b 02                	mov    (%edx),%eax
40ac9c:	8b 4a 04             	mov    0x4(%edx),%ecx
40ac9f:	89 45 e0             	mov    %eax,-0x20(%ebp)
40aca2:	8b c1                	mov    %ecx,%eax
40aca4:	c1 e8 14             	shr    $0x14,%eax
40aca7:	25 ff 07 00 00       	and    $0x7ff,%eax
40acac:	3d ff 07 00 00       	cmp    $0x7ff,%eax
40acb1:	75 52                	jne    0x40ad05
40acb3:	3b db                	cmp    %ebx,%ebx
40acb5:	75 4e                	jne    0x40ad05
40acb7:	53                   	push   %ebx
40acb8:	ff 75 24             	push   0x24(%ebp)
40acbb:	53                   	push   %ebx
40acbc:	57                   	push   %edi
40acbd:	ff 75 18             	push   0x18(%ebp)
40acc0:	ff 75 14             	push   0x14(%ebp)
40acc3:	ff 75 10             	push   0x10(%ebp)
40acc6:	56                   	push   %esi
40acc7:	52                   	push   %edx
40acc8:	e8 8b 02 00 00       	call   0x40af58
40accd:	8b f8                	mov    %eax,%edi
40accf:	83 c4 24             	add    $0x24,%esp
40acd2:	85 ff                	test   %edi,%edi
40acd4:	74 07                	je     0x40acdd
40acd6:	88 1e                	mov    %bl,(%esi)
40acd8:	e9 62 02 00 00       	jmp    0x40af3f
40acdd:	6a 65                	push   $0x65
40acdf:	56                   	push   %esi
40ace0:	e8 7b dd 00 00       	call   0x418a60
40ace5:	59                   	pop    %ecx
40ace6:	59                   	pop    %ecx
40ace7:	85 c0                	test   %eax,%eax
40ace9:	74 13                	je     0x40acfe
40aceb:	38 5d 20             	cmp    %bl,0x20(%ebp)
40acee:	0f 94 c1             	sete   %cl
40acf1:	fe c9                	dec    %cl
40acf3:	80 e1 e0             	and    $0xe0,%cl
40acf6:	80 c1 70             	add    $0x70,%cl
40acf9:	88 08                	mov    %cl,(%eax)
40acfb:	88 58 03             	mov    %bl,0x3(%eax)
40acfe:	8b fb                	mov    %ebx,%edi
40ad00:	e9 3a 02 00 00       	jmp    0x40af3f
40ad05:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
40ad0b:	8b c3                	mov    %ebx,%eax
40ad0d:	0b c1                	or     %ecx,%eax
40ad0f:	74 04                	je     0x40ad15
40ad11:	c6 06 2d             	movb   $0x2d,(%esi)
40ad14:	46                   	inc    %esi
40ad15:	8b 4a 04             	mov    0x4(%edx),%ecx
40ad18:	33 db                	xor    %ebx,%ebx
40ad1a:	38 5d 20             	cmp    %bl,0x20(%ebp)
40ad1d:	6a 30                	push   $0x30
40ad1f:	0f 94 c3             	sete   %bl
40ad22:	c7 45 f4 ff 03 00 00 	movl   $0x3ff,-0xc(%ebp)
40ad29:	4b                   	dec    %ebx
40ad2a:	33 c0                	xor    %eax,%eax
40ad2c:	83 e3 e0             	and    $0xffffffe0,%ebx
40ad2f:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
40ad35:	83 c3 27             	add    $0x27,%ebx
40ad38:	0b c1                	or     %ecx,%eax
40ad3a:	89 5d e4             	mov    %ebx,-0x1c(%ebp)
40ad3d:	58                   	pop    %eax
40ad3e:	75 1f                	jne    0x40ad5f
40ad40:	88 06                	mov    %al,(%esi)
40ad42:	46                   	inc    %esi
40ad43:	8b 42 04             	mov    0x4(%edx),%eax
40ad46:	8b 0a                	mov    (%edx),%ecx
40ad48:	25 ff ff 0f 00       	and    $0xfffff,%eax
40ad4d:	0b c8                	or     %eax,%ecx
40ad4f:	75 05                	jne    0x40ad56
40ad51:	21 4d f4             	and    %ecx,-0xc(%ebp)
40ad54:	eb 0d                	jmp    0x40ad63
40ad56:	c7 45 f4 fe 03 00 00 	movl   $0x3fe,-0xc(%ebp)
40ad5d:	eb 04                	jmp    0x40ad63
40ad5f:	c6 06 31             	movb   $0x31,(%esi)
40ad62:	46                   	inc    %esi
40ad63:	8b ce                	mov    %esi,%ecx
40ad65:	46                   	inc    %esi
40ad66:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40ad69:	85 ff                	test   %edi,%edi
40ad6b:	75 05                	jne    0x40ad72
40ad6d:	c6 01 00             	movb   $0x0,(%ecx)
40ad70:	eb 0f                	jmp    0x40ad81
40ad72:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40ad75:	8b 80 88 00 00 00    	mov    0x88(%eax),%eax
40ad7b:	8b 00                	mov    (%eax),%eax
40ad7d:	8a 00                	mov    (%eax),%al
40ad7f:	88 01                	mov    %al,(%ecx)
40ad81:	8b 42 04             	mov    0x4(%edx),%eax
40ad84:	25 ff ff 0f 00       	and    $0xfffff,%eax
40ad89:	89 45 f0             	mov    %eax,-0x10(%ebp)
40ad8c:	77 09                	ja     0x40ad97
40ad8e:	83 3a 00             	cmpl   $0x0,(%edx)
40ad91:	0f 86 c5 00 00 00    	jbe    0x40ae5c
40ad97:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ad9b:	b9 00 00 0f 00       	mov    $0xf0000,%ecx
40ada0:	6a 30                	push   $0x30
40ada2:	58                   	pop    %eax
40ada3:	89 45 f8             	mov    %eax,-0x8(%ebp)
40ada6:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40ada9:	85 ff                	test   %edi,%edi
40adab:	7e 53                	jle    0x40ae00
40adad:	8b 02                	mov    (%edx),%eax
40adaf:	8b 52 04             	mov    0x4(%edx),%edx
40adb2:	23 45 fc             	and    -0x4(%ebp),%eax
40adb5:	23 d1                	and    %ecx,%edx
40adb7:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40adba:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
40adc0:	0f bf c9             	movswl %cx,%ecx
40adc3:	e8 b8 d5 00 00       	call   0x418380
40adc8:	6a 30                	push   $0x30
40adca:	59                   	pop    %ecx
40adcb:	66 03 c1             	add    %cx,%ax
40adce:	0f b7 c0             	movzwl %ax,%eax
40add1:	83 f8 39             	cmp    $0x39,%eax
40add4:	76 02                	jbe    0x40add8
40add6:	03 c3                	add    %ebx,%eax
40add8:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40addb:	8b 55 08             	mov    0x8(%ebp),%edx
40adde:	88 06                	mov    %al,(%esi)
40ade0:	46                   	inc    %esi
40ade1:	8b 45 fc             	mov    -0x4(%ebp),%eax
40ade4:	0f ac c8 04          	shrd   $0x4,%ecx,%eax
40ade8:	89 45 fc             	mov    %eax,-0x4(%ebp)
40adeb:	8b 45 f8             	mov    -0x8(%ebp),%eax
40adee:	c1 e9 04             	shr    $0x4,%ecx
40adf1:	83 e8 04             	sub    $0x4,%eax
40adf4:	4f                   	dec    %edi
40adf5:	89 4d f0             	mov    %ecx,-0x10(%ebp)
40adf8:	89 45 f8             	mov    %eax,-0x8(%ebp)
40adfb:	66 85 c0             	test   %ax,%ax
40adfe:	79 a9                	jns    0x40ada9
40ae00:	66 85 c0             	test   %ax,%ax
40ae03:	78 57                	js     0x40ae5c
40ae05:	8b 02                	mov    (%edx),%eax
40ae07:	8b 52 04             	mov    0x4(%edx),%edx
40ae0a:	23 45 fc             	and    -0x4(%ebp),%eax
40ae0d:	23 d1                	and    %ecx,%edx
40ae0f:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40ae12:	81 e2 ff ff 0f 00    	and    $0xfffff,%edx
40ae18:	0f bf c9             	movswl %cx,%ecx
40ae1b:	e8 60 d5 00 00       	call   0x418380
40ae20:	66 83 f8 08          	cmp    $0x8,%ax
40ae24:	76 36                	jbe    0x40ae5c
40ae26:	6a 30                	push   $0x30
40ae28:	8d 46 ff             	lea    -0x1(%esi),%eax
40ae2b:	5b                   	pop    %ebx
40ae2c:	8a 08                	mov    (%eax),%cl
40ae2e:	80 f9 66             	cmp    $0x66,%cl
40ae31:	74 05                	je     0x40ae38
40ae33:	80 f9 46             	cmp    $0x46,%cl
40ae36:	75 05                	jne    0x40ae3d
40ae38:	88 18                	mov    %bl,(%eax)
40ae3a:	48                   	dec    %eax
40ae3b:	eb ef                	jmp    0x40ae2c
40ae3d:	8b 5d e4             	mov    -0x1c(%ebp),%ebx
40ae40:	3b 45 e8             	cmp    -0x18(%ebp),%eax
40ae43:	74 14                	je     0x40ae59
40ae45:	8a 08                	mov    (%eax),%cl
40ae47:	80 f9 39             	cmp    $0x39,%cl
40ae4a:	75 07                	jne    0x40ae53
40ae4c:	80 c3 3a             	add    $0x3a,%bl
40ae4f:	88 18                	mov    %bl,(%eax)
40ae51:	eb 09                	jmp    0x40ae5c
40ae53:	fe c1                	inc    %cl
40ae55:	88 08                	mov    %cl,(%eax)
40ae57:	eb 03                	jmp    0x40ae5c
40ae59:	fe 40 ff             	incb   -0x1(%eax)
40ae5c:	85 ff                	test   %edi,%edi
40ae5e:	7e 10                	jle    0x40ae70
40ae60:	57                   	push   %edi
40ae61:	6a 30                	push   $0x30
40ae63:	58                   	pop    %eax
40ae64:	50                   	push   %eax
40ae65:	56                   	push   %esi
40ae66:	e8 f5 9b ff ff       	call   0x404a60
40ae6b:	83 c4 0c             	add    $0xc,%esp
40ae6e:	03 f7                	add    %edi,%esi
40ae70:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ae73:	80 38 00             	cmpb   $0x0,(%eax)
40ae76:	75 02                	jne    0x40ae7a
40ae78:	8b f0                	mov    %eax,%esi
40ae7a:	80 7d 20 00          	cmpb   $0x0,0x20(%ebp)
40ae7e:	b1 34                	mov    $0x34,%cl
40ae80:	8b 55 08             	mov    0x8(%ebp),%edx
40ae83:	0f 94 c0             	sete   %al
40ae86:	fe c8                	dec    %al
40ae88:	24 e0                	and    $0xe0,%al
40ae8a:	04 70                	add    $0x70,%al
40ae8c:	88 06                	mov    %al,(%esi)
40ae8e:	8b 02                	mov    (%edx),%eax
40ae90:	8b 52 04             	mov    0x4(%edx),%edx
40ae93:	e8 e8 d4 00 00       	call   0x418380
40ae98:	8b c8                	mov    %eax,%ecx
40ae9a:	33 db                	xor    %ebx,%ebx
40ae9c:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
40aea2:	2b 4d f4             	sub    -0xc(%ebp),%ecx
40aea5:	1b db                	sbb    %ebx,%ebx
40aea7:	78 0f                	js     0x40aeb8
40aea9:	7f 04                	jg     0x40aeaf
40aeab:	85 c9                	test   %ecx,%ecx
40aead:	72 09                	jb     0x40aeb8
40aeaf:	c6 46 01 2b          	movb   $0x2b,0x1(%esi)
40aeb3:	83 c6 02             	add    $0x2,%esi
40aeb6:	eb 0e                	jmp    0x40aec6
40aeb8:	c6 46 01 2d          	movb   $0x2d,0x1(%esi)
40aebc:	83 c6 02             	add    $0x2,%esi
40aebf:	f7 d9                	neg    %ecx
40aec1:	83 d3 00             	adc    $0x0,%ebx
40aec4:	f7 db                	neg    %ebx
40aec6:	8b fe                	mov    %esi,%edi
40aec8:	6a 30                	push   $0x30
40aeca:	58                   	pop    %eax
40aecb:	88 06                	mov    %al,(%esi)
40aecd:	85 db                	test   %ebx,%ebx
40aecf:	7c 3f                	jl     0x40af10
40aed1:	b8 e8 03 00 00       	mov    $0x3e8,%eax
40aed6:	7f 04                	jg     0x40aedc
40aed8:	3b c8                	cmp    %eax,%ecx
40aeda:	72 16                	jb     0x40aef2
40aedc:	6a 00                	push   $0x0
40aede:	50                   	push   %eax
40aedf:	53                   	push   %ebx
40aee0:	51                   	push   %ecx
40aee1:	e8 1a d3 00 00       	call   0x418200
40aee6:	04 30                	add    $0x30,%al
40aee8:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40aeeb:	88 06                	mov    %al,(%esi)
40aeed:	46                   	inc    %esi
40aeee:	3b f7                	cmp    %edi,%esi
40aef0:	75 0b                	jne    0x40aefd
40aef2:	85 db                	test   %ebx,%ebx
40aef4:	7c 1a                	jl     0x40af10
40aef6:	7f 05                	jg     0x40aefd
40aef8:	83 f9 64             	cmp    $0x64,%ecx
40aefb:	72 13                	jb     0x40af10
40aefd:	6a 00                	push   $0x0
40aeff:	6a 64                	push   $0x64
40af01:	53                   	push   %ebx
40af02:	51                   	push   %ecx
40af03:	e8 f8 d2 00 00       	call   0x418200
40af08:	04 30                	add    $0x30,%al
40af0a:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40af0d:	88 06                	mov    %al,(%esi)
40af0f:	46                   	inc    %esi
40af10:	3b f7                	cmp    %edi,%esi
40af12:	75 0b                	jne    0x40af1f
40af14:	85 db                	test   %ebx,%ebx
40af16:	7c 1a                	jl     0x40af32
40af18:	7f 05                	jg     0x40af1f
40af1a:	83 f9 0a             	cmp    $0xa,%ecx
40af1d:	72 13                	jb     0x40af32
40af1f:	6a 00                	push   $0x0
40af21:	6a 0a                	push   $0xa
40af23:	53                   	push   %ebx
40af24:	51                   	push   %ecx
40af25:	e8 d6 d2 00 00       	call   0x418200
40af2a:	04 30                	add    $0x30,%al
40af2c:	89 55 e4             	mov    %edx,-0x1c(%ebp)
40af2f:	88 06                	mov    %al,(%esi)
40af31:	46                   	inc    %esi
40af32:	6a 30                	push   $0x30
40af34:	58                   	pop    %eax
40af35:	02 c8                	add    %al,%cl
40af37:	33 ff                	xor    %edi,%edi
40af39:	88 0e                	mov    %cl,(%esi)
40af3b:	c6 46 01 00          	movb   $0x0,0x1(%esi)
40af3f:	80 7d dc 00          	cmpb   $0x0,-0x24(%ebp)
40af43:	74 0a                	je     0x40af4f
40af45:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40af48:	83 a1 50 03 00 00 fd 	andl   $0xfffffffd,0x350(%ecx)
40af4f:	8b c7                	mov    %edi,%eax
40af51:	5f                   	pop    %edi
40af52:	5e                   	pop    %esi
40af53:	5b                   	pop    %ebx
40af54:	8b e5                	mov    %ebp,%esp
40af56:	5d                   	pop    %ebp
40af57:	c3                   	ret
40af58:	8b ff                	mov    %edi,%edi
40af5a:	55                   	push   %ebp
40af5b:	8b ec                	mov    %esp,%ebp
40af5d:	83 ec 0c             	sub    $0xc,%esp
40af60:	8d 45 f4             	lea    -0xc(%ebp),%eax
40af63:	56                   	push   %esi
40af64:	8b 75 1c             	mov    0x1c(%ebp),%esi
40af67:	57                   	push   %edi
40af68:	ff 75 18             	push   0x18(%ebp)
40af6b:	ff 75 14             	push   0x14(%ebp)
40af6e:	8d 7e 01             	lea    0x1(%esi),%edi
40af71:	50                   	push   %eax
40af72:	8b 45 08             	mov    0x8(%ebp),%eax
40af75:	57                   	push   %edi
40af76:	ff 70 04             	push   0x4(%eax)
40af79:	ff 30                	push   (%eax)
40af7b:	e8 ae 70 00 00       	call   0x41202e
40af80:	83 c9 ff             	or     $0xffffffff,%ecx
40af83:	83 c4 18             	add    $0x18,%esp
40af86:	39 4d 10             	cmp    %ecx,0x10(%ebp)
40af89:	74 17                	je     0x40afa2
40af8b:	8b 4d 10             	mov    0x10(%ebp),%ecx
40af8e:	33 c0                	xor    %eax,%eax
40af90:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
40af94:	0f 94 c0             	sete   %al
40af97:	2b c8                	sub    %eax,%ecx
40af99:	33 c0                	xor    %eax,%eax
40af9b:	85 f6                	test   %esi,%esi
40af9d:	0f 9f c0             	setg   %al
40afa0:	2b c8                	sub    %eax,%ecx
40afa2:	8d 45 f4             	lea    -0xc(%ebp),%eax
40afa5:	50                   	push   %eax
40afa6:	57                   	push   %edi
40afa7:	8b 7d 0c             	mov    0xc(%ebp),%edi
40afaa:	51                   	push   %ecx
40afab:	33 c9                	xor    %ecx,%ecx
40afad:	83 7d f4 2d          	cmpl   $0x2d,-0xc(%ebp)
40afb1:	0f 94 c1             	sete   %cl
40afb4:	33 c0                	xor    %eax,%eax
40afb6:	85 f6                	test   %esi,%esi
40afb8:	0f 9f c0             	setg   %al
40afbb:	03 cf                	add    %edi,%ecx
40afbd:	03 c1                	add    %ecx,%eax
40afbf:	50                   	push   %eax
40afc0:	e8 d3 6a 00 00       	call   0x411a98
40afc5:	83 c4 10             	add    $0x10,%esp
40afc8:	85 c0                	test   %eax,%eax
40afca:	74 05                	je     0x40afd1
40afcc:	c6 07 00             	movb   $0x0,(%edi)
40afcf:	eb 1c                	jmp    0x40afed
40afd1:	ff 75 28             	push   0x28(%ebp)
40afd4:	8d 45 f4             	lea    -0xc(%ebp),%eax
40afd7:	6a 00                	push   $0x0
40afd9:	50                   	push   %eax
40afda:	ff 75 24             	push   0x24(%ebp)
40afdd:	ff 75 20             	push   0x20(%ebp)
40afe0:	56                   	push   %esi
40afe1:	ff 75 10             	push   0x10(%ebp)
40afe4:	57                   	push   %edi
40afe5:	e8 09 00 00 00       	call   0x40aff3
40afea:	83 c4 20             	add    $0x20,%esp
40afed:	5f                   	pop    %edi
40afee:	5e                   	pop    %esi