40a82a:	0b f0                	or     %eax,%esi
40a82c:	88 0b                	mov    %cl,(%ebx)
40a82e:	43                   	inc    %ebx
40a82f:	ff 4d b4             	decl   -0x4c(%ebp)
40a832:	83 7d b4 00          	cmpl   $0x0,-0x4c(%ebp)
40a836:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40a839:	c6 45 eb 00          	movb   $0x0,-0x15(%ebp)
40a83d:	0f 8f 4b ff ff ff    	jg     0x40a78e
40a843:	4b                   	dec    %ebx
40a844:	8a 03                	mov    (%ebx),%al
40a846:	4b                   	dec    %ebx
40a847:	3c 35                	cmp    $0x35,%al
40a849:	7d 0e                	jge    0x40a859
40a84b:	8b 4d c0             	mov    -0x40(%ebp),%ecx
40a84e:	eb 44                	jmp    0x40a894
40a850:	80 3b 39             	cmpb   $0x39,(%ebx)
40a853:	75 09                	jne    0x40a85e
40a855:	c6 03 30             	movb   $0x30,(%ebx)
40a858:	4b                   	dec    %ebx
40a859:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
40a85c:	73 f2                	jae    0x40a850
40a85e:	8b 45 a0             	mov    -0x60(%ebp),%eax
40a861:	3b 5d c0             	cmp    -0x40(%ebp),%ebx
40a864:	73 04                	jae    0x40a86a
40a866:	43                   	inc    %ebx
40a867:	66 ff 00             	incw   (%eax)
40a86a:	fe 03                	incb   (%ebx)
40a86c:	2a d8                	sub    %al,%bl
40a86e:	80 eb 03             	sub    $0x3,%bl
40a871:	0f be cb             	movsbl %bl,%ecx
40a874:	88 58 03             	mov    %bl,0x3(%eax)
40a877:	c6 44 01 04 00       	movb   $0x0,0x4(%ecx,%eax,1)
40a87c:	8b 45 8c             	mov    -0x74(%ebp),%eax
40a87f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40a882:	5f                   	pop    %edi
40a883:	5e                   	pop    %esi
40a884:	33 cd                	xor    %ebp,%ecx
40a886:	5b                   	pop    %ebx
40a887:	e8 74 67 ff ff       	call   0x401000
40a88c:	c9                   	leave
40a88d:	c3                   	ret
40a88e:	80 3b 30             	cmpb   $0x30,(%ebx)
40a891:	75 05                	jne    0x40a898
40a893:	4b                   	dec    %ebx
40a894:	3b d9                	cmp    %ecx,%ebx
40a896:	73 f6                	jae    0x40a88e
40a898:	8b 45 a0             	mov    -0x60(%ebp),%eax
40a89b:	3b d9                	cmp    %ecx,%ebx
40a89d:	73 cd                	jae    0x40a86c
40a89f:	33 d2                	xor    %edx,%edx
40a8a1:	66 89 10             	mov    %dx,(%eax)
40a8a4:	ba 00 80 00 00       	mov    $0x8000,%edx
40a8a9:	66 39 55 90          	cmp    %dx,-0x70(%ebp)
40a8ad:	c6 40 03 01          	movb   $0x1,0x3(%eax)
40a8b1:	0f 95 c2             	setne  %dl
40a8b4:	fe ca                	dec    %dl
40a8b6:	80 e2 0d             	and    $0xd,%dl
40a8b9:	80 c2 20             	add    $0x20,%dl
40a8bc:	88 50 02             	mov    %dl,0x2(%eax)
40a8bf:	c6 01 30             	movb   $0x30,(%ecx)
40a8c2:	c6 40 05 00          	movb   $0x0,0x5(%eax)
40a8c6:	e9 8e f7 ff ff       	jmp    0x40a059
40a8cb:	33 c0                	xor    %eax,%eax
40a8cd:	f6 c3 10             	test   $0x10,%bl
40a8d0:	74 01                	je     0x40a8d3
40a8d2:	40                   	inc    %eax
40a8d3:	f6 c3 08             	test   $0x8,%bl
40a8d6:	74 03                	je     0x40a8db
40a8d8:	83 c8 04             	or     $0x4,%eax
40a8db:	f6 c3 04             	test   $0x4,%bl
40a8de:	74 03                	je     0x40a8e3
40a8e0:	83 c8 08             	or     $0x8,%eax
40a8e3:	f6 c3 02             	test   $0x2,%bl
40a8e6:	74 03                	je     0x40a8eb
40a8e8:	83 c8 10             	or     $0x10,%eax
40a8eb:	f6 c3 01             	test   $0x1,%bl
40a8ee:	74 03                	je     0x40a8f3
40a8f0:	83 c8 20             	or     $0x20,%eax
40a8f3:	f7 c3 00 00 08 00    	test   $0x80000,%ebx
40a8f9:	74 03                	je     0x40a8fe
40a8fb:	83 c8 02             	or     $0x2,%eax
40a8fe:	8b cb                	mov    %ebx,%ecx
40a900:	ba 00 03 00 00       	mov    $0x300,%edx
40a905:	23 ca                	and    %edx,%ecx
40a907:	56                   	push   %esi
40a908:	be 00 02 00 00       	mov    $0x200,%esi
40a90d:	74 23                	je     0x40a932
40a90f:	81 f9 00 01 00 00    	cmp    $0x100,%ecx
40a915:	74 16                	je     0x40a92d
40a917:	3b ce                	cmp    %esi,%ecx
40a919:	74 0b                	je     0x40a926
40a91b:	3b ca                	cmp    %edx,%ecx
40a91d:	75 13                	jne    0x40a932
40a91f:	0d 00 0c 00 00       	or     $0xc00,%eax
40a924:	eb 0c                	jmp    0x40a932
40a926:	0d 00 08 00 00       	or     $0x800,%eax
40a92b:	eb 05                	jmp    0x40a932
40a92d:	0d 00 04 00 00       	or     $0x400,%eax
40a932:	8b cb                	mov    %ebx,%ecx
40a934:	81 e1 00 00 03 00    	and    $0x30000,%ecx
40a93a:	74 0c                	je     0x40a948
40a93c:	81 f9 00 00 01 00    	cmp    $0x10000,%ecx
40a942:	75 06                	jne    0x40a94a
40a944:	0b c6                	or     %esi,%eax
40a946:	eb 02                	jmp    0x40a94a
40a948:	0b c2                	or     %edx,%eax
40a94a:	5e                   	pop    %esi
40a94b:	f7 c3 00 00 04 00    	test   $0x40000,%ebx
40a951:	74 05                	je     0x40a958
40a953:	0d 00 10 00 00       	or     $0x1000,%eax
40a958:	c3                   	ret
40a959:	33 c0                	xor    %eax,%eax
40a95b:	f6 c2 10             	test   $0x10,%dl
40a95e:	74 05                	je     0x40a965
40a960:	b8 80 00 00 00       	mov    $0x80,%eax
40a965:	53                   	push   %ebx
40a966:	56                   	push   %esi
40a967:	57                   	push   %edi
40a968:	bb 00 02 00 00       	mov    $0x200,%ebx
40a96d:	f6 c2 08             	test   $0x8,%dl
40a970:	74 02                	je     0x40a974
40a972:	0b c3                	or     %ebx,%eax
40a974:	f6 c2 04             	test   $0x4,%dl
40a977:	74 05                	je     0x40a97e
40a979:	0d 00 04 00 00       	or     $0x400,%eax
40a97e:	f6 c2 02             	test   $0x2,%dl
40a981:	74 05                	je     0x40a988
40a983:	0d 00 08 00 00       	or     $0x800,%eax
40a988:	f6 c2 01             	test   $0x1,%dl
40a98b:	74 05                	je     0x40a992
40a98d:	0d 00 10 00 00       	or     $0x1000,%eax
40a992:	bf 00 01 00 00       	mov    $0x100,%edi
40a997:	f7 c2 00 00 08 00    	test   $0x80000,%edx
40a99d:	74 02                	je     0x40a9a1
40a99f:	0b c7                	or     %edi,%eax
40a9a1:	8b ca                	mov    %edx,%ecx
40a9a3:	be 00 03 00 00       	mov    $0x300,%esi
40a9a8:	23 ce                	and    %esi,%ecx
40a9aa:	74 1f                	je     0x40a9cb
40a9ac:	3b cf                	cmp    %edi,%ecx
40a9ae:	74 16                	je     0x40a9c6
40a9b0:	3b cb                	cmp    %ebx,%ecx
40a9b2:	74 0b                	je     0x40a9bf
40a9b4:	3b ce                	cmp    %esi,%ecx
40a9b6:	75 13                	jne    0x40a9cb
40a9b8:	0d 00 60 00 00       	or     $0x6000,%eax
40a9bd:	eb 0c                	jmp    0x40a9cb
40a9bf:	0d 00 40 00 00       	or     $0x4000,%eax
40a9c4:	eb 05                	jmp    0x40a9cb
40a9c6:	0d 00 20 00 00       	or     $0x2000,%eax
40a9cb:	b9 00 00 00 03       	mov    $0x3000000,%ecx
40a9d0:	5f                   	pop    %edi
40a9d1:	23 d1                	and    %ecx,%edx
40a9d3:	5e                   	pop    %esi
40a9d4:	5b                   	pop    %ebx
40a9d5:	81 fa 00 00 00 01    	cmp    $0x1000000,%edx
40a9db:	74 16                	je     0x40a9f3
40a9dd:	81 fa 00 00 00 02    	cmp    $0x2000000,%edx
40a9e3:	74 0a                	je     0x40a9ef
40a9e5:	3b d1                	cmp    %ecx,%edx
40a9e7:	75 0f                	jne    0x40a9f8
40a9e9:	0d 00 80 00 00       	or     $0x8000,%eax
40a9ee:	c3                   	ret
40a9ef:	83 c8 40             	or     $0x40,%eax
40a9f2:	c3                   	ret
40a9f3:	0d 40 80 00 00       	or     $0x8040,%eax
40a9f8:	c3                   	ret
40a9f9:	8b ff                	mov    %edi,%edi
40a9fb:	55                   	push   %ebp
40a9fc:	8b ec                	mov    %esp,%ebp
40a9fe:	83 ec 14             	sub    $0x14,%esp
40aa01:	53                   	push   %ebx
40aa02:	56                   	push   %esi
40aa03:	57                   	push   %edi
40aa04:	9b d9 7d f8          	fstcw  -0x8(%ebp)
40aa08:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40aa0b:	33 d2                	xor    %edx,%edx
40aa0d:	f6 c3 01             	test   $0x1,%bl
40aa10:	74 03                	je     0x40aa15
40aa12:	6a 10                	push   $0x10
40aa14:	5a                   	pop    %edx
40aa15:	f6 c3 04             	test   $0x4,%bl
40aa18:	74 03                	je     0x40aa1d
40aa1a:	83 ca 08             	or     $0x8,%edx
40aa1d:	f6 c3 08             	test   $0x8,%bl
40aa20:	74 03                	je     0x40aa25
40aa22:	83 ca 04             	or     $0x4,%edx
40aa25:	f6 c3 10             	test   $0x10,%bl
40aa28:	74 03                	je     0x40aa2d
40aa2a:	83 ca 02             	or     $0x2,%edx
40aa2d:	f6 c3 20             	test   $0x20,%bl
40aa30:	74 03                	je     0x40aa35
40aa32:	83 ca 01             	or     $0x1,%edx
40aa35:	f6 c3 02             	test   $0x2,%bl
40aa38:	74 06                	je     0x40aa40
40aa3a:	81 ca 00 00 08 00    	or     $0x80000,%edx
40aa40:	0f b7 cb             	movzwl %bx,%ecx
40aa43:	8b c1                	mov    %ecx,%eax
40aa45:	be 00 0c 00 00       	mov    $0xc00,%esi
40aa4a:	23 c6                	and    %esi,%eax
40aa4c:	bf 00 03 00 00       	mov    $0x300,%edi
40aa51:	74 24                	je     0x40aa77
40aa53:	3d 00 04 00 00       	cmp    $0x400,%eax
40aa58:	74 17                	je     0x40aa71
40aa5a:	3d 00 08 00 00       	cmp    $0x800,%eax
40aa5f:	74 08                	je     0x40aa69
40aa61:	3b c6                	cmp    %esi,%eax
40aa63:	75 12                	jne    0x40aa77
40aa65:	0b d7                	or     %edi,%edx
40aa67:	eb 0e                	jmp    0x40aa77
40aa69:	81 ca 00 02 00 00    	or     $0x200,%edx
40aa6f:	eb 06                	jmp    0x40aa77
40aa71:	81 ca 00 01 00 00    	or     $0x100,%edx
40aa77:	23 cf                	and    %edi,%ecx
40aa79:	74 10                	je     0x40aa8b
40aa7b:	81 f9 00 02 00 00    	cmp    $0x200,%ecx
40aa81:	75 0e                	jne    0x40aa91
40aa83:	81 ca 00 00 01 00    	or     $0x10000,%edx
40aa89:	eb 06                	jmp    0x40aa91
40aa8b:	81 ca 00 00 02 00    	or     $0x20000,%edx
40aa91:	f7 c3 00 10 00 00    	test   $0x1000,%ebx
40aa97:	74 06                	je     0x40aa9f
40aa99:	81 ca 00 00 04 00    	or     $0x40000,%edx
40aa9f:	8b 7d 0c             	mov    0xc(%ebp),%edi
40aaa2:	8b 4d 08             	mov    0x8(%ebp),%ecx
40aaa5:	8b c7                	mov    %edi,%eax
40aaa7:	f7 d0                	not    %eax
40aaa9:	23 c2                	and    %edx,%eax
40aaab:	23 cf                	and    %edi,%ecx
40aaad:	0b c1                	or     %ecx,%eax
40aaaf:	89 45 0c             	mov    %eax,0xc(%ebp)
40aab2:	3b c2                	cmp    %edx,%eax
40aab4:	0f 84 ae 00 00 00    	je     0x40ab68
40aaba:	8b d8                	mov    %eax,%ebx
40aabc:	e8 0a fe ff ff       	call   0x40a8cb
40aac1:	0f b7 c0             	movzwl %ax,%eax
40aac4:	89 45 fc             	mov    %eax,-0x4(%ebp)
40aac7:	d9 6d fc             	fldcw  -0x4(%ebp)
40aaca:	9b d9 7d fc          	fstcw  -0x4(%ebp)
40aace:	8b 5d fc             	mov    -0x4(%ebp),%ebx
40aad1:	33 d2                	xor    %edx,%edx
40aad3:	f6 c3 01             	test   $0x1,%bl
40aad6:	74 03                	je     0x40aadb
40aad8:	6a 10                	push   $0x10
40aada:	5a                   	pop    %edx
40aadb:	f6 c3 04             	test   $0x4,%bl
40aade:	74 03                	je     0x40aae3
40aae0:	83 ca 08             	or     $0x8,%edx
40aae3:	f6 c3 08             	test   $0x8,%bl
40aae6:	74 03                	je     0x40aaeb
40aae8:	83 ca 04             	or     $0x4,%edx
40aaeb:	f6 c3 10             	test   $0x10,%bl
40aaee:	74 03                	je     0x40aaf3
40aaf0:	83 ca 02             	or     $0x2,%edx
40aaf3:	f6 c3 20             	test   $0x20,%bl
40aaf6:	74 03                	je     0x40aafb
40aaf8:	83 ca 01             	or     $0x1,%edx
40aafb:	f6 c3 02             	test   $0x2,%bl
40aafe:	74 06                	je     0x40ab06
40ab00:	81 ca 00 00 08 00    	or     $0x80000,%edx
40ab06:	0f b7 cb             	movzwl %bx,%ecx
40ab09:	8b c1                	mov    %ecx,%eax
40ab0b:	23 c6                	and    %esi,%eax
40ab0d:	74 28                	je     0x40ab37
40ab0f:	3d 00 04 00 00       	cmp    $0x400,%eax
40ab14:	74 1b                	je     0x40ab31
40ab16:	3d 00 08 00 00       	cmp    $0x800,%eax
40ab1b:	74 0c                	je     0x40ab29
40ab1d:	3b c6                	cmp    %esi,%eax
40ab1f:	75 16                	jne    0x40ab37
40ab21:	81 ca 00 03 00 00    	or     $0x300,%edx
40ab27:	eb 0e                	jmp    0x40ab37
40ab29:	81 ca 00 02 00 00    	or     $0x200,%edx
40ab2f:	eb 06                	jmp    0x40ab37
40ab31:	81 ca 00 01 00 00    	or     $0x100,%edx
40ab37:	81 e1 00 03 00 00    	and    $0x300,%ecx
40ab3d:	74 10                	je     0x40ab4f
40ab3f:	81 f9 00 02 00 00    	cmp    $0x200,%ecx
40ab45:	75 0e                	jne    0x40ab55
40ab47:	81 ca 00 00 01 00    	or     $0x10000,%edx
40ab4d:	eb 06                	jmp    0x40ab55
40ab4f:	81 ca 00 00 02 00    	or     $0x20000,%edx
40ab55:	f7 c3 00 10 00 00    	test   $0x1000,%ebx
40ab5b:	74 06                	je     0x40ab63
40ab5d:	81 ca 00 00 04 00    	or     $0x40000,%edx
40ab63:	89 55 0c             	mov    %edx,0xc(%ebp)
40ab66:	8b c2                	mov    %edx,%eax
40ab68:	33 f6                	xor    %esi,%esi
40ab6a:	39 35 b8 2e de 02    	cmp    %esi,0x2de2eb8
40ab70:	0f 84 8d 01 00 00    	je     0x40ad03
40ab76:	81 e7 1f 03 08 03    	and    $0x308031f,%edi
40ab7c:	89 7d ec             	mov    %edi,-0x14(%ebp)
40ab7f:	0f ae 5d f0          	stmxcsr -0x10(%ebp)
40ab83:	8b 45 f0             	mov    -0x10(%ebp),%eax
40ab86:	84 c0                	test   %al,%al
40ab88:	79 03                	jns    0x40ab8d
40ab8a:	6a 10                	push   $0x10
40ab8c:	5e                   	pop    %esi
40ab8d:	a9 00 02 00 00       	test   $0x200,%eax
40ab92:	74 03                	je     0x40ab97
40ab94:	83 ce 08             	or     $0x8,%esi
40ab97:	a9 00 04 00 00       	test   $0x400,%eax
40ab9c:	74 03                	je     0x40aba1
40ab9e:	83 ce 04             	or     $0x4,%esi
40aba1:	a9 00 08 00 00       	test   $0x800,%eax
40aba6:	74 03                	je     0x40abab
40aba8:	83 ce 02             	or     $0x2,%esi
40abab:	a9 00 10 00 00       	test   $0x1000,%eax
40abb0:	74 03                	je     0x40abb5
40abb2:	83 ce 01             	or     $0x1,%esi
40abb5:	a9 00 01 00 00       	test   $0x100,%eax
40abba:	74 06                	je     0x40abc2
40abbc:	81 ce 00 00 08 00    	or     $0x80000,%esi
40abc2:	8b c8                	mov    %eax,%ecx
40abc4:	bb 00 60 00 00       	mov    $0x6000,%ebx
40abc9:	23 cb                	and    %ebx,%ecx
40abcb:	74 2a                	je     0x40abf7
40abcd:	81 f9 00 20 00 00    	cmp    $0x2000,%ecx
40abd3:	74 1c                	je     0x40abf1
40abd5:	81 f9 00 40 00 00    	cmp    $0x4000,%ecx
40abdb:	74 0c                	je     0x40abe9
40abdd:	3b cb                	cmp    %ebx,%ecx
40abdf:	75 16                	jne    0x40abf7
40abe1:	81 ce 00 03 00 00    	or     $0x300,%esi
40abe7:	eb 0e                	jmp    0x40abf7
40abe9:	81 ce 00 02 00 00    	or     $0x200,%esi
40abef:	eb 06                	jmp    0x40abf7
40abf1:	81 ce 00 01 00 00    	or     $0x100,%esi
40abf7:	bf 40 80 00 00       	mov    $0x8040,%edi
40abfc:	23 c7                	and    %edi,%eax
40abfe:	83 e8 40             	sub    $0x40,%eax
40ac01:	74 1c                	je     0x40ac1f
40ac03:	2d c0 7f 00 00       	sub    $0x7fc0,%eax
40ac08:	74 0d                	je     0x40ac17
40ac0a:	83 e8 40             	sub    $0x40,%eax
40ac0d:	75 16                	jne    0x40ac25
40ac0f:	81 ce 00 00 00 01    	or     $0x1000000,%esi
40ac15:	eb 0e                	jmp    0x40ac25
40ac17:	81 ce 00 00 00 03    	or     $0x3000000,%esi
40ac1d:	eb 06                	jmp    0x40ac25
40ac1f:	81 ce 00 00 00 02    	or     $0x2000000,%esi
40ac25:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ac28:	8b d0                	mov    %eax,%edx
40ac2a:	23 45 08             	and    0x8(%ebp),%eax
40ac2d:	f7 d2                	not    %edx
40ac2f:	23 d6                	and    %esi,%edx
40ac31:	0b d0                	or     %eax,%edx
40ac33:	3b d6                	cmp    %esi,%edx
40ac35:	75 07                	jne    0x40ac3e
40ac37:	8b c6                	mov    %esi,%eax