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
40ac4c:	74 17                	je     0x40ac65
40ac4e:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ac51:	a1 a0 66 41 00       	mov    0x4166a0,%eax
40ac56:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
40ac5c:	75 07                	jne    0x40ac65
40ac5e:	e8 5b ee ff ff       	call   0x409abe
40ac63:	89 06                	mov    %eax,(%esi)
40ac65:	5e                   	pop    %esi
40ac66:	5d                   	pop    %ebp
40ac67:	c3                   	ret
40ac68:	8b ff                	mov    %edi,%edi
40ac6a:	55                   	push   %ebp
40ac6b:	8b ec                	mov    %esp,%ebp
40ac6d:	56                   	push   %esi
40ac6e:	8b 75 0c             	mov    0xc(%ebp),%esi
40ac71:	8b 06                	mov    (%esi),%eax
40ac73:	3b 05 4c 70 41 00    	cmp    0x41704c,%eax
40ac79:	74 17                	je     0x40ac92
40ac7b:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ac7e:	a1 a0 66 41 00       	mov    0x4166a0,%eax
40ac83:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
40ac89:	75 07                	jne    0x40ac92
40ac8b:	e8 42 dd ff ff       	call   0x4089d2
40ac90:	89 06                	mov    %eax,(%esi)
40ac92:	5e                   	pop    %esi
40ac93:	5d                   	pop    %ebp
40ac94:	c3                   	ret
40ac95:	8b ff                	mov    %edi,%edi
40ac97:	55                   	push   %ebp
40ac98:	8b ec                	mov    %esp,%ebp
40ac9a:	8b 45 10             	mov    0x10(%ebp),%eax
40ac9d:	56                   	push   %esi
40ac9e:	8b 75 0c             	mov    0xc(%ebp),%esi
40aca1:	8b 0e                	mov    (%esi),%ecx
40aca3:	3b 0c 85 4c 70 41 00 	cmp    0x41704c(,%eax,4),%ecx
40acaa:	74 17                	je     0x40acc3
40acac:	8b 4d 08             	mov    0x8(%ebp),%ecx
40acaf:	a1 a0 66 41 00       	mov    0x4166a0,%eax
40acb4:	85 81 50 03 00 00    	test   %eax,0x350(%ecx)
40acba:	75 07                	jne    0x40acc3
40acbc:	e8 11 dd ff ff       	call   0x4089d2
40acc1:	89 06                	mov    %eax,(%esi)
40acc3:	5e                   	pop    %esi
40acc4:	5d                   	pop    %ebp
40acc5:	c3                   	ret
40acc6:	8b ff                	mov    %edi,%edi
40acc8:	55                   	push   %ebp
40acc9:	8b ec                	mov    %esp,%ebp
40accb:	51                   	push   %ecx
40accc:	53                   	push   %ebx
40accd:	56                   	push   %esi
40acce:	57                   	push   %edi
40accf:	8b 7d 0c             	mov    0xc(%ebp),%edi
40acd2:	85 ff                	test   %edi,%edi
40acd4:	0f 84 0a 01 00 00    	je     0x40ade4
40acda:	8b 5d 10             	mov    0x10(%ebp),%ebx
40acdd:	85 db                	test   %ebx,%ebx
40acdf:	0f 84 ff 00 00 00    	je     0x40ade4
40ace5:	80 3f 00             	cmpb   $0x0,(%edi)
40ace8:	75 15                	jne    0x40acff
40acea:	8b 45 08             	mov    0x8(%ebp),%eax
40aced:	85 c0                	test   %eax,%eax
40acef:	0f 84 fd 00 00 00    	je     0x40adf2
40acf5:	33 c9                	xor    %ecx,%ecx
40acf7:	66 89 08             	mov    %cx,(%eax)
40acfa:	e9 f3 00 00 00       	jmp    0x40adf2
40acff:	8b 75 14             	mov    0x14(%ebp),%esi
40ad02:	80 7e 14 00          	cmpb   $0x0,0x14(%esi)
40ad06:	75 07                	jne    0x40ad0f
40ad08:	8b ce                	mov    %esi,%ecx
40ad0a:	e8 41 c3 ff ff       	call   0x407050
40ad0f:	8b 46 0c             	mov    0xc(%esi),%eax
40ad12:	8b 48 08             	mov    0x8(%eax),%ecx
40ad15:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40ad18:	81 f9 e9 fd 00 00    	cmp    $0xfde9,%ecx
40ad1e:	75 23                	jne    0x40ad43
40ad20:	56                   	push   %esi
40ad21:	68 90 73 41 00       	push   $0x417390
40ad26:	53                   	push   %ebx
40ad27:	57                   	push   %edi
40ad28:	ff 75 08             	push   0x8(%ebp)
40ad2b:	e8 be 19 00 00       	call   0x40c6ee
40ad30:	83 c4 14             	add    $0x14,%esp
40ad33:	85 c0                	test   %eax,%eax
40ad35:	0f 89 b9 00 00 00    	jns    0x40adf4
40ad3b:	83 c8 ff             	or     $0xffffffff,%eax
40ad3e:	e9 b1 00 00 00       	jmp    0x40adf4
40ad43:	33 d2                	xor    %edx,%edx
40ad45:	39 90 a8 00 00 00    	cmp    %edx,0xa8(%eax)
40ad4b:	75 13                	jne    0x40ad60
40ad4d:	8b 4d 08             	mov    0x8(%ebp),%ecx
40ad50:	85 c9                	test   %ecx,%ecx
40ad52:	0f 84 87 00 00 00    	je     0x40addf
40ad58:	0f b6 07             	movzbl (%edi),%eax
40ad5b:	66 89 01             	mov    %ax,(%ecx)
40ad5e:	eb 7f                	jmp    0x40addf
40ad60:	0f b6 0f             	movzbl (%edi),%ecx
40ad63:	8b 00                	mov    (%eax),%eax
40ad65:	66 39 14 48          	cmp    %dx,(%eax,%ecx,2)
40ad69:	7d 54                	jge    0x40adbf
40ad6b:	8b 46 0c             	mov    0xc(%esi),%eax
40ad6e:	8b 48 04             	mov    0x4(%eax),%ecx
40ad71:	83 f9 01             	cmp    $0x1,%ecx
40ad74:	7e 23                	jle    0x40ad99
40ad76:	3b d9                	cmp    %ecx,%ebx
40ad78:	7c 1f                	jl     0x40ad99
40ad7a:	33 c0                	xor    %eax,%eax
40ad7c:	39 45 08             	cmp    %eax,0x8(%ebp)
40ad7f:	0f 95 c0             	setne  %al
40ad82:	50                   	push   %eax
40ad83:	ff 75 08             	push   0x8(%ebp)
40ad86:	51                   	push   %ecx
40ad87:	57                   	push   %edi
40ad88:	6a 09                	push   $0x9
40ad8a:	ff 75 fc             	push   -0x4(%ebp)
40ad8d:	e8 f2 df ff ff       	call   0x408d84
40ad92:	83 c4 18             	add    $0x18,%esp
40ad95:	85 c0                	test   %eax,%eax
40ad97:	75 0e                	jne    0x40ada7
40ad99:	8b 46 0c             	mov    0xc(%esi),%eax
40ad9c:	3b 58 04             	cmp    0x4(%eax),%ebx
40ad9f:	72 0e                	jb     0x40adaf
40ada1:	80 7f 01 00          	cmpb   $0x0,0x1(%edi)
40ada5:	74 08                	je     0x40adaf
40ada7:	8b 46 0c             	mov    0xc(%esi),%eax
40adaa:	8b 40 04             	mov    0x4(%eax),%eax
40adad:	eb 45                	jmp    0x40adf4
40adaf:	c6 46 1c 01          	movb   $0x1,0x1c(%esi)
40adb3:	c7 46 18 2a 00 00 00 	movl   $0x2a,0x18(%esi)
40adba:	e9 7c ff ff ff       	jmp    0x40ad3b
40adbf:	33 c0                	xor    %eax,%eax
40adc1:	39 45 08             	cmp    %eax,0x8(%ebp)
40adc4:	0f 95 c0             	setne  %al
40adc7:	50                   	push   %eax
40adc8:	ff 75 08             	push   0x8(%ebp)
40adcb:	6a 01                	push   $0x1
40adcd:	57                   	push   %edi
40adce:	6a 09                	push   $0x9
40add0:	ff 75 fc             	push   -0x4(%ebp)
40add3:	e8 ac df ff ff       	call   0x408d84
40add8:	83 c4 18             	add    $0x18,%esp
40addb:	85 c0                	test   %eax,%eax
40addd:	74 d0                	je     0x40adaf
40addf:	33 c0                	xor    %eax,%eax
40ade1:	40                   	inc    %eax
40ade2:	eb 10                	jmp    0x40adf4
40ade4:	33 d2                	xor    %edx,%edx
40ade6:	89 15 90 73 41 00    	mov    %edx,0x417390
40adec:	89 15 94 73 41 00    	mov    %edx,0x417394
40adf2:	33 c0                	xor    %eax,%eax
40adf4:	5f                   	pop    %edi
40adf5:	5e                   	pop    %esi
40adf6:	5b                   	pop    %ebx
40adf7:	c9                   	leave
40adf8:	c3                   	ret
40adf9:	8b ff                	mov    %edi,%edi
40adfb:	55                   	push   %ebp
40adfc:	8b ec                	mov    %esp,%ebp
40adfe:	8b 45 08             	mov    0x8(%ebp),%eax
40ae01:	85 c0                	test   %eax,%eax
40ae03:	75 15                	jne    0x40ae1a
40ae05:	e8 46 cb ff ff       	call   0x407950
40ae0a:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40ae10:	e8 07 af ff ff       	call   0x405d1c
40ae15:	83 c8 ff             	or     $0xffffffff,%eax
40ae18:	5d                   	pop    %ebp
40ae19:	c3                   	ret
40ae1a:	8b 40 10             	mov    0x10(%eax),%eax
40ae1d:	90                   	nop
40ae1e:	5d                   	pop    %ebp
40ae1f:	c3                   	ret
40ae20:	8b ff                	mov    %edi,%edi
40ae22:	55                   	push   %ebp
40ae23:	8b ec                	mov    %esp,%ebp
40ae25:	81 ec 18 01 00 00    	sub    $0x118,%esp