40adc2:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40adc5:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40adcc:	5f                   	pop    %edi
40adcd:	5e                   	pop    %esi
40adce:	5b                   	pop    %ebx
40adcf:	c9                   	leave
40add0:	c2 08 00             	ret    $0x8
40add3:	55                   	push   %ebp
40add4:	8b ec                	mov    %esp,%ebp
40add6:	51                   	push   %ecx
40add7:	51                   	push   %ecx
40add8:	68 36 13 40 00       	push   $0x401336
40addd:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40ade3:	50                   	push   %eax
40ade4:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40adeb:	6a 18                	push   $0x18
40aded:	58                   	pop    %eax
40adee:	e8 3d 65 ff ff       	call   0x401330
40adf3:	53                   	push   %ebx
40adf4:	56                   	push   %esi
40adf5:	57                   	push   %edi
40adf6:	89 65 f8             	mov    %esp,-0x8(%ebp)
40adf9:	c7 45 fc f8 11 40 00 	movl   $0x4011f8,-0x4(%ebp)
40ae00:	68 2e e9 40 00       	push   $0x40e92e
40ae05:	e8 ac 00 00 00       	call   0x40aeb6
40ae0a:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40ae0d:	8d 45 ec             	lea    -0x14(%ebp),%eax
40ae10:	50                   	push   %eax
40ae11:	e8 a0 66 ff ff       	call   0x4014b6
40ae16:	50                   	push   %eax
40ae17:	ff 75 e4             	push   -0x1c(%ebp)
40ae1a:	e8 23 b6 ff ff       	call   0x406442
40ae1f:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40ae23:	7e 6a                	jle    0x40ae8f
40ae25:	6a 00                	push   $0x0
40ae27:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ae2a:	83 e8 05             	sub    $0x5,%eax
40ae2d:	50                   	push   %eax
40ae2e:	6a 01                	push   $0x1
40ae30:	6a 11                	push   $0x11
40ae32:	ff 75 08             	push   0x8(%ebp)
40ae35:	6a 01                	push   $0x1
40ae37:	68 80 00 00 00       	push   $0x80
40ae3c:	e8 c3 66 ff ff       	call   0x401504
40ae41:	83 c4 1c             	add    $0x1c,%esp
40ae44:	8b 45 08             	mov    0x8(%ebp),%eax
40ae47:	ff 30                	push   (%eax)
40ae49:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ae4c:	50                   	push   %eax
40ae4d:	e8 8e 66 ff ff       	call   0x4014e0
40ae52:	8b 45 e0             	mov    -0x20(%ebp),%eax
40ae55:	33 c9                	xor    %ecx,%ecx
40ae57:	2b 48 14             	sub    0x14(%eax),%ecx
40ae5a:	8b 45 e0             	mov    -0x20(%ebp),%eax
40ae5d:	8b 40 0c             	mov    0xc(%eax),%eax
40ae60:	03 c1                	add    %ecx,%eax
40ae62:	50                   	push   %eax
40ae63:	e8 4e 66 ff ff       	call   0x4014b6
40ae68:	89 45 dc             	mov    %eax,-0x24(%ebp)
40ae6b:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ae6e:	50                   	push   %eax
40ae6f:	e8 66 66 ff ff       	call   0x4014da
40ae74:	8b 45 ec             	mov    -0x14(%ebp),%eax
40ae77:	83 e8 04             	sub    $0x4,%eax
40ae7a:	50                   	push   %eax
40ae7b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40ae7e:	83 c0 04             	add    $0x4,%eax
40ae81:	50                   	push   %eax
40ae82:	ff 75 dc             	push   -0x24(%ebp)
40ae85:	e8 d5 b5 ff ff       	call   0x40645f
40ae8a:	66 83 4d e8 ff       	orw    $0xffff,-0x18(%ebp)
40ae8f:	68 a1 ae 40 00       	push   $0x40aea1
40ae94:	eb 0a                	jmp    0x40aea0
40ae96:	8d 45 e0             	lea    -0x20(%ebp),%eax
40ae99:	50                   	push   %eax
40ae9a:	e8 3b 66 ff ff       	call   0x4014da
40ae9f:	c3                   	ret
40aea0:	c3                   	ret
40aea1:	66 8b 45 e8          	mov    -0x18(%ebp),%ax
40aea5:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40aea8:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40aeaf:	5f                   	pop    %edi
40aeb0:	5e                   	pop    %esi
40aeb1:	5b                   	pop    %ebx
40aeb2:	c9                   	leave
40aeb3:	c2 04 00             	ret    $0x4
40aeb6:	55                   	push   %ebp
40aeb7:	8b ec                	mov    %esp,%ebp
40aeb9:	6a 04                	push   $0x4
40aebb:	58                   	pop    %eax
40aebc:	e8 6f 64 ff ff       	call   0x401330
40aec1:	8b 45 08             	mov    0x8(%ebp),%eax
40aec4:	89 45 fc             	mov    %eax,-0x4(%ebp)
40aec7:	8b 45 fc             	mov    -0x4(%ebp),%eax
40aeca:	c9                   	leave
40aecb:	c2 04 00             	ret    $0x4
40aece:	55                   	push   %ebp
40aecf:	8b ec                	mov    %esp,%ebp
40aed1:	51                   	push   %ecx
40aed2:	51                   	push   %ecx
40aed3:	68 36 13 40 00       	push   $0x401336
40aed8:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40aede:	50                   	push   %eax
40aedf:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40aee6:	6a 54                	push   $0x54
40aee8:	58                   	pop    %eax
40aee9:	e8 42 64 ff ff       	call   0x401330
40aeee:	53                   	push   %ebx
40aeef:	56                   	push   %esi
40aef0:	57                   	push   %edi
40aef1:	89 65 f8             	mov    %esp,-0x8(%ebp)
40aef4:	c7 45 fc 08 12 40 00 	movl   $0x401208,-0x4(%ebp)
40aefb:	68 8c 4e 44 00       	push   $0x444e8c
40af00:	e8 b1 ff ff ff       	call   0x40aeb6
40af05:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40af08:	8d 45 ec             	lea    -0x14(%ebp),%eax
40af0b:	50                   	push   %eax
40af0c:	ff 75 d4             	push   -0x2c(%ebp)
40af0f:	e8 12 65 ff ff       	call   0x401426
40af14:	6a 40                	push   $0x40
40af16:	68 00 30 00 00       	push   $0x3000
40af1b:	ff 75 ec             	push   -0x14(%ebp)
40af1e:	6a 00                	push   $0x0
40af20:	6a ff                	push   $0xffffffff
40af22:	e8 ad 95 ff ff       	call   0x4044d4
40af27:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40af2a:	e8 03 65 ff ff       	call   0x401432
40af2f:	8b 45 a4             	mov    -0x5c(%ebp),%eax
40af32:	89 45 b0             	mov    %eax,-0x50(%ebp)
40af35:	c7 45 a8 03 00 00 00 	movl   $0x3,-0x58(%ebp)
40af3c:	8d 55 a8             	lea    -0x58(%ebp),%edx
40af3f:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40af42:	e8 45 65 ff ff       	call   0x40148c
40af47:	83 65 b0 00          	andl   $0x0,-0x50(%ebp)
40af4b:	c7 45 a8 02 80 00 00 	movl   $0x8002,-0x58(%ebp)
40af52:	8d 45 d8             	lea    -0x28(%ebp),%eax
40af55:	50                   	push   %eax
40af56:	8d 45 a8             	lea    -0x58(%ebp),%eax
40af59:	50                   	push   %eax
40af5a:	e8 cd 64 ff ff       	call   0x40142c
40af5f:	0f bf c0             	movswl %ax,%eax
40af62:	85 c0                	test   %eax,%eax
40af64:	74 05                	je     0x40af6b
40af66:	e9 28 01 00 00       	jmp    0x40b093
40af6b:	6a 00                	push   $0x0
40af6d:	8b 45 ec             	mov    -0x14(%ebp),%eax
40af70:	48                   	dec    %eax
40af71:	50                   	push   %eax
40af72:	6a 01                	push   $0x1
40af74:	6a 11                	push   $0x11
40af76:	8d 45 e8             	lea    -0x18(%ebp),%eax
40af79:	50                   	push   %eax
40af7a:	6a 01                	push   $0x1
40af7c:	68 80 00 00 00       	push   $0x80
40af81:	e8 7e 65 ff ff       	call   0x401504
40af86:	83 c4 1c             	add    $0x1c,%esp
40af89:	ff 75 e8             	push   -0x18(%ebp)
40af8c:	8d 45 cc             	lea    -0x34(%ebp),%eax
40af8f:	50                   	push   %eax
40af90:	e8 4b 65 ff ff       	call   0x4014e0
40af95:	8b 45 cc             	mov    -0x34(%ebp),%eax
40af98:	33 c9                	xor    %ecx,%ecx
40af9a:	2b 48 14             	sub    0x14(%eax),%ecx
40af9d:	8b 45 cc             	mov    -0x34(%ebp),%eax
40afa0:	8b 40 0c             	mov    0xc(%eax),%eax
40afa3:	03 c1                	add    %ecx,%eax
40afa5:	50                   	push   %eax
40afa6:	e8 0b 65 ff ff       	call   0x4014b6
40afab:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40afae:	8d 45 cc             	lea    -0x34(%ebp),%eax
40afb1:	50                   	push   %eax
40afb2:	e8 23 65 ff ff       	call   0x4014da
40afb7:	ff 75 ec             	push   -0x14(%ebp)
40afba:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40afbd:	83 c0 04             	add    $0x4,%eax
40afc0:	50                   	push   %eax
40afc1:	ff 75 a4             	push   -0x5c(%ebp)
40afc4:	e8 96 b4 ff ff       	call   0x40645f
40afc9:	8d 45 e8             	lea    -0x18(%ebp),%eax
40afcc:	50                   	push   %eax
40afcd:	e8 55 02 00 00       	call   0x40b227
40afd2:	ff 75 e8             	push   -0x18(%ebp)
40afd5:	8d 45 cc             	lea    -0x34(%ebp),%eax
40afd8:	50                   	push   %eax
40afd9:	e8 02 65 ff ff       	call   0x4014e0
40afde:	8b 45 cc             	mov    -0x34(%ebp),%eax
40afe1:	33 c9                	xor    %ecx,%ecx
40afe3:	2b 48 14             	sub    0x14(%eax),%ecx
40afe6:	8b 45 cc             	mov    -0x34(%ebp),%eax
40afe9:	8b 40 0c             	mov    0xc(%eax),%eax
40afec:	03 c1                	add    %ecx,%eax
40afee:	50                   	push   %eax
40afef:	e8 c2 64 ff ff       	call   0x4014b6
40aff4:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40aff7:	8d 45 cc             	lea    -0x34(%ebp),%eax
40affa:	50                   	push   %eax
40affb:	e8 da 64 ff ff       	call   0x4014da
40b000:	ff 75 ec             	push   -0x14(%ebp)
40b003:	ff 75 a4             	push   -0x5c(%ebp)
40b006:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b009:	50                   	push   %eax
40b00a:	e8 a1 64 ff ff       	call   0x4014b0
40b00f:	50                   	push   %eax
40b010:	e8 4a b4 ff ff       	call   0x40645f
40b015:	8b 55 0c             	mov    0xc(%ebp),%edx
40b018:	8d 4d a8             	lea    -0x58(%ebp),%ecx
40b01b:	e8 00 64 ff ff       	call   0x401420
40b020:	50                   	push   %eax
40b021:	8d 45 c8             	lea    -0x38(%ebp),%eax
40b024:	50                   	push   %eax
40b025:	e8 14 64 ff ff       	call   0x40143e
40b02a:	50                   	push   %eax
40b02b:	e8 86 64 ff ff       	call   0x4014b6
40b030:	89 45 a0             	mov    %eax,-0x60(%ebp)
40b033:	8b 45 08             	mov    0x8(%ebp),%eax
40b036:	ff 30                	push   (%eax)
40b038:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b03b:	50                   	push   %eax
40b03c:	e8 9f 64 ff ff       	call   0x4014e0
40b041:	8b 45 cc             	mov    -0x34(%ebp),%eax
40b044:	33 c9                	xor    %ecx,%ecx
40b046:	2b 48 14             	sub    0x14(%eax),%ecx
40b049:	8b 45 cc             	mov    -0x34(%ebp),%eax
40b04c:	8b 40 0c             	mov    0xc(%eax),%eax
40b04f:	03 c1                	add    %ecx,%eax
40b051:	50                   	push   %eax
40b052:	e8 5f 64 ff ff       	call   0x4014b6
40b057:	89 45 a4             	mov    %eax,-0x5c(%ebp)
40b05a:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b05d:	50                   	push   %eax
40b05e:	e8 77 64 ff ff       	call   0x4014da
40b063:	8b 45 08             	mov    0x8(%ebp),%eax
40b066:	8b 00                	mov    (%eax),%eax
40b068:	f7 d0                	not    %eax
40b06a:	f7 d0                	not    %eax
40b06c:	50                   	push   %eax
40b06d:	e8 df b3 ff ff       	call   0x406451
40b072:	50                   	push   %eax
40b073:	ff 75 a4             	push   -0x5c(%ebp)
40b076:	ff 75 a0             	push   -0x60(%ebp)
40b079:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b07c:	50                   	push   %eax
40b07d:	e8 2e 64 ff ff       	call   0x4014b0
40b082:	50                   	push   %eax
40b083:	e8 27 16 04 00       	call   0x44c6af
40b088:	89 45 d0             	mov    %eax,-0x30(%ebp)
40b08b:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40b08e:	e8 29 64 ff ff       	call   0x4014bc
40b093:	68 c8 b0 40 00       	push   $0x40b0c8
40b098:	eb 1a                	jmp    0x40b0b4
40b09a:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b09d:	50                   	push   %eax
40b09e:	e8 37 64 ff ff       	call   0x4014da
40b0a3:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40b0a6:	e8 11 64 ff ff       	call   0x4014bc
40b0ab:	8d 4d b8             	lea    -0x48(%ebp),%ecx
40b0ae:	e8 f1 63 ff ff       	call   0x4014a4
40b0b3:	c3                   	ret
40b0b4:	8d 45 e8             	lea    -0x18(%ebp),%eax
40b0b7:	50                   	push   %eax
40b0b8:	6a 00                	push   $0x0
40b0ba:	e8 0f 64 ff ff       	call   0x4014ce
40b0bf:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b0c2:	e8 dd 63 ff ff       	call   0x4014a4
40b0c7:	c3                   	ret
40b0c8:	8b 45 d0             	mov    -0x30(%ebp),%eax
40b0cb:	8b 4d f0             	mov    -0x10(%ebp),%ecx
40b0ce:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b0d5:	5f                   	pop    %edi
40b0d6:	5e                   	pop    %esi
40b0d7:	5b                   	pop    %ebx
40b0d8:	c9                   	leave
40b0d9:	c2 08 00             	ret    $0x8
40b0dc:	55                   	push   %ebp
40b0dd:	8b ec                	mov    %esp,%ebp
40b0df:	6a 04                	push   $0x4
40b0e1:	58                   	pop    %eax
40b0e2:	e8 49 62 ff ff       	call   0x401330
40b0e7:	56                   	push   %esi
40b0e8:	0f bf 45 08          	movswl 0x8(%ebp),%eax
40b0ec:	85 c0                	test   %eax,%eax
40b0ee:	74 11                	je     0x40b101
40b0f0:	e8 31 b0 ff ff       	call   0x406126
40b0f5:	f7 d8                	neg    %eax
40b0f7:	1b c0                	sbb    %eax,%eax
40b0f9:	f7 d8                	neg    %eax
40b0fb:	f7 d8                	neg    %eax
40b0fd:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
40b101:	0f bf 45 0c          	movswl 0xc(%ebp),%eax
40b105:	85 c0                	test   %eax,%eax
40b107:	74 17                	je     0x40b120
40b109:	0f bf 75 fc          	movswl -0x4(%ebp),%esi
40b10d:	e8 eb af ff ff       	call   0x4060fd
40b112:	0b f0                	or     %eax,%esi
40b114:	f7 de                	neg    %esi
40b116:	1b f6                	sbb    %esi,%esi
40b118:	f7 de                	neg    %esi
40b11a:	f7 de                	neg    %esi
40b11c:	66 89 75 fc          	mov    %si,-0x4(%ebp)
40b120:	0f bf 45 10          	movswl 0x10(%ebp),%eax
40b124:	85 c0                	test   %eax,%eax
40b126:	74 17                	je     0x40b13f
40b128:	0f bf 75 fc          	movswl -0x4(%ebp),%esi
40b12c:	e8 e1 af ff ff       	call   0x406112
40b131:	0b f0                	or     %eax,%esi
40b133:	f7 de                	neg    %esi
40b135:	1b f6                	sbb    %esi,%esi
40b137:	f7 de                	neg    %esi
40b139:	f7 de                	neg    %esi
40b13b:	66 89 75 fc          	mov    %si,-0x4(%ebp)
40b13f:	0f bf 45 14          	movswl 0x14(%ebp),%eax
40b143:	85 c0                	test   %eax,%eax
40b145:	74 17                	je     0x40b15e
40b147:	0f bf 75 fc          	movswl -0x4(%ebp),%esi
40b14b:	e8 64 af ff ff       	call   0x4060b4
40b150:	0b f0                	or     %eax,%esi
40b152:	f7 de                	neg    %esi
40b154:	1b f6                	sbb    %esi,%esi
40b156:	f7 de                	neg    %esi
40b158:	f7 de                	neg    %esi
40b15a:	66 89 75 fc          	mov    %si,-0x4(%ebp)
40b15e:	0f bf 45 fc          	movswl -0x4(%ebp),%eax
40b162:	85 c0                	test   %eax,%eax
40b164:	74 0c                	je     0x40b172
40b166:	6a 00                	push   $0x0
40b168:	e8 1b 91 ff ff       	call   0x404288
40b16d:	e8 c0 62 ff ff       	call   0x401432
40b172:	66 8b 45 fc          	mov    -0x4(%ebp),%ax
40b176:	5e                   	pop    %esi
40b177:	c9                   	leave
40b178:	c2 10 00             	ret    $0x10
40b17b:	55                   	push   %ebp
40b17c:	8b ec                	mov    %esp,%ebp
40b17e:	6a 04                	push   $0x4
40b180:	58                   	pop    %eax
40b181:	e8 aa 61 ff ff       	call   0x401330
40b186:	6a 00                	push   $0x0
40b188:	6a 04                	push   $0x4
40b18a:	8d 45 fc             	lea    -0x4(%ebp),%eax
40b18d:	50                   	push   %eax
40b18e:	6a 1e                	push   $0x1e
40b190:	6a ff                	push   $0xffffffff
40b192:	e8 f9 91 ff ff       	call   0x404390
40b197:	e8 96 62 ff ff       	call   0x401432
40b19c:	66 83 7d fc ff       	cmpw   $0xffff,-0x4(%ebp)
40b1a1:	75 0c                	jne    0x40b1af
40b1a3:	6a 00                	push   $0x0
40b1a5:	e8 de 90 ff ff       	call   0x404288
40b1aa:	e8 83 62 ff ff       	call   0x401432
40b1af:	66 8b 45 fc          	mov    -0x4(%ebp),%ax