40ac39:	e9 b0 00 00 00       	jmp    0x40acee
40ac3e:	e8 16 fd ff ff       	call   0x40a959
40ac43:	50                   	push   %eax
40ac44:	89 45 f4             	mov    %eax,-0xc(%ebp)
40ac47:	e8 53 8c ff ff       	call   0x40389f
40ac4c:	59                   	pop    %ecx
40ac4d:	0f ae 5d f4          	stmxcsr -0xc(%ebp)
40ac51:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40ac54:	33 d2                	xor    %edx,%edx
40ac56:	84 c9                	test   %cl,%cl
40ac58:	79 03                	jns    0x40ac5d
40ac5a:	6a 10                	push   $0x10
40ac5c:	5a                   	pop    %edx
40ac5d:	f7 c1 00 02 00 00    	test   $0x200,%ecx
40ac63:	74 03                	je     0x40ac68
40ac65:	83 ca 08             	or     $0x8,%edx
40ac68:	f7 c1 00 04 00 00    	test   $0x400,%ecx
40ac6e:	74 03                	je     0x40ac73
40ac70:	83 ca 04             	or     $0x4,%edx
40ac73:	f7 c1 00 08 00 00    	test   $0x800,%ecx
40ac79:	74 03                	je     0x40ac7e
40ac7b:	83 ca 02             	or     $0x2,%edx
40ac7e:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
40ac84:	74 03                	je     0x40ac89
40ac86:	83 ca 01             	or     $0x1,%edx
40ac89:	be 00 01 00 00       	mov    $0x100,%esi
40ac8e:	85 ce                	test   %ecx,%esi
40ac90:	74 06                	je     0x40ac98
40ac92:	81 ca 00 00 08 00    	or     $0x80000,%edx
40ac98:	8b c1                	mov    %ecx,%eax
40ac9a:	23 c3                	and    %ebx,%eax
40ac9c:	74 24                	je     0x40acc2
40ac9e:	3d 00 20 00 00       	cmp    $0x2000,%eax
40aca3:	74 1b                	je     0x40acc0
40aca5:	3d 00 40 00 00       	cmp    $0x4000,%eax
40acaa:	74 0c                	je     0x40acb8
40acac:	3b c3                	cmp    %ebx,%eax
40acae:	75 12                	jne    0x40acc2
40acb0:	81 ca 00 03 00 00    	or     $0x300,%edx
40acb6:	eb 0a                	jmp    0x40acc2
40acb8:	81 ca 00 02 00 00    	or     $0x200,%edx
40acbe:	eb 02                	jmp    0x40acc2
40acc0:	0b d6                	or     %esi,%edx
40acc2:	23 cf                	and    %edi,%ecx
40acc4:	83 e9 40             	sub    $0x40,%ecx
40acc7:	74 1d                	je     0x40ace6
40acc9:	81 e9 c0 7f 00 00    	sub    $0x7fc0,%ecx
40accf:	74 0d                	je     0x40acde
40acd1:	83 e9 40             	sub    $0x40,%ecx
40acd4:	75 16                	jne    0x40acec
40acd6:	81 ca 00 00 00 01    	or     $0x1000000,%edx
40acdc:	eb 0e                	jmp    0x40acec
40acde:	81 ca 00 00 00 03    	or     $0x3000000,%edx
40ace4:	eb 06                	jmp    0x40acec
40ace6:	81 ca 00 00 00 02    	or     $0x2000000,%edx
40acec:	8b c2                	mov    %edx,%eax
40acee:	8b c8                	mov    %eax,%ecx
40acf0:	33 4d 0c             	xor    0xc(%ebp),%ecx
40acf3:	0b 45 0c             	or     0xc(%ebp),%eax
40acf6:	f7 c1 1f 03 08 00    	test   $0x8031f,%ecx
40acfc:	74 05                	je     0x40ad03
40acfe:	0d 00 00 00 80       	or     $0x80000000,%eax
40ad03:	5f                   	pop    %edi
40ad04:	5e                   	pop    %esi
40ad05:	5b                   	pop    %ebx
40ad06:	c9                   	leave
40ad07:	c3                   	ret
40ad08:	cc                   	int3
40ad09:	cc                   	int3
40ad0a:	cc                   	int3
40ad0b:	cc                   	int3
40ad0c:	cc                   	int3
40ad0d:	cc                   	int3
40ad0e:	cc                   	int3
40ad0f:	cc                   	int3
40ad10:	51                   	push   %ecx
40ad11:	8d 4c 24 04          	lea    0x4(%esp),%ecx
40ad15:	2b c8                	sub    %eax,%ecx
40ad17:	1b c0                	sbb    %eax,%eax
40ad19:	f7 d0                	not    %eax
40ad1b:	23 c8                	and    %eax,%ecx
40ad1d:	8b c4                	mov    %esp,%eax
40ad1f:	25 00 f0 ff ff       	and    $0xfffff000,%eax
40ad24:	3b c8                	cmp    %eax,%ecx
40ad26:	72 0a                	jb     0x40ad32
40ad28:	8b c1                	mov    %ecx,%eax
40ad2a:	59                   	pop    %ecx
40ad2b:	94                   	xchg   %eax,%esp
40ad2c:	8b 00                	mov    (%eax),%eax
40ad2e:	89 04 24             	mov    %eax,(%esp)
40ad31:	c3                   	ret
40ad32:	2d 00 10 00 00       	sub    $0x1000,%eax
40ad37:	85 00                	test   %eax,(%eax)
40ad39:	eb e9                	jmp    0x40ad24
40ad3b:	8b ff                	mov    %edi,%edi
40ad3d:	55                   	push   %ebp
40ad3e:	8b ec                	mov    %esp,%ebp
40ad40:	83 ec 14             	sub    $0x14,%esp
40ad43:	56                   	push   %esi
40ad44:	57                   	push   %edi
40ad45:	ff 75 08             	push   0x8(%ebp)
40ad48:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40ad4b:	e8 7e 98 ff ff       	call   0x4045ce
40ad50:	8b 45 10             	mov    0x10(%ebp),%eax
40ad53:	8b 75 0c             	mov    0xc(%ebp),%esi
40ad56:	33 ff                	xor    %edi,%edi
40ad58:	3b c7                	cmp    %edi,%eax
40ad5a:	74 02                	je     0x40ad5e
40ad5c:	89 30                	mov    %esi,(%eax)
40ad5e:	3b f7                	cmp    %edi,%esi
40ad60:	75 2c                	jne    0x40ad8e
40ad62:	e8 e5 80 ff ff       	call   0x402e4c
40ad67:	57                   	push   %edi
40ad68:	57                   	push   %edi
40ad69:	57                   	push   %edi
40ad6a:	57                   	push   %edi
40ad6b:	57                   	push   %edi
40ad6c:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ad72:	e8 ca 8e ff ff       	call   0x403c41
40ad77:	83 c4 14             	add    $0x14,%esp
40ad7a:	80 7d f8 00          	cmpb   $0x0,-0x8(%ebp)
40ad7e:	74 07                	je     0x40ad87
40ad80:	8b 45 f4             	mov    -0xc(%ebp),%eax
40ad83:	83 60 70 fd          	andl   $0xfffffffd,0x70(%eax)
40ad87:	33 c0                	xor    %eax,%eax
40ad89:	e9 d8 01 00 00       	jmp    0x40af66
40ad8e:	39 7d 14             	cmp    %edi,0x14(%ebp)
40ad91:	74 0c                	je     0x40ad9f
40ad93:	83 7d 14 02          	cmpl   $0x2,0x14(%ebp)
40ad97:	7c c9                	jl     0x40ad62
40ad99:	83 7d 14 24          	cmpl   $0x24,0x14(%ebp)
40ad9d:	7f c3                	jg     0x40ad62
40ad9f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40ada2:	53                   	push   %ebx
40ada3:	8a 1e                	mov    (%esi),%bl
40ada5:	89 7d fc             	mov    %edi,-0x4(%ebp)
40ada8:	8d 7e 01             	lea    0x1(%esi),%edi
40adab:	83 b9 ac 00 00 00 01 	cmpl   $0x1,0xac(%ecx)
40adb2:	7e 17                	jle    0x40adcb
40adb4:	8d 45 ec             	lea    -0x14(%ebp),%eax
40adb7:	50                   	push   %eax
40adb8:	0f b6 c3             	movzbl %bl,%eax
40adbb:	6a 08                	push   $0x8
40adbd:	50                   	push   %eax
40adbe:	e8 2e dd ff ff       	call   0x408af1
40adc3:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40adc6:	83 c4 0c             	add    $0xc,%esp
40adc9:	eb 10                	jmp    0x40addb
40adcb:	8b 91 c8 00 00 00    	mov    0xc8(%ecx),%edx
40add1:	0f b6 c3             	movzbl %bl,%eax
40add4:	0f b7 04 42          	movzwl (%edx,%eax,2),%eax
40add8:	83 e0 08             	and    $0x8,%eax
40addb:	85 c0                	test   %eax,%eax
40addd:	74 05                	je     0x40ade4
40addf:	8a 1f                	mov    (%edi),%bl
40ade1:	47                   	inc    %edi
40ade2:	eb c7                	jmp    0x40adab
40ade4:	80 fb 2d             	cmp    $0x2d,%bl
40ade7:	75 06                	jne    0x40adef
40ade9:	83 4d 18 02          	orl    $0x2,0x18(%ebp)
40aded:	eb 05                	jmp    0x40adf4
40adef:	80 fb 2b             	cmp    $0x2b,%bl
40adf2:	75 03                	jne    0x40adf7
40adf4:	8a 1f                	mov    (%edi),%bl
40adf6:	47                   	inc    %edi
40adf7:	8b 45 14             	mov    0x14(%ebp),%eax
40adfa:	85 c0                	test   %eax,%eax
40adfc:	0f 8c 4b 01 00 00    	jl     0x40af4d
40ae02:	83 f8 01             	cmp    $0x1,%eax
40ae05:	0f 84 42 01 00 00    	je     0x40af4d
40ae0b:	83 f8 24             	cmp    $0x24,%eax
40ae0e:	0f 8f 39 01 00 00    	jg     0x40af4d
40ae14:	85 c0                	test   %eax,%eax
40ae16:	75 2a                	jne    0x40ae42
40ae18:	80 fb 30             	cmp    $0x30,%bl
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