40aaa0:	6a 00                	push   $0x0
40aaa2:	50                   	push   %eax
40aaa3:	6a 01                	push   $0x1
40aaa5:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aaa8:	50                   	push   %eax
40aaa9:	6a f5                	push   $0xfffffff5
40aaab:	ff 15 58 20 41 00    	call   *0x412058
40aab1:	50                   	push   %eax
40aab2:	ff 15 54 20 41 00    	call   *0x412054
40aab8:	6a 00                	push   $0x0
40aaba:	68 70 18 40 00       	push   $0x401870
40aabf:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aac2:	6a 0a                	push   $0xa
40aac4:	50                   	push   %eax
40aac5:	e8 5a e9 ff ff       	call   0x409424
40aaca:	83 c4 10             	add    $0x10,%esp
40aacd:	8d 45 d0             	lea    -0x30(%ebp),%eax
40aad0:	6a 00                	push   $0x0
40aad2:	50                   	push   %eax
40aad3:	6a 01                	push   $0x1
40aad5:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aad8:	50                   	push   %eax
40aad9:	6a f5                	push   $0xfffffff5
40aadb:	ff 15 58 20 41 00    	call   *0x412058
40aae1:	50                   	push   %eax
40aae2:	ff 15 54 20 41 00    	call   *0x412054
40aae8:	6a 08                	push   $0x8
40aaea:	68 70 18 40 00       	push   $0x401870
40aaef:	8d 45 e8             	lea    -0x18(%ebp),%eax
40aaf2:	6a 0a                	push   $0xa
40aaf4:	50                   	push   %eax
40aaf5:	e8 2a e9 ff ff       	call   0x409424
40aafa:	83 c4 10             	add    $0x10,%esp
40aafd:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ab00:	6a 00                	push   $0x0
40ab02:	50                   	push   %eax
40ab03:	6a 01                	push   $0x1
40ab05:	8d 45 e8             	lea    -0x18(%ebp),%eax
40ab08:	50                   	push   %eax
40ab09:	6a f5                	push   $0xfffffff5
40ab0b:	ff 15 58 20 41 00    	call   *0x412058
40ab11:	50                   	push   %eax
40ab12:	ff 15 54 20 41 00    	call   *0x412054
40ab18:	4b                   	dec    %ebx
40ab19:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40ab1c:	e9 e0 fe ff ff       	jmp    0x40aa01
40ab21:	8b 45 bc             	mov    -0x44(%ebp),%eax
40ab24:	48                   	dec    %eax
40ab25:	3b d8                	cmp    %eax,%ebx
40ab27:	75 0f                	jne    0x40ab38
40ab29:	6a 00                	push   $0x0
40ab2b:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ab2e:	50                   	push   %eax
40ab2f:	6a 01                	push   $0x1
40ab31:	68 78 18 40 00       	push   $0x401878
40ab36:	eb 21                	jmp    0x40ab59
40ab38:	8b 55 d4             	mov    -0x2c(%ebp),%edx
40ab3b:	6a 0a                	push   $0xa
40ab3d:	58                   	pop    %eax
40ab3e:	66 3b c8             	cmp    %ax,%cx
40ab41:	0f 84 ba fe ff ff    	je     0x40aa01
40ab47:	6a 00                	push   $0x0
40ab49:	8d 45 d0             	lea    -0x30(%ebp),%eax
40ab4c:	66 89 0c 5f          	mov    %cx,(%edi,%ebx,2)
40ab50:	50                   	push   %eax
40ab51:	6a 01                	push   $0x1
40ab53:	43                   	inc    %ebx
40ab54:	68 a8 12 40 00       	push   $0x4012a8
40ab59:	6a f5                	push   $0xfffffff5
40ab5b:	ff 15 58 20 41 00    	call   *0x412058
40ab61:	50                   	push   %eax
40ab62:	ff 15 54 20 41 00    	call   *0x412054
40ab68:	eb af                	jmp    0x40ab19
40ab6a:	ff 75 c4             	push   -0x3c(%ebp)
40ab6d:	33 c0                	xor    %eax,%eax
40ab6f:	56                   	push   %esi
40ab70:	66 89 04 5f          	mov    %ax,(%edi,%ebx,2)
40ab74:	ff 15 9c 20 41 00    	call   *0x41209c
40ab7a:	6a 0a                	push   $0xa
40ab7c:	58                   	pop    %eax
40ab7d:	50                   	push   %eax
40ab7e:	ba 7c 18 40 00       	mov    $0x40187c,%edx
40ab83:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40ab86:	e8 6b f8 ff ff       	call   0x40a3f6
40ab8b:	6a 00                	push   $0x0
40ab8d:	8d 4d d0             	lea    -0x30(%ebp),%ecx
40ab90:	51                   	push   %ecx
40ab91:	6a 02                	push   $0x2
40ab93:	8d 4d e8             	lea    -0x18(%ebp),%ecx
40ab96:	51                   	push   %ecx
40ab97:	6a f5                	push   $0xfffffff5
40ab99:	ff 15 58 20 41 00    	call   *0x412058
40ab9f:	50                   	push   %eax
40aba0:	ff 15 54 20 41 00    	call   *0x412054
40aba6:	33 c0                	xor    %eax,%eax
40aba8:	40                   	inc    %eax
40aba9:	eb 0c                	jmp    0x40abb7
40abab:	ff 75 c4             	push   -0x3c(%ebp)
40abae:	56                   	push   %esi
40abaf:	ff 15 9c 20 41 00    	call   *0x41209c
40abb5:	33 c0                	xor    %eax,%eax
40abb7:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40abba:	5f                   	pop    %edi
40abbb:	5e                   	pop    %esi
40abbc:	33 cd                	xor    %ebp,%ecx
40abbe:	5b                   	pop    %ebx
40abbf:	e8 0c 41 00 00       	call   0x40ecd0
40abc4:	c9                   	leave
40abc5:	c3                   	ret
40abc6:	8b ff                	mov    %edi,%edi
40abc8:	53                   	push   %ebx
40abc9:	56                   	push   %esi
40abca:	8b f1                	mov    %ecx,%esi
40abcc:	57                   	push   %edi
40abcd:	85 f6                	test   %esi,%esi
40abcf:	75 14                	jne    0x40abe5
40abd1:	ff 15 48 20 41 00    	call   *0x412048
40abd7:	85 c0                	test   %eax,%eax
40abd9:	75 21                	jne    0x40abfc
40abdb:	6a 57                	push   $0x57
40abdd:	ff 15 74 20 41 00    	call   *0x412074
40abe3:	eb 17                	jmp    0x40abfc
40abe5:	33 db                	xor    %ebx,%ebx
40abe7:	39 1e                	cmp    %ebx,(%esi)
40abe9:	75 05                	jne    0x40abf0
40abeb:	33 c0                	xor    %eax,%eax
40abed:	40                   	inc    %eax
40abee:	eb 3b                	jmp    0x40ac2b
40abf0:	ff 15 90 20 41 00    	call   *0x412090
40abf6:	8b f8                	mov    %eax,%edi
40abf8:	85 ff                	test   %edi,%edi
40abfa:	75 04                	jne    0x40ac00
40abfc:	33 c0                	xor    %eax,%eax
40abfe:	eb 2b                	jmp    0x40ac2b
40ac00:	8b 0e                	mov    (%esi),%ecx
40ac02:	e8 f3 01 00 00       	call   0x40adfa
40ac07:	83 f8 ff             	cmp    $0xffffffff,%eax
40ac0a:	75 07                	jne    0x40ac13
40ac0c:	68 03 40 00 80       	push   $0x80004003
40ac11:	eb ca                	jmp    0x40abdd
40ac13:	50                   	push   %eax
40ac14:	53                   	push   %ebx
40ac15:	ff 36                	push   (%esi)
40ac17:	e8 a8 47 00 00       	call   0x40f3c4
40ac1c:	83 c4 0c             	add    $0xc,%esp
40ac1f:	ff 36                	push   (%esi)
40ac21:	53                   	push   %ebx
40ac22:	57                   	push   %edi
40ac23:	ff 15 8c 20 41 00    	call   *0x41208c
40ac29:	89 1e                	mov    %ebx,(%esi)
40ac2b:	5f                   	pop    %edi
40ac2c:	5e                   	pop    %esi
40ac2d:	5b                   	pop    %ebx
40ac2e:	c3                   	ret
40ac2f:	8b ff                	mov    %edi,%edi
40ac31:	56                   	push   %esi
40ac32:	8b f1                	mov    %ecx,%esi
40ac34:	85 f6                	test   %esi,%esi
40ac36:	75 0e                	jne    0x40ac46
40ac38:	ff 15 48 20 41 00    	call   *0x412048
40ac3e:	85 c0                	test   %eax,%eax
40ac40:	75 24                	jne    0x40ac66
40ac42:	6a 57                	push   $0x57
40ac44:	eb 1a                	jmp    0x40ac60
40ac46:	ff 15 90 20 41 00    	call   *0x412090
40ac4c:	85 c0                	test   %eax,%eax
40ac4e:	74 16                	je     0x40ac66
40ac50:	56                   	push   %esi
40ac51:	6a 00                	push   $0x0
40ac53:	50                   	push   %eax
40ac54:	ff 15 88 20 41 00    	call   *0x412088
40ac5a:	85 c0                	test   %eax,%eax
40ac5c:	75 0a                	jne    0x40ac68
40ac5e:	6a 06                	push   $0x6
40ac60:	ff 15 74 20 41 00    	call   *0x412074
40ac66:	33 c0                	xor    %eax,%eax
40ac68:	5e                   	pop    %esi
40ac69:	c3                   	ret
40ac6a:	6a 10                	push   $0x10
40ac6c:	68 c0 0d 41 00       	push   $0x410dc0
40ac71:	e8 c2 45 00 00       	call   0x40f238
40ac76:	8b f1                	mov    %ecx,%esi
40ac78:	85 f6                	test   %esi,%esi
40ac7a:	75 14                	jne    0x40ac90
40ac7c:	ff 15 48 20 41 00    	call   *0x412048
40ac82:	85 c0                	test   %eax,%eax
40ac84:	75 7c                	jne    0x40ad02
40ac86:	6a 57                	push   $0x57
40ac88:	ff 15 74 20 41 00    	call   *0x412074
40ac8e:	eb 72                	jmp    0x40ad02
40ac90:	ff 15 90 20 41 00    	call   *0x412090
40ac96:	85 c0                	test   %eax,%eax
40ac98:	74 68                	je     0x40ad02
40ac9a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ac9e:	56                   	push   %esi
40ac9f:	6a 0c                	push   $0xc
40aca1:	50                   	push   %eax
40aca2:	ff 15 84 20 41 00    	call   *0x412084
40aca8:	89 45 e0             	mov    %eax,-0x20(%ebp)
40acab:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40acb2:	eb 50                	jmp    0x40ad04
40acb4:	8b 45 ec             	mov    -0x14(%ebp),%eax
40acb7:	8b 00                	mov    (%eax),%eax
40acb9:	8b 00                	mov    (%eax),%eax
40acbb:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40acbe:	33 c0                	xor    %eax,%eax
40acc0:	40                   	inc    %eax
40acc1:	c3                   	ret
40acc2:	8b 65 e8             	mov    -0x18(%ebp),%esp
40acc5:	81 7d e4 17 00 00 c0 	cmpl   $0xc0000017,-0x1c(%ebp)
40accc:	74 1b                	je     0x40ace9
40acce:	81 7d e4 05 00 00 c0 	cmpl   $0xc0000005,-0x1c(%ebp)
40acd5:	75 12                	jne    0x40ace9
40acd7:	68 70 05 00 00       	push   $0x570
40acdc:	ff 15 74 20 41 00    	call   *0x412074
40ace2:	e8 0d eb ff ff       	call   0x4097f4
40ace7:	eb 12                	jmp    0x40acfb
40ace9:	ff 15 48 20 41 00    	call   *0x412048
40acef:	85 c0                	test   %eax,%eax
40acf1:	75 08                	jne    0x40acfb
40acf3:	6a 08                	push   $0x8
40acf5:	ff 15 74 20 41 00    	call   *0x412074
40acfb:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ad02:	33 c0                	xor    %eax,%eax
40ad04:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40ad07:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40ad0e:	59                   	pop    %ecx
40ad0f:	5f                   	pop    %edi
40ad10:	5e                   	pop    %esi
40ad11:	5b                   	pop    %ebx
40ad12:	c9                   	leave
40ad13:	c3                   	ret
40ad14:	6a 0c                	push   $0xc
40ad16:	68 e0 0d 41 00       	push   $0x410de0
40ad1b:	e8 18 45 00 00       	call   0x40f238
40ad20:	8b fa                	mov    %edx,%edi
40ad22:	8b f1                	mov    %ecx,%esi
40ad24:	85 f6                	test   %esi,%esi
40ad26:	0f 84 aa 00 00 00    	je     0x40add6
40ad2c:	8b 0e                	mov    (%esi),%ecx
40ad2e:	85 c9                	test   %ecx,%ecx
40ad30:	0f 84 a0 00 00 00    	je     0x40add6
40ad36:	85 ff                	test   %edi,%edi
40ad38:	75 0c                	jne    0x40ad46
40ad3a:	8b ce                	mov    %esi,%ecx
40ad3c:	e8 85 fe ff ff       	call   0x40abc6
40ad41:	e9 a4 00 00 00       	jmp    0x40adea
40ad46:	e8 e4 fe ff ff       	call   0x40ac2f
40ad4b:	85 c0                	test   %eax,%eax
40ad4d:	75 07                	jne    0x40ad56
40ad4f:	21 06                	and    %eax,(%esi)
40ad51:	e9 92 00 00 00       	jmp    0x40ade8
40ad56:	ff 15 90 20 41 00    	call   *0x412090
40ad5c:	85 c0                	test   %eax,%eax
40ad5e:	0f 84 84 00 00 00    	je     0x40ade8
40ad64:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40ad68:	57                   	push   %edi
40ad69:	ff 36                	push   (%esi)
40ad6b:	6a 0c                	push   $0xc
40ad6d:	50                   	push   %eax
40ad6e:	ff 15 80 20 41 00    	call   *0x412080
40ad74:	85 c0                	test   %eax,%eax
40ad76:	75 1b                	jne    0x40ad93
40ad78:	ff 15 48 20 41 00    	call   *0x412048
40ad7e:	85 c0                	test   %eax,%eax
40ad80:	75 08                	jne    0x40ad8a
40ad82:	6a 08                	push   $0x8
40ad84:	ff 15 74 20 41 00    	call   *0x412074
40ad8a:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ad91:	eb 55                	jmp    0x40ade8
40ad93:	89 06                	mov    %eax,(%esi)
40ad95:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40ad9c:	33 c0                	xor    %eax,%eax
40ad9e:	40                   	inc    %eax
40ad9f:	eb 49                	jmp    0x40adea
40ada1:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ada4:	8b 00                	mov    (%eax),%eax
40ada6:	8b 00                	mov    (%eax),%eax
40ada8:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40adab:	33 c0                	xor    %eax,%eax
40adad:	40                   	inc    %eax
40adae:	c3                   	ret
40adaf:	8b 65 e8             	mov    -0x18(%ebp),%esp
40adb2:	81 7d e4 17 00 00 c0 	cmpl   $0xc0000017,-0x1c(%ebp)
40adb9:	74 bd                	je     0x40ad78
40adbb:	81 7d e4 05 00 00 c0 	cmpl   $0xc0000005,-0x1c(%ebp)
40adc2:	75 b4                	jne    0x40ad78
40adc4:	68 70 05 00 00       	push   $0x570
40adc9:	ff 15 74 20 41 00    	call   *0x412074
40adcf:	e8 20 ea ff ff       	call   0x4097f4
40add4:	eb b4                	jmp    0x40ad8a
40add6:	ff 15 48 20 41 00    	call   *0x412048
40addc:	85 c0                	test   %eax,%eax
40adde:	75 08                	jne    0x40ade8
40ade0:	6a 57                	push   $0x57
40ade2:	ff 15 74 20 41 00    	call   *0x412074
40ade8:	33 c0                	xor    %eax,%eax
40adea:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40aded:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40adf4:	59                   	pop    %ecx
40adf5:	5f                   	pop    %edi
40adf6:	5e                   	pop    %esi
40adf7:	5b                   	pop    %ebx
40adf8:	c9                   	leave
40adf9:	c3                   	ret
40adfa:	8b ff                	mov    %edi,%edi
40adfc:	56                   	push   %esi
40adfd:	8b f1                	mov    %ecx,%esi
40adff:	85 f6                	test   %esi,%esi
40ae01:	75 17                	jne    0x40ae1a
40ae03:	ff 15 48 20 41 00    	call   *0x412048
40ae09:	85 c0                	test   %eax,%eax
40ae0b:	75 08                	jne    0x40ae15
40ae0d:	6a 57                	push   $0x57
40ae0f:	ff 15 74 20 41 00    	call   *0x412074
40ae15:	83 c8 ff             	or     $0xffffffff,%eax
40ae18:	5e                   	pop    %esi
40ae19:	c3                   	ret
40ae1a:	e8 10 fe ff ff       	call   0x40ac2f
40ae1f:	85 c0                	test   %eax,%eax
40ae21:	74 f2                	je     0x40ae15
40ae23:	ff 15 90 20 41 00    	call   *0x412090
40ae29:	85 c0                	test   %eax,%eax
40ae2b:	74 e8                	je     0x40ae15
40ae2d:	56                   	push   %esi
40ae2e:	6a 00                	push   $0x0
40ae30:	50                   	push   %eax
40ae31:	ff 15 7c 20 41 00    	call   *0x41207c
40ae37:	5e                   	pop    %esi
40ae38:	c3                   	ret
40ae39:	8b ff                	mov    %edi,%edi
40ae3b:	55                   	push   %ebp
40ae3c:	8b ec                	mov    %esp,%ebp
40ae3e:	53                   	push   %ebx
40ae3f:	56                   	push   %esi
40ae40:	57                   	push   %edi
40ae41:	33 ff                	xor    %edi,%edi
40ae43:	bb 57 00 07 80       	mov    $0x80070057,%ebx
40ae48:	8b f7                	mov    %edi,%esi
40ae4a:	85 d2                	test   %edx,%edx
40ae4c:	74 08                	je     0x40ae56
40ae4e:	81 fa ff ff ff 7f    	cmp    $0x7fffffff,%edx
40ae54:	76 02                	jbe    0x40ae58
40ae56:	8b f3                	mov    %ebx,%esi
40ae58:	85 f6                	test   %esi,%esi
40ae5a:	78 42                	js     0x40ae9e
40ae5c:	8b f2                	mov    %edx,%esi
40ae5e:	8b c1                	mov    %ecx,%eax
40ae60:	85 d2                	test   %edx,%edx
40ae62:	74 0d                	je     0x40ae71