40a82c:	eb 0c                	jmp    0x40a83a
40a82e:	0d 00 40 00 00       	or     $0x4000,%eax
40a833:	eb 05                	jmp    0x40a83a
40a835:	0d 00 20 00 00       	or     $0x2000,%eax
40a83a:	ba 00 00 00 03       	mov    $0x3000000,%edx
40a83f:	5f                   	pop    %edi
40a840:	23 ca                	and    %edx,%ecx
40a842:	5e                   	pop    %esi
40a843:	5b                   	pop    %ebx
40a844:	81 f9 00 00 00 01    	cmp    $0x1000000,%ecx
40a84a:	74 18                	je     0x40a864
40a84c:	81 f9 00 00 00 02    	cmp    $0x2000000,%ecx
40a852:	74 0b                	je     0x40a85f
40a854:	3b ca                	cmp    %edx,%ecx
40a856:	75 11                	jne    0x40a869
40a858:	0d 00 80 00 00       	or     $0x8000,%eax
40a85d:	5d                   	pop    %ebp
40a85e:	c3                   	ret
40a85f:	83 c8 40             	or     $0x40,%eax
40a862:	5d                   	pop    %ebp
40a863:	c3                   	ret
40a864:	0d 40 80 00 00       	or     $0x8040,%eax
40a869:	5d                   	pop    %ebp
40a86a:	c3                   	ret
40a86b:	8b ff                	mov    %edi,%edi
40a86d:	55                   	push   %ebp
40a86e:	8b ec                	mov    %esp,%ebp
40a870:	83 ec 10             	sub    $0x10,%esp
40a873:	9b d9 7d f8          	fstcw  -0x8(%ebp)
40a877:	66 8b 45 f8          	mov    -0x8(%ebp),%ax
40a87b:	0f b7 c8             	movzwl %ax,%ecx
40a87e:	83 e1 01             	and    $0x1,%ecx
40a881:	c1 e1 04             	shl    $0x4,%ecx
40a884:	a8 04                	test   $0x4,%al
40a886:	74 03                	je     0x40a88b
40a888:	83 c9 08             	or     $0x8,%ecx
40a88b:	a8 08                	test   $0x8,%al
40a88d:	74 03                	je     0x40a892
40a88f:	83 c9 04             	or     $0x4,%ecx
40a892:	a8 10                	test   $0x10,%al
40a894:	74 03                	je     0x40a899
40a896:	83 c9 02             	or     $0x2,%ecx
40a899:	a8 20                	test   $0x20,%al
40a89b:	74 03                	je     0x40a8a0
40a89d:	83 c9 01             	or     $0x1,%ecx
40a8a0:	a8 02                	test   $0x2,%al
40a8a2:	74 06                	je     0x40a8aa
40a8a4:	81 c9 00 00 08 00    	or     $0x80000,%ecx
40a8aa:	53                   	push   %ebx
40a8ab:	56                   	push   %esi
40a8ac:	0f b7 f0             	movzwl %ax,%esi
40a8af:	bb 00 0c 00 00       	mov    $0xc00,%ebx
40a8b4:	8b d6                	mov    %esi,%edx
40a8b6:	57                   	push   %edi
40a8b7:	bf 00 02 00 00       	mov    $0x200,%edi
40a8bc:	23 d3                	and    %ebx,%edx
40a8be:	74 26                	je     0x40a8e6
40a8c0:	81 fa 00 04 00 00    	cmp    $0x400,%edx
40a8c6:	74 18                	je     0x40a8e0
40a8c8:	81 fa 00 08 00 00    	cmp    $0x800,%edx
40a8ce:	74 0c                	je     0x40a8dc
40a8d0:	3b d3                	cmp    %ebx,%edx
40a8d2:	75 12                	jne    0x40a8e6
40a8d4:	81 c9 00 03 00 00    	or     $0x300,%ecx
40a8da:	eb 0a                	jmp    0x40a8e6
40a8dc:	0b cf                	or     %edi,%ecx
40a8de:	eb 06                	jmp    0x40a8e6
40a8e0:	81 c9 00 01 00 00    	or     $0x100,%ecx
40a8e6:	81 e6 00 03 00 00    	and    $0x300,%esi
40a8ec:	74 0c                	je     0x40a8fa
40a8ee:	3b f7                	cmp    %edi,%esi
40a8f0:	75 0e                	jne    0x40a900
40a8f2:	81 c9 00 00 01 00    	or     $0x10000,%ecx
40a8f8:	eb 06                	jmp    0x40a900
40a8fa:	81 c9 00 00 02 00    	or     $0x20000,%ecx
40a900:	0f b7 c0             	movzwl %ax,%eax
40a903:	ba 00 10 00 00       	mov    $0x1000,%edx
40a908:	85 c2                	test   %eax,%edx
40a90a:	74 06                	je     0x40a912
40a90c:	81 c9 00 00 04 00    	or     $0x40000,%ecx
40a912:	8b 7d 0c             	mov    0xc(%ebp),%edi
40a915:	8b f7                	mov    %edi,%esi
40a917:	8b 45 08             	mov    0x8(%ebp),%eax
40a91a:	f7 d6                	not    %esi
40a91c:	23 f1                	and    %ecx,%esi
40a91e:	23 c7                	and    %edi,%eax
40a920:	0b f0                	or     %eax,%esi
40a922:	3b f1                	cmp    %ecx,%esi
40a924:	0f 84 a8 00 00 00    	je     0x40a9d2
40a92a:	56                   	push   %esi
40a92b:	e8 3c 02 00 00       	call   0x40ab6c
40a930:	59                   	pop    %ecx
40a931:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
40a935:	d9 6d fc             	fldcw  -0x4(%ebp)
40a938:	9b d9 7d fc          	fstcw  -0x4(%ebp)
40a93c:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
40a940:	0f b7 f0             	movzwl %ax,%esi
40a943:	83 e6 01             	and    $0x1,%esi
40a946:	c1 e6 04             	shl    $0x4,%esi
40a949:	a8 04                	test   $0x4,%al
40a94b:	74 03                	je     0x40a950
40a94d:	83 ce 08             	or     $0x8,%esi
40a950:	a8 08                	test   $0x8,%al
40a952:	74 03                	je     0x40a957
40a954:	83 ce 04             	or     $0x4,%esi
40a957:	a8 10                	test   $0x10,%al
40a959:	74 03                	je     0x40a95e
40a95b:	83 ce 02             	or     $0x2,%esi
40a95e:	a8 20                	test   $0x20,%al
40a960:	74 03                	je     0x40a965
40a962:	83 ce 01             	or     $0x1,%esi
40a965:	a8 02                	test   $0x2,%al
40a967:	74 06                	je     0x40a96f
40a969:	81 ce 00 00 08 00    	or     $0x80000,%esi
40a96f:	0f b7 d0             	movzwl %ax,%edx
40a972:	8b ca                	mov    %edx,%ecx
40a974:	23 cb                	and    %ebx,%ecx
40a976:	74 2a                	je     0x40a9a2
40a978:	81 f9 00 04 00 00    	cmp    $0x400,%ecx
40a97e:	74 1c                	je     0x40a99c
40a980:	81 f9 00 08 00 00    	cmp    $0x800,%ecx
40a986:	74 0c                	je     0x40a994
40a988:	3b cb                	cmp    %ebx,%ecx
40a98a:	75 16                	jne    0x40a9a2
40a98c:	81 ce 00 03 00 00    	or     $0x300,%esi
40a992:	eb 0e                	jmp    0x40a9a2
40a994:	81 ce 00 02 00 00    	or     $0x200,%esi
40a99a:	eb 06                	jmp    0x40a9a2
40a99c:	81 ce 00 01 00 00    	or     $0x100,%esi
40a9a2:	81 e2 00 03 00 00    	and    $0x300,%edx
40a9a8:	74 10                	je     0x40a9ba
40a9aa:	81 fa 00 02 00 00    	cmp    $0x200,%edx
40a9b0:	75 0e                	jne    0x40a9c0
40a9b2:	81 ce 00 00 01 00    	or     $0x10000,%esi
40a9b8:	eb 06                	jmp    0x40a9c0
40a9ba:	81 ce 00 00 02 00    	or     $0x20000,%esi
40a9c0:	0f b7 c0             	movzwl %ax,%eax
40a9c3:	ba 00 10 00 00       	mov    $0x1000,%edx
40a9c8:	85 c2                	test   %eax,%edx
40a9ca:	74 06                	je     0x40a9d2
40a9cc:	81 ce 00 00 04 00    	or     $0x40000,%esi
40a9d2:	83 3d bc 69 41 00 01 	cmpl   $0x1,0x4169bc
40a9d9:	0f 8c 86 01 00 00    	jl     0x40ab65
40a9df:	81 e7 1f 03 08 03    	and    $0x308031f,%edi
40a9e5:	0f ae 5d f0          	stmxcsr -0x10(%ebp)
40a9e9:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40a9ec:	8b c1                	mov    %ecx,%eax
40a9ee:	c1 e8 03             	shr    $0x3,%eax
40a9f1:	83 e0 10             	and    $0x10,%eax
40a9f4:	f7 c1 00 02 00 00    	test   $0x200,%ecx
40a9fa:	74 03                	je     0x40a9ff
40a9fc:	83 c8 08             	or     $0x8,%eax
40a9ff:	f7 c1 00 04 00 00    	test   $0x400,%ecx
40aa05:	74 03                	je     0x40aa0a
40aa07:	83 c8 04             	or     $0x4,%eax
40aa0a:	f7 c1 00 08 00 00    	test   $0x800,%ecx
40aa10:	74 03                	je     0x40aa15
40aa12:	83 c8 02             	or     $0x2,%eax
40aa15:	85 ca                	test   %ecx,%edx
40aa17:	74 03                	je     0x40aa1c
40aa19:	83 c8 01             	or     $0x1,%eax
40aa1c:	f7 c1 00 01 00 00    	test   $0x100,%ecx
40aa22:	74 05                	je     0x40aa29
40aa24:	0d 00 00 08 00       	or     $0x80000,%eax
40aa29:	8b d1                	mov    %ecx,%edx
40aa2b:	bb 00 60 00 00       	mov    $0x6000,%ebx
40aa30:	23 d3                	and    %ebx,%edx
40aa32:	74 27                	je     0x40aa5b
40aa34:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
40aa3a:	74 1a                	je     0x40aa56
40aa3c:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
40aa42:	74 0b                	je     0x40aa4f
40aa44:	3b d3                	cmp    %ebx,%edx
40aa46:	75 13                	jne    0x40aa5b
40aa48:	0d 00 03 00 00       	or     $0x300,%eax
40aa4d:	eb 0c                	jmp    0x40aa5b
40aa4f:	0d 00 02 00 00       	or     $0x200,%eax
40aa54:	eb 05                	jmp    0x40aa5b
40aa56:	0d 00 01 00 00       	or     $0x100,%eax
40aa5b:	6a 40                	push   $0x40
40aa5d:	81 e1 40 80 00 00    	and    $0x8040,%ecx
40aa63:	5b                   	pop    %ebx
40aa64:	2b cb                	sub    %ebx,%ecx
40aa66:	74 1a                	je     0x40aa82
40aa68:	81 e9 c0 7f 00 00    	sub    $0x7fc0,%ecx
40aa6e:	74 0b                	je     0x40aa7b
40aa70:	2b cb                	sub    %ebx,%ecx
40aa72:	75 13                	jne    0x40aa87
40aa74:	0d 00 00 00 01       	or     $0x1000000,%eax
40aa79:	eb 0c                	jmp    0x40aa87
40aa7b:	0d 00 00 00 03       	or     $0x3000000,%eax
40aa80:	eb 05                	jmp    0x40aa87
40aa82:	0d 00 00 00 02       	or     $0x2000000,%eax
40aa87:	8b cf                	mov    %edi,%ecx
40aa89:	23 7d 08             	and    0x8(%ebp),%edi
40aa8c:	f7 d1                	not    %ecx
40aa8e:	23 c8                	and    %eax,%ecx
40aa90:	0b cf                	or     %edi,%ecx
40aa92:	3b c8                	cmp    %eax,%ecx
40aa94:	0f 84 b4 00 00 00    	je     0x40ab4e
40aa9a:	51                   	push   %ecx
40aa9b:	e8 24 fd ff ff       	call   0x40a7c4
40aaa0:	50                   	push   %eax
40aaa1:	89 45 f4             	mov    %eax,-0xc(%ebp)
40aaa4:	e8 e8 1a 00 00       	call   0x40c591
40aaa9:	59                   	pop    %ecx
40aaaa:	59                   	pop    %ecx
40aaab:	0f ae 5d f4          	stmxcsr -0xc(%ebp)
40aaaf:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40aab2:	8b c1                	mov    %ecx,%eax
40aab4:	c1 e8 03             	shr    $0x3,%eax
40aab7:	83 e0 10             	and    $0x10,%eax
40aaba:	f7 c1 00 02 00 00    	test   $0x200,%ecx
40aac0:	74 03                	je     0x40aac5
40aac2:	83 c8 08             	or     $0x8,%eax
40aac5:	f7 c1 00 04 00 00    	test   $0x400,%ecx
40aacb:	74 03                	je     0x40aad0
40aacd:	83 c8 04             	or     $0x4,%eax
40aad0:	f7 c1 00 08 00 00    	test   $0x800,%ecx
40aad6:	74 03                	je     0x40aadb
40aad8:	83 c8 02             	or     $0x2,%eax
40aadb:	f7 c1 00 10 00 00    	test   $0x1000,%ecx
40aae1:	74 03                	je     0x40aae6
40aae3:	83 c8 01             	or     $0x1,%eax
40aae6:	f7 c1 00 01 00 00    	test   $0x100,%ecx
40aaec:	74 05                	je     0x40aaf3
40aaee:	0d 00 00 08 00       	or     $0x80000,%eax
40aaf3:	8b d1                	mov    %ecx,%edx
40aaf5:	bf 00 60 00 00       	mov    $0x6000,%edi
40aafa:	23 d7                	and    %edi,%edx
40aafc:	74 27                	je     0x40ab25
40aafe:	81 fa 00 20 00 00    	cmp    $0x2000,%edx
40ab04:	74 1a                	je     0x40ab20
40ab06:	81 fa 00 40 00 00    	cmp    $0x4000,%edx
40ab0c:	74 0b                	je     0x40ab19
40ab0e:	3b d7                	cmp    %edi,%edx
40ab10:	75 13                	jne    0x40ab25
40ab12:	0d 00 03 00 00       	or     $0x300,%eax
40ab17:	eb 0c                	jmp    0x40ab25
40ab19:	0d 00 02 00 00       	or     $0x200,%eax
40ab1e:	eb 05                	jmp    0x40ab25
40ab20:	0d 00 01 00 00       	or     $0x100,%eax
40ab25:	81 e1 40 80 00 00    	and    $0x8040,%ecx
40ab2b:	2b cb                	sub    %ebx,%ecx
40ab2d:	74 1a                	je     0x40ab49
40ab2f:	81 e9 c0 7f 00 00    	sub    $0x7fc0,%ecx
40ab35:	74 0b                	je     0x40ab42
40ab37:	2b cb                	sub    %ebx,%ecx
40ab39:	75 13                	jne    0x40ab4e
40ab3b:	0d 00 00 00 01       	or     $0x1000000,%eax
40ab40:	eb 0c                	jmp    0x40ab4e
40ab42:	0d 00 00 00 03       	or     $0x3000000,%eax
40ab47:	eb 05                	jmp    0x40ab4e
40ab49:	0d 00 00 00 02       	or     $0x2000000,%eax
40ab4e:	8b c8                	mov    %eax,%ecx
40ab50:	33 c6                	xor    %esi,%eax
40ab52:	0b ce                	or     %esi,%ecx
40ab54:	a9 1f 03 08 00       	test   $0x8031f,%eax
40ab59:	74 06                	je     0x40ab61
40ab5b:	81 c9 00 00 00 80    	or     $0x80000000,%ecx
40ab61:	8b c1                	mov    %ecx,%eax
40ab63:	eb 02                	jmp    0x40ab67
40ab65:	8b c6                	mov    %esi,%eax
40ab67:	5f                   	pop    %edi
40ab68:	5e                   	pop    %esi
40ab69:	5b                   	pop    %ebx
40ab6a:	c9                   	leave
40ab6b:	c3                   	ret
40ab6c:	8b ff                	mov    %edi,%edi
40ab6e:	55                   	push   %ebp
40ab6f:	8b ec                	mov    %esp,%ebp
40ab71:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ab74:	8b d1                	mov    %ecx,%edx
40ab76:	c1 ea 04             	shr    $0x4,%edx
40ab79:	83 e2 01             	and    $0x1,%edx
40ab7c:	8b c2                	mov    %edx,%eax
40ab7e:	f6 c1 08             	test   $0x8,%cl
40ab81:	74 06                	je     0x40ab89
40ab83:	83 ca 04             	or     $0x4,%edx
40ab86:	0f b7 c2             	movzwl %dx,%eax
40ab89:	f6 c1 04             	test   $0x4,%cl
40ab8c:	74 03                	je     0x40ab91
40ab8e:	83 c8 08             	or     $0x8,%eax
40ab91:	f6 c1 02             	test   $0x2,%cl
40ab94:	74 03                	je     0x40ab99
40ab96:	83 c8 10             	or     $0x10,%eax
40ab99:	f6 c1 01             	test   $0x1,%cl
40ab9c:	74 03                	je     0x40aba1
40ab9e:	83 c8 20             	or     $0x20,%eax
40aba1:	f7 c1 00 00 08 00    	test   $0x80000,%ecx
40aba7:	74 03                	je     0x40abac
40aba9:	83 c8 02             	or     $0x2,%eax
40abac:	56                   	push   %esi
40abad:	8b d1                	mov    %ecx,%edx
40abaf:	be 00 03 00 00       	mov    $0x300,%esi
40abb4:	57                   	push   %edi
40abb5:	bf 00 02 00 00       	mov    $0x200,%edi
40abba:	23 d6                	and    %esi,%edx
40abbc:	74 23                	je     0x40abe1
40abbe:	81 fa 00 01 00 00    	cmp    $0x100,%edx
40abc4:	74 16                	je     0x40abdc
40abc6:	3b d7                	cmp    %edi,%edx
40abc8:	74 0b                	je     0x40abd5
40abca:	3b d6                	cmp    %esi,%edx
40abcc:	75 13                	jne    0x40abe1
40abce:	0d 00 0c 00 00       	or     $0xc00,%eax
40abd3:	eb 0c                	jmp    0x40abe1
40abd5:	0d 00 08 00 00       	or     $0x800,%eax
40abda:	eb 05                	jmp    0x40abe1
40abdc:	0d 00 04 00 00       	or     $0x400,%eax
40abe1:	8b d1                	mov    %ecx,%edx
40abe3:	81 e2 00 00 03 00    	and    $0x30000,%edx
40abe9:	74 0c                	je     0x40abf7
40abeb:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
40abf1:	75 06                	jne    0x40abf9
40abf3:	0b c7                	or     %edi,%eax
40abf5:	eb 02                	jmp    0x40abf9
40abf7:	0b c6                	or     %esi,%eax
40abf9:	5f                   	pop    %edi
40abfa:	5e                   	pop    %esi
40abfb:	f7 c1 00 00 04 00    	test   $0x40000,%ecx
40ac01:	74 05                	je     0x40ac08
40ac03:	0d 00 10 00 00       	or     $0x1000,%eax
40ac08:	5d                   	pop    %ebp
40ac09:	c3                   	ret
40ac0a:	8b ff                	mov    %edi,%edi
40ac0c:	55                   	push   %ebp
40ac0d:	8b ec                	mov    %esp,%ebp
40ac0f:	56                   	push   %esi
40ac10:	8b 75 0c             	mov    0xc(%ebp),%esi
40ac13:	8b 06                	mov    (%esi),%eax
40ac15:	3b 05 ec 6e 41 00    	cmp    0x416eec,%eax
40ac1b:	74 17                	je     0x40ac34
40ac1d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ac20:	a1 a0 66 41 00       	mov    0x4166a0,%eax
40ac25:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
40ac2b:	75 07                	jne    0x40ac34
40ac2d:	e8 8c ee ff ff       	call   0x409abe
40ac32:	89 06                	mov    %eax,(%esi)
40ac34:	5e                   	pop    %esi
40ac35:	5d                   	pop    %ebp
40ac36:	c3                   	ret
40ac37:	8b ff                	mov    %edi,%edi
40ac39:	55                   	push   %ebp
40ac3a:	8b ec                	mov    %esp,%ebp
40ac3c:	8b 45 10             	mov    0x10(%ebp),%eax
40ac3f:	56                   	push   %esi
40ac40:	8b 75 0c             	mov    0xc(%ebp),%esi
40ac43:	8b 0e                	mov    (%esi),%ecx
40ac45:	3b 0c 85 ec 6e 41 00 	cmp    0x416eec(,%eax,4),%ecx