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
40b1b3:	c9                   	leave
40b1b4:	c3                   	ret
40b1b5:	55                   	push   %ebp
40b1b6:	8b ec                	mov    %esp,%ebp
40b1b8:	6a 10                	push   $0x10
40b1ba:	58                   	pop    %eax
40b1bb:	e8 70 61 ff ff       	call   0x401330
40b1c0:	e8 0f 90 ff ff       	call   0x4041d4
40b1c5:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b1c8:	e8 65 62 ff ff       	call   0x401432
40b1cd:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b1d0:	89 45 f8             	mov    %eax,-0x8(%ebp)
40b1d3:	68 f4 01 00 00       	push   $0x1f4
40b1d8:	e8 bb 8f ff ff       	call   0x404198
40b1dd:	e8 50 62 ff ff       	call   0x401432
40b1e2:	e8 ed 8f ff ff       	call   0x4041d4
40b1e7:	89 45 f0             	mov    %eax,-0x10(%ebp)
40b1ea:	e8 43 62 ff ff       	call   0x401432
40b1ef:	8b 45 f0             	mov    -0x10(%ebp),%eax
40b1f2:	89 45 fc             	mov    %eax,-0x4(%ebp)
40b1f5:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b1f8:	2b 45 f8             	sub    -0x8(%ebp),%eax
40b1fb:	3d f4 01 00 00       	cmp    $0x1f4,%eax
40b200:	7d 07                	jge    0x40b209
40b202:	66 83 4d f4 ff       	orw    $0xffff,-0xc(%ebp)
40b207:	eb 05                	jmp    0x40b20e
40b209:	66 83 65 f4 00       	andw   $0x0,-0xc(%ebp)
40b20e:	66 83 7d f4 ff       	cmpw   $0xffff,-0xc(%ebp)
40b213:	75 0c                	jne    0x40b221
40b215:	6a 00                	push   $0x0
40b217:	e8 6c 90 ff ff       	call   0x404288
40b21c:	e8 11 62 ff ff       	call   0x401432
40b221:	66 8b 45 f4          	mov    -0xc(%ebp),%ax
40b225:	c9                   	leave
40b226:	c3                   	ret
40b227:	55                   	push   %ebp
40b228:	8b ec                	mov    %esp,%ebp
40b22a:	5d                   	pop    %ebp
40b22b:	c2 04 00             	ret    $0x4
40b22e:	55                   	push   %ebp
40b22f:	8b ec                	mov    %esp,%ebp
40b231:	83 ec 0c             	sub    $0xc,%esp
40b234:	68 36 13 40 00       	push   $0x401336
40b239:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40b23f:	50                   	push   %eax
40b240:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40b247:	6a 44                	push   $0x44
40b249:	58                   	pop    %eax
40b24a:	e8 e1 60 ff ff       	call   0x401330
40b24f:	53                   	push   %ebx
40b250:	56                   	push   %esi
40b251:	57                   	push   %edi
40b252:	89 65 f4             	mov    %esp,-0xc(%ebp)
40b255:	c7 45 f8 18 12 40 00 	movl   $0x401218,-0x8(%ebp)
40b25c:	8b 55 08             	mov    0x8(%ebp),%edx
40b25f:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40b262:	e8 61 62 ff ff       	call   0x4014c8
40b267:	6a 20                	push   $0x20
40b269:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b26c:	50                   	push   %eax
40b26d:	e8 f6 61 ff ff       	call   0x401468
40b272:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b275:	50                   	push   %eax
40b276:	68 04 01 00 00       	push   $0x104
40b27b:	8d 45 bc             	lea    -0x44(%ebp),%eax
40b27e:	50                   	push   %eax
40b27f:	e8 96 61 ff ff       	call   0x40141a
40b284:	8d 45 bc             	lea    -0x44(%ebp),%eax
40b287:	50                   	push   %eax
40b288:	e8 e7 61 ff ff       	call   0x401474
40b28d:	8b d0                	mov    %eax,%edx
40b28f:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40b292:	e8 2b 62 ff ff       	call   0x4014c2
40b297:	8d 45 bc             	lea    -0x44(%ebp),%eax
40b29a:	50                   	push   %eax
40b29b:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b29e:	50                   	push   %eax
40b29f:	6a 02                	push   $0x2
40b2a1:	e8 ec 61 ff ff       	call   0x401492
40b2a6:	83 c4 0c             	add    $0xc,%esp
40b2a9:	ff 75 dc             	push   -0x24(%ebp)
40b2ac:	e8 05 62 ff ff       	call   0x4014b6
40b2b1:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40b2b4:	ff 75 e4             	push   -0x1c(%ebp)
40b2b7:	e8 fa 61 ff ff       	call   0x4014b6
40b2bc:	89 45 b0             	mov    %eax,-0x50(%ebp)
40b2bf:	68 04 01 00 00       	push   $0x104
40b2c4:	ff 75 b0             	push   -0x50(%ebp)
40b2c7:	ff 75 b4             	push   -0x4c(%ebp)
40b2ca:	e8 b9 94 ff ff       	call   0x404788
40b2cf:	89 45 b8             	mov    %eax,-0x48(%ebp)
40b2d2:	e8 5b 61 ff ff       	call   0x401432
40b2d7:	8b 45 b8             	mov    -0x48(%ebp),%eax
40b2da:	89 45 e8             	mov    %eax,-0x18(%ebp)
40b2dd:	83 7d e8 00          	cmpl   $0x0,-0x18(%ebp)
40b2e1:	7e 17                	jle    0x40b2fa
40b2e3:	ff 75 e8             	push   -0x18(%ebp)
40b2e6:	ff 75 e4             	push   -0x1c(%ebp)
40b2e9:	e8 26 61 ff ff       	call   0x401414
40b2ee:	8b d0                	mov    %eax,%edx
40b2f0:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40b2f3:	e8 ca 61 ff ff       	call   0x4014c2
40b2f8:	eb 0a                	jmp    0x40b304
40b2fa:	33 d2                	xor    %edx,%edx
40b2fc:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40b2ff:	e8 c4 61 ff ff       	call   0x4014c8
40b304:	8b 55 e4             	mov    -0x1c(%ebp),%edx
40b307:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40b30a:	e8 b9 61 ff ff       	call   0x4014c8
40b30f:	68 4c b3 40 00       	push   $0x40b34c
40b314:	eb 25                	jmp    0x40b33b
40b316:	8b 45 fc             	mov    -0x4(%ebp),%eax
40b319:	83 e0 04             	and    $0x4,%eax
40b31c:	85 c0                	test   %eax,%eax
40b31e:	74 08                	je     0x40b328
40b320:	8d 4d e0             	lea    -0x20(%ebp),%ecx
40b323:	e8 94 61 ff ff       	call   0x4014bc
40b328:	8d 45 bc             	lea    -0x44(%ebp),%eax
40b32b:	50                   	push   %eax
40b32c:	8d 45 cc             	lea    -0x34(%ebp),%eax
40b32f:	50                   	push   %eax
40b330:	6a 02                	push   $0x2
40b332:	e8 5b 61 ff ff       	call   0x401492
40b337:	83 c4 0c             	add    $0xc,%esp
40b33a:	c3                   	ret
40b33b:	8d 4d e4             	lea    -0x1c(%ebp),%ecx
40b33e:	e8 79 61 ff ff       	call   0x4014bc
40b343:	8d 4d dc             	lea    -0x24(%ebp),%ecx
40b346:	e8 71 61 ff ff       	call   0x4014bc
40b34b:	c3                   	ret
40b34c:	8b 45 e0             	mov    -0x20(%ebp),%eax
40b34f:	8b 4d ec             	mov    -0x14(%ebp),%ecx
40b352:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40b359:	5f                   	pop    %edi
40b35a:	5e                   	pop    %esi
40b35b:	5b                   	pop    %ebx
40b35c:	c9                   	leave
40b35d:	c2 04 00             	ret    $0x4
40b360:	55                   	push   %ebp
40b361:	8b ec                	mov    %esp,%ebp
40b363:	51                   	push   %ecx
40b364:	51                   	push   %ecx
40b365:	68 36 13 40 00       	push   $0x401336
40b36a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40b370:	50                   	push   %eax
40b371:	64 89 25 00 00 00 00 	mov    %esp,%fs:0x0
40b378:	6a 60                	push   $0x60
40b37a:	58                   	pop    %eax
40b37b:	e8 b0 5f ff ff       	call   0x401330
40b380:	53                   	push   %ebx
40b381:	56                   	push   %esi
40b382:	57                   	push   %edi
40b383:	89 65 f8             	mov    %esp,-0x8(%ebp)
40b386:	c7 45 fc 28 12 40 00 	movl   $0x401228,-0x4(%ebp)
40b38d:	6a 00                	push   $0x0
40b38f:	6a 0f                	push   $0xf
40b391:	6a 01                	push   $0x1
40b393:	6a 03                	push   $0x3
40b395:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40b398:	50                   	push   %eax
40b399:	6a 04                	push   $0x4
40b39b:	68 80 00 00 00       	push   $0x80
40b3a0:	e8 5f 61 ff ff       	call   0x401504
40b3a5:	83 c4 1c             	add    $0x1c,%esp
40b3a8:	68 d0 38 40 00       	push   $0x4038d0
40b3ad:	68 c0 38 40 00       	push   $0x4038c0
40b3b2:	e8 3b 61 ff ff       	call   0x4014f2
40b3b7:	50                   	push   %eax
40b3b8:	8d 45 c8             	lea    -0x38(%ebp),%eax
40b3bb:	50                   	push   %eax
40b3bc:	e8 3d 61 ff ff       	call   0x4014fe
40b3c1:	50                   	push   %eax
40b3c2:	e8 31 61 ff ff       	call   0x4014f8
40b3c7:	50                   	push   %eax
40b3c8:	8d 45 d4             	lea    -0x2c(%ebp),%eax