40af0f:	cc                   	int3
40af10:	6a 08                	push   $0x8
40af12:	b8 a5 f1 40 00       	mov    $0x40f1a5,%eax
40af17:	e8 32 37 00 00       	call   0x40e64e
40af1c:	33 db                	xor    %ebx,%ebx
40af1e:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40af21:	8d 45 f3             	lea    -0xd(%ebp),%eax
40af24:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40af27:	8b 49 08             	mov    0x8(%ecx),%ecx
40af2a:	be 7c 24 40 00       	mov    $0x40247c,%esi
40af2f:	50                   	push   %eax
40af30:	56                   	push   %esi
40af31:	ff 75 0c             	push   0xc(%ebp)
40af34:	88 5d f3             	mov    %bl,-0xd(%ebp)
40af37:	ff 75 08             	push   0x8(%ebp)
40af3a:	e8 0b ba ff ff       	call   0x40694a
40af3f:	8b 4d 18             	mov    0x18(%ebp),%ecx
40af42:	50                   	push   %eax
40af43:	e8 59 b5 ff ff       	call   0x4064a1
40af48:	38 5d f3             	cmp    %bl,-0xd(%ebp)
40af4b:	74 04                	je     0x40af51
40af4d:	b3 01                	mov    $0x1,%bl
40af4f:	eb 20                	jmp    0x40af71
40af51:	8b 4d 10             	mov    0x10(%ebp),%ecx
40af54:	85 c9                	test   %ecx,%ecx
40af56:	74 54                	je     0x40afac
40af58:	8b 55 14             	mov    0x14(%ebp),%edx
40af5b:	85 d2                	test   %edx,%edx
40af5d:	74 4d                	je     0x40afac
40af5f:	8d 45 ec             	lea    -0x14(%ebp),%eax
40af62:	50                   	push   %eax
40af63:	e8 de cc ff ff       	call   0x407c46
40af68:	85 c0                	test   %eax,%eax
40af6a:	78 53                	js     0x40afbf
40af6c:	83 f8 01             	cmp    $0x1,%eax
40af6f:	75 0d                	jne    0x40af7e
40af71:	ff 75 ec             	push   -0x14(%ebp)
40af74:	ff 15 0c 40 41 00    	call   *0x41400c
40af7a:	8a c3                	mov    %bl,%al
40af7c:	eb 39                	jmp    0x40afb7
40af7e:	83 7d ec 00          	cmpl   $0x0,-0x14(%ebp)
40af82:	74 12                	je     0x40af96
40af84:	ff 75 ec             	push   -0x14(%ebp)
40af87:	ff 15 04 40 41 00    	call   *0x414004
40af8d:	85 c0                	test   %eax,%eax
40af8f:	74 05                	je     0x40af96
40af91:	ff 75 ec             	push   -0x14(%ebp)
40af94:	eb 01                	jmp    0x40af97
40af96:	56                   	push   %esi
40af97:	8b 4d 18             	mov    0x18(%ebp),%ecx
40af9a:	e8 02 b5 ff ff       	call   0x4064a1
40af9f:	ff 75 ec             	push   -0x14(%ebp)
40afa2:	ff 15 0c 40 41 00    	call   *0x41400c
40afa8:	b0 01                	mov    $0x1,%al
40afaa:	eb 0b                	jmp    0x40afb7
40afac:	ff 75 ec             	push   -0x14(%ebp)
40afaf:	ff 15 0c 40 41 00    	call   *0x41400c
40afb5:	32 c0                	xor    %al,%al
40afb7:	e8 60 36 00 00       	call   0x40e61c
40afbc:	c2 14 00             	ret    $0x14
40afbf:	6a 05                	push   $0x5
40afc1:	5a                   	pop    %edx
40afc2:	8b c8                	mov    %eax,%ecx
40afc4:	e8 1a c6 ff ff       	call   0x4075e3
40afc9:	cc                   	int3
40afca:	6a 08                	push   $0x8
40afcc:	b8 a5 f1 40 00       	mov    $0x40f1a5,%eax
40afd1:	e8 78 36 00 00       	call   0x40e64e
40afd6:	33 db                	xor    %ebx,%ebx
40afd8:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40afdb:	8d 45 f3             	lea    -0xd(%ebp),%eax
40afde:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40afe1:	8b 49 08             	mov    0x8(%ecx),%ecx
40afe4:	bf 7c 24 40 00       	mov    $0x40247c,%edi
40afe9:	50                   	push   %eax
40afea:	57                   	push   %edi
40afeb:	ff 75 0c             	push   0xc(%ebp)
40afee:	88 5d f3             	mov    %bl,-0xd(%ebp)
40aff1:	ff 75 08             	push   0x8(%ebp)
40aff4:	e8 51 b9 ff ff       	call   0x40694a
40aff9:	8b 4d 18             	mov    0x18(%ebp),%ecx
40affc:	50                   	push   %eax
40affd:	e8 9f b4 ff ff       	call   0x4064a1
40b002:	38 5d f3             	cmp    %bl,-0xd(%ebp)
40b005:	74 0b                	je     0x40b012
40b007:	53                   	push   %ebx
40b008:	ff 15 0c 40 41 00    	call   *0x41400c
40b00e:	b0 01                	mov    $0x1,%al
40b010:	eb 50                	jmp    0x40b062
40b012:	8b 4d 10             	mov    0x10(%ebp),%ecx
40b015:	85 c9                	test   %ecx,%ecx
40b017:	74 40                	je     0x40b059
40b019:	8b 55 14             	mov    0x14(%ebp),%edx
40b01c:	85 d2                	test   %edx,%edx
40b01e:	74 39                	je     0x40b059
40b020:	8d 45 ec             	lea    -0x14(%ebp),%eax
40b023:	50                   	push   %eax
40b024:	51                   	push   %ecx
40b025:	e8 7f cc ff ff       	call   0x407ca9
40b02a:	85 c0                	test   %eax,%eax
40b02c:	78 3c                	js     0x40b06a
40b02e:	83 f8 01             	cmp    $0x1,%eax
40b031:	75 05                	jne    0x40b038
40b033:	ff 75 ec             	push   -0x14(%ebp)
40b036:	eb 22                	jmp    0x40b05a
40b038:	8b 75 ec             	mov    -0x14(%ebp),%esi
40b03b:	85 f6                	test   %esi,%esi
40b03d:	74 0e                	je     0x40b04d
40b03f:	56                   	push   %esi
40b040:	ff 15 04 40 41 00    	call   *0x414004
40b046:	85 c0                	test   %eax,%eax
40b048:	74 03                	je     0x40b04d
40b04a:	56                   	push   %esi
40b04b:	eb 01                	jmp    0x40b04e
40b04d:	57                   	push   %edi
40b04e:	8b 4d 18             	mov    0x18(%ebp),%ecx
40b051:	e8 4b b4 ff ff       	call   0x4064a1
40b056:	56                   	push   %esi
40b057:	eb af                	jmp    0x40b008
40b059:	53                   	push   %ebx
40b05a:	ff 15 0c 40 41 00    	call   *0x41400c
40b060:	32 c0                	xor    %al,%al
40b062:	e8 b5 35 00 00       	call   0x40e61c
40b067:	c2 14 00             	ret    $0x14
40b06a:	6a 05                	push   $0x5
40b06c:	5a                   	pop    %edx
40b06d:	8b c8                	mov    %eax,%ecx
40b06f:	e8 6f c5 ff ff       	call   0x4075e3
40b074:	cc                   	int3
40b075:	6a 3c                	push   $0x3c
40b077:	b8 c8 f1 40 00       	mov    $0x40f1c8,%eax
40b07c:	e8 00 36 00 00       	call   0x40e681
40b081:	8b f1                	mov    %ecx,%esi
40b083:	8b 45 08             	mov    0x8(%ebp),%eax
40b086:	33 c9                	xor    %ecx,%ecx
40b088:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b08b:	8b 5d 10             	mov    0x10(%ebp),%ebx
40b08e:	89 45 c8             	mov    %eax,-0x38(%ebp)
40b091:	8b 45 14             	mov    0x14(%ebp),%eax
40b094:	89 45 cc             	mov    %eax,-0x34(%ebp)
40b097:	8b 45 18             	mov    0x18(%ebp),%eax
40b09a:	89 45 d0             	mov    %eax,-0x30(%ebp)
40b09d:	33 c0                	xor    %eax,%eax
40b09f:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40b0a6:	89 4d e8             	mov    %ecx,-0x18(%ebp)
40b0a9:	66 89 45 d8          	mov    %ax,-0x28(%ebp)
40b0ad:	8d 45 d7             	lea    -0x29(%ebp),%eax
40b0b0:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40b0b3:	50                   	push   %eax
40b0b4:	6a 01                	push   $0x1
40b0b6:	53                   	push   %ebx
40b0b7:	88 4d d7             	mov    %cl,-0x29(%ebp)
40b0ba:	8b 4e 08             	mov    0x8(%esi),%ecx
40b0bd:	57                   	push   %edi
40b0be:	e8 e8 b8 ff ff       	call   0x4069ab
40b0c3:	80 7d d7 00          	cmpb   $0x0,-0x29(%ebp)
40b0c7:	74 0c                	je     0x40b0d5
40b0c9:	33 c9                	xor    %ecx,%ecx
40b0cb:	84 c0                	test   %al,%al
40b0cd:	0f 95 c1             	setne  %cl
40b0d0:	89 4d b8             	mov    %ecx,-0x48(%ebp)
40b0d3:	eb 71                	jmp    0x40b146
40b0d5:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b0d8:	8b ce                	mov    %esi,%ecx
40b0da:	50                   	push   %eax
40b0db:	ff 75 d0             	push   -0x30(%ebp)
40b0de:	ff 75 cc             	push   -0x34(%ebp)
40b0e1:	53                   	push   %ebx
40b0e2:	57                   	push   %edi
40b0e3:	e8 28 fe ff ff       	call   0x40af10
40b0e8:	84 c0                	test   %al,%al
40b0ea:	0f 84 82 00 00 00    	je     0x40b172
40b0f0:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b0f4:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b0f7:	73 03                	jae    0x40b0fc
40b0f9:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b0fc:	83 ce ff             	or     $0xffffffff,%esi
40b0ff:	56                   	push   %esi
40b100:	68 80 24 40 00       	push   $0x402480
40b105:	56                   	push   %esi
40b106:	50                   	push   %eax
40b107:	6a 01                	push   $0x1
40b109:	6a 7f                	push   $0x7f
40b10b:	ff 15 f4 20 41 00    	call   *0x4120f4
40b111:	83 f8 02             	cmp    $0x2,%eax
40b114:	75 09                	jne    0x40b11f
40b116:	c7 45 b8 01 00 00 00 	movl   $0x1,-0x48(%ebp)
40b11d:	eb 27                	jmp    0x40b146
40b11f:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b123:	8b 45 d8             	mov    -0x28(%ebp),%eax
40b126:	73 03                	jae    0x40b12b
40b128:	8d 45 d8             	lea    -0x28(%ebp),%eax
40b12b:	56                   	push   %esi
40b12c:	68 8c 24 40 00       	push   $0x40248c
40b131:	56                   	push   %esi
40b132:	50                   	push   %eax
40b133:	6a 01                	push   $0x1
40b135:	6a 7f                	push   $0x7f
40b137:	ff 15 f4 20 41 00    	call   *0x4120f4
40b13d:	83 f8 02             	cmp    $0x2,%eax
40b140:	75 2b                	jne    0x40b16d
40b142:	83 65 b8 00          	andl   $0x0,-0x48(%ebp)
40b146:	8d 45 b8             	lea    -0x48(%ebp),%eax
40b149:	c7 45 c4 01 00 00 00 	movl   $0x1,-0x3c(%ebp)
40b150:	50                   	push   %eax
40b151:	6a 00                	push   $0x0
40b153:	ff 75 1c             	push   0x1c(%ebp)
40b156:	ff 75 c8             	push   -0x38(%ebp)
40b159:	ff 15 18 20 41 00    	call   *0x412018
40b15f:	85 c0                	test   %eax,%eax
40b161:	75 0f                	jne    0x40b172
40b163:	ff 15 70 20 41 00    	call   *0x412070
40b169:	8b f0                	mov    %eax,%esi
40b16b:	eb 07                	jmp    0x40b174
40b16d:	6a 57                	push   $0x57
40b16f:	5e                   	pop    %esi
40b170:	eb 02                	jmp    0x40b174
40b172:	33 f6                	xor    %esi,%esi
40b174:	6a 00                	push   $0x0
40b176:	6a 01                	push   $0x1
40b178:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b17b:	e8 70 b3 ff ff       	call   0x4064f0
40b180:	8b c6                	mov    %esi,%eax
40b182:	e8 a9 34 00 00       	call   0x40e630
40b187:	c2 18 00             	ret    $0x18
40b18a:	6a 34                	push   $0x34
40b18c:	b8 f5 f1 40 00       	mov    $0x40f1f5,%eax
40b191:	e8 eb 34 00 00       	call   0x40e681
40b196:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b199:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b19c:	8b 75 10             	mov    0x10(%ebp),%esi
40b19f:	8b 55 14             	mov    0x14(%ebp),%edx
40b1a2:	8b 45 18             	mov    0x18(%ebp),%eax
40b1a5:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40b1a9:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40b1ac:	33 db                	xor    %ebx,%ebx
40b1ae:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40b1b5:	66 89 5d d8          	mov    %bx,-0x28(%ebp)
40b1b9:	21 5d fc             	and    %ebx,-0x4(%ebp)
40b1bc:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40b1bf:	53                   	push   %ebx
40b1c0:	50                   	push   %eax
40b1c1:	52                   	push   %edx
40b1c2:	56                   	push   %esi
40b1c3:	57                   	push   %edi
40b1c4:	e8 47 fd ff ff       	call   0x40af10
40b1c9:	8b 5d d0             	mov    -0x30(%ebp),%ebx
40b1cc:	84 c0                	test   %al,%al
40b1ce:	75 19                	jne    0x40b1e9
40b1d0:	33 ff                	xor    %edi,%edi
40b1d2:	8b f7                	mov    %edi,%esi
40b1d4:	57                   	push   %edi
40b1d5:	6a 01                	push   $0x1
40b1d7:	8d 4d d8             	lea    -0x28(%ebp),%ecx
40b1da:	e8 11 b3 ff ff       	call   0x4064f0
40b1df:	8b c6                	mov    %esi,%eax
40b1e1:	e8 4a 34 00 00       	call   0x40e630
40b1e6:	c2 18 00             	ret    $0x18
40b1e9:	83 7d ec 08          	cmpl   $0x8,-0x14(%ebp)
40b1ed:	8b 75 d8             	mov    -0x28(%ebp),%esi
40b1f0:	73 03                	jae    0x40b1f5
40b1f2:	8d 75 d8             	lea    -0x28(%ebp),%esi
40b1f5:	0f b7 06             	movzwl (%esi),%eax
40b1f8:	66 85 c0             	test   %ax,%ax
40b1fb:	74 1b                	je     0x40b218
40b1fd:	8b c8                	mov    %eax,%ecx
40b1ff:	51                   	push   %ecx
40b200:	ff 15 b0 21 41 00    	call   *0x4121b0
40b206:	59                   	pop    %ecx
40b207:	85 c0                	test   %eax,%eax
40b209:	74 0d                	je     0x40b218
40b20b:	83 c6 02             	add    $0x2,%esi
40b20e:	0f b7 06             	movzwl (%esi),%eax
40b211:	8b c8                	mov    %eax,%ecx
40b213:	66 85 c0             	test   %ax,%ax
40b216:	75 e7                	jne    0x40b1ff
40b218:	66 83 3e 2d          	cmpw   $0x2d,(%esi)
40b21c:	75 07                	jne    0x40b225
40b21e:	6a 0d                	push   $0xd
40b220:	5e                   	pop    %esi
40b221:	33 ff                	xor    %edi,%edi
40b223:	eb af                	jmp    0x40b1d4
40b225:	ff 15 ac 21 41 00    	call   *0x4121ac
40b22b:	33 ff                	xor    %edi,%edi
40b22d:	6a 0a                	push   $0xa
40b22f:	89 38                	mov    %edi,(%eax)
40b231:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40b234:	50                   	push   %eax
40b235:	56                   	push   %esi
40b236:	ff 15 a8 21 41 00    	call   *0x4121a8
40b23c:	83 c4 0c             	add    $0xc,%esp
40b23f:	89 45 c0             	mov    %eax,-0x40(%ebp)
40b242:	83 f8 ff             	cmp    $0xffffffff,%eax
40b245:	75 0b                	jne    0x40b252
40b247:	ff 15 ac 21 41 00    	call   *0x4121ac
40b24d:	83 38 22             	cmpl   $0x22,(%eax)
40b250:	74 2f                	je     0x40b281
40b252:	8b 45 d4             	mov    -0x2c(%ebp),%eax
40b255:	0f b7 10             	movzwl (%eax),%edx
40b258:	66 85 d2             	test   %dx,%dx
40b25b:	74 2c                	je     0x40b289
40b25d:	52                   	push   %edx
40b25e:	ff 15 b0 21 41 00    	call   *0x4121b0
40b264:	59                   	pop    %ecx
40b265:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40b268:	85 c0                	test   %eax,%eax
40b26a:	74 10                	je     0x40b27c
40b26c:	83 c1 02             	add    $0x2,%ecx
40b26f:	89 4d d4             	mov    %ecx,-0x2c(%ebp)
40b272:	0f b7 01             	movzwl (%ecx),%eax
40b275:	8b d0                	mov    %eax,%edx
40b277:	66 85 c0             	test   %ax,%ax
40b27a:	75 e1                	jne    0x40b25d
40b27c:	66 39 39             	cmp    %di,(%ecx)
40b27f:	74 08                	je     0x40b289
40b281:	6a 0d                	push   $0xd
40b283:	5e                   	pop    %esi
40b284:	e9 4b ff ff ff       	jmp    0x40b1d4
40b289:	8d 45 c0             	lea    -0x40(%ebp),%eax
40b28c:	c7 45 cc 02 00 00 00 	movl   $0x2,-0x34(%ebp)
40b293:	50                   	push   %eax
40b294:	57                   	push   %edi
40b295:	ff 75 1c             	push   0x1c(%ebp)
40b298:	53                   	push   %ebx
40b299:	ff 15 18 20 41 00    	call   *0x412018
40b29f:	85 c0                	test   %eax,%eax
40b2a1:	0f 85 2b ff ff ff    	jne    0x40b1d2
40b2a7:	ff 15 70 20 41 00    	call   *0x412070
40b2ad:	8b f0                	mov    %eax,%esi
40b2af:	e9 20 ff ff ff       	jmp    0x40b1d4
40b2b4:	6a 30                	push   $0x30
40b2b6:	b8 22 f2 40 00       	mov    $0x40f222,%eax
40b2bb:	e8 c1 33 00 00       	call   0x40e681
40b2c0:	8b 5d 08             	mov    0x8(%ebp),%ebx
40b2c3:	8b 7d 0c             	mov    0xc(%ebp),%edi
40b2c6:	8b 75 10             	mov    0x10(%ebp),%esi
40b2c9:	8b 55 14             	mov    0x14(%ebp),%edx
40b2cc:	8b 45 18             	mov    0x18(%ebp),%eax
40b2cf:	83 65 e8 00          	andl   $0x0,-0x18(%ebp)
40b2d3:	89 5d d4             	mov    %ebx,-0x2c(%ebp)
40b2d6:	33 db                	xor    %ebx,%ebx
40b2d8:	c7 45 ec 07 00 00 00 	movl   $0x7,-0x14(%ebp)
40b2df:	66 89 5d d8          	mov    %bx,-0x28(%ebp)
40b2e3:	21 5d fc             	and    %ebx,-0x4(%ebp)
40b2e6:	8d 5d d8             	lea    -0x28(%ebp),%ebx
40b2e9:	53                   	push   %ebx
40b2ea:	50                   	push   %eax
40b2eb:	52                   	push   %edx
40b2ec:	56                   	push   %esi
40b2ed:	57                   	push   %edi