40fb01:	85 f6                	test   %esi,%esi
40fb03:	7e 09                	jle    0x40fb0e
40fb05:	0f b7 f6             	movzwl %si,%esi
40fb08:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40fb0e:	56                   	push   %esi
40fb0f:	68 e8 40 40 00       	push   $0x4040e8
40fb14:	6a 70                	push   $0x70
40fb16:	68 20 41 40 00       	push   $0x404120
40fb1b:	51                   	push   %ecx
40fb1c:	e8 b1 14 00 00       	call   0x410fd2
40fb21:	5f                   	pop    %edi
40fb22:	8b c6                	mov    %esi,%eax
40fb24:	5e                   	pop    %esi
40fb25:	5b                   	pop    %ebx
40fb26:	5d                   	pop    %ebp
40fb27:	c2 04 00             	ret    $0x4
40fb2a:	68 18 02 00 00       	push   $0x218
40fb2f:	b8 0d 31 41 00       	mov    $0x41310d,%eax
40fb34:	e8 58 2a 00 00       	call   0x412591
40fb39:	8b f9                	mov    %ecx,%edi
40fb3b:	8b 5d 08             	mov    0x8(%ebp),%ebx
40fb3e:	33 c0                	xor    %eax,%eax
40fb40:	89 85 e0 fd ff ff    	mov    %eax,-0x220(%ebp)
40fb46:	89 45 fc             	mov    %eax,-0x4(%ebp)
40fb49:	89 85 e4 fd ff ff    	mov    %eax,-0x21c(%ebp)
40fb4f:	68 08 02 00 00       	push   $0x208
40fb54:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
40fb58:	50                   	push   %eax
40fb59:	89 85 dc fd ff ff    	mov    %eax,-0x224(%ebp)
40fb5f:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fb65:	50                   	push   %eax
40fb66:	e8 86 2f 00 00       	call   0x412af1
40fb6b:	83 c4 0c             	add    $0xc,%esp
40fb6e:	8b cf                	mov    %edi,%ecx
40fb70:	6a 01                	push   $0x1
40fb72:	e8 e1 fe ff ff       	call   0x40fa58
40fb77:	8b f0                	mov    %eax,%esi
40fb79:	85 f6                	test   %esi,%esi
40fb7b:	79 10                	jns    0x40fb8d
40fb7d:	56                   	push   %esi
40fb7e:	68 80 41 40 00       	push   $0x404180
40fb83:	68 9e 00 00 00       	push   $0x9e
40fb88:	e9 6e 01 00 00       	jmp    0x40fcfb
40fb8d:	8d 85 dc fd ff ff    	lea    -0x224(%ebp),%eax
40fb93:	50                   	push   %eax
40fb94:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
40fb9a:	50                   	push   %eax
40fb9b:	6a 06                	push   $0x6
40fb9d:	33 c0                	xor    %eax,%eax
40fb9f:	50                   	push   %eax
40fba0:	ff 77 28             	push   0x28(%edi)
40fba3:	e8 88 01 00 00       	call   0x40fd30
40fba8:	8b f0                	mov    %eax,%esi
40fbaa:	85 f6                	test   %esi,%esi
40fbac:	79 10                	jns    0x40fbbe
40fbae:	56                   	push   %esi
40fbaf:	68 80 41 40 00       	push   $0x404180
40fbb4:	68 ab 00 00 00       	push   $0xab
40fbb9:	e9 3d 01 00 00       	jmp    0x40fcfb
40fbbe:	8b cb                	mov    %ebx,%ecx
40fbc0:	33 f6                	xor    %esi,%esi
40fbc2:	8d 51 02             	lea    0x2(%ecx),%edx
40fbc5:	66 8b 01             	mov    (%ecx),%ax
40fbc8:	83 c1 02             	add    $0x2,%ecx
40fbcb:	66 3b c6             	cmp    %si,%ax
40fbce:	75 f5                	jne    0x40fbc5
40fbd0:	2b ca                	sub    %edx,%ecx
40fbd2:	d1 f9                	sar    $1,%ecx
40fbd4:	8d 41 03             	lea    0x3(%ecx),%eax
40fbd7:	50                   	push   %eax
40fbd8:	68 d8 41 40 00       	push   $0x4041d8
40fbdd:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fbe3:	68 04 01 00 00       	push   $0x104
40fbe8:	50                   	push   %eax
40fbe9:	e8 e4 b4 ff ff       	call   0x40b0d2
40fbee:	8b f0                	mov    %eax,%esi
40fbf0:	83 c4 10             	add    $0x10,%esp
40fbf3:	85 f6                	test   %esi,%esi
40fbf5:	79 10                	jns    0x40fc07
40fbf7:	56                   	push   %esi
40fbf8:	68 80 41 40 00       	push   $0x404180
40fbfd:	68 bb 00 00 00       	push   $0xbb
40fc02:	e9 f4 00 00 00       	jmp    0x40fcfb
40fc07:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fc0d:	50                   	push   %eax
40fc0e:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
40fc14:	e8 87 9c ff ff       	call   0x4098a0
40fc19:	53                   	push   %ebx
40fc1a:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
40fc20:	e8 5c f0 ff ff       	call   0x40ec81
40fc25:	8b 85 dc fd ff ff    	mov    -0x224(%ebp),%eax
40fc2b:	85 c0                	test   %eax,%eax
40fc2d:	0f 84 88 00 00 00    	je     0x40fcbb
40fc33:	83 c0 03             	add    $0x3,%eax
40fc36:	50                   	push   %eax
40fc37:	68 e8 41 40 00       	push   $0x4041e8
40fc3c:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fc42:	68 04 01 00 00       	push   $0x104
40fc47:	50                   	push   %eax
40fc48:	e8 85 b4 ff ff       	call   0x40b0d2
40fc4d:	8b f0                	mov    %eax,%esi
40fc4f:	83 c4 10             	add    $0x10,%esp
40fc52:	85 f6                	test   %esi,%esi
40fc54:	79 10                	jns    0x40fc66
40fc56:	56                   	push   %esi
40fc57:	68 80 41 40 00       	push   $0x404180
40fc5c:	68 c9 00 00 00       	push   $0xc9
40fc61:	e9 95 00 00 00       	jmp    0x40fcfb
40fc66:	8d 8d e8 fd ff ff    	lea    -0x218(%ebp),%ecx
40fc6c:	33 db                	xor    %ebx,%ebx
40fc6e:	8d 51 02             	lea    0x2(%ecx),%edx
40fc71:	66 8b 01             	mov    (%ecx),%ax
40fc74:	83 c1 02             	add    $0x2,%ecx
40fc77:	66 3b c3             	cmp    %bx,%ax
40fc7a:	75 f5                	jne    0x40fc71
40fc7c:	2b ca                	sub    %edx,%ecx
40fc7e:	8d 85 e8 fd ff ff    	lea    -0x218(%ebp),%eax
40fc84:	d1 f9                	sar    $1,%ecx
40fc86:	51                   	push   %ecx
40fc87:	50                   	push   %eax
40fc88:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
40fc8e:	e8 84 0f 00 00       	call   0x410c17
40fc93:	8b f0                	mov    %eax,%esi
40fc95:	85 f6                	test   %esi,%esi
40fc97:	79 0d                	jns    0x40fca6
40fc99:	56                   	push   %esi
40fc9a:	68 80 41 40 00       	push   $0x404180
40fc9f:	68 cd 00 00 00       	push   $0xcd
40fca4:	eb 55                	jmp    0x40fcfb
40fca6:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
40fcac:	8d 8d e4 fd ff ff    	lea    -0x21c(%ebp),%ecx
40fcb2:	e8 ca ef ff ff       	call   0x40ec81
40fcb7:	85 c0                	test   %eax,%eax
40fcb9:	78 6d                	js     0x40fd28
40fcbb:	8b 4f 04             	mov    0x4(%edi),%ecx
40fcbe:	85 c9                	test   %ecx,%ecx
40fcc0:	74 29                	je     0x40fceb
40fcc2:	8b 01                	mov    (%ecx),%eax
40fcc4:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
40fcca:	51                   	push   %ecx
40fccb:	8b 70 1c             	mov    0x1c(%eax),%esi
40fcce:	8b ce                	mov    %esi,%ecx
40fcd0:	ff 15 28 63 41 00    	call   *0x416328
40fcd6:	ff d6                	call   *%esi
40fcd8:	8b f0                	mov    %eax,%esi
40fcda:	85 f6                	test   %esi,%esi
40fcdc:	79 28                	jns    0x40fd06
40fcde:	56                   	push   %esi
40fcdf:	68 80 41 40 00       	push   $0x404180
40fce4:	68 d9 00 00 00       	push   $0xd9
40fce9:	eb 10                	jmp    0x40fcfb
40fceb:	be 03 40 00 80       	mov    $0x80004003,%esi
40fcf0:	56                   	push   %esi
40fcf1:	68 80 41 40 00       	push   $0x404180
40fcf6:	68 de 00 00 00       	push   $0xde
40fcfb:	68 20 41 40 00       	push   $0x404120
40fd00:	51                   	push   %ecx
40fd01:	e8 cc 12 00 00       	call   0x410fd2
40fd06:	ff b5 e4 fd ff ff    	push   -0x21c(%ebp)
40fd0c:	ff 15 b8 61 41 00    	call   *0x4161b8
40fd12:	ff b5 e0 fd ff ff    	push   -0x220(%ebp)
40fd18:	ff 15 b8 61 41 00    	call   *0x4161b8
40fd1e:	8b c6                	mov    %esi,%eax
40fd20:	e8 1b 28 00 00       	call   0x412540
40fd25:	c2 04 00             	ret    $0x4
40fd28:	8b c8                	mov    %eax,%ecx
40fd2a:	e8 c0 4e ff ff       	call   0x404bef
40fd2f:	cc                   	int3
40fd30:	8b ff                	mov    %edi,%edi
40fd32:	55                   	push   %ebp
40fd33:	8b ec                	mov    %esp,%ebp
40fd35:	51                   	push   %ecx
40fd36:	56                   	push   %esi
40fd37:	33 f6                	xor    %esi,%esi
40fd39:	57                   	push   %edi
40fd3a:	89 75 fc             	mov    %esi,-0x4(%ebp)
40fd3d:	39 75 14             	cmp    %esi,0x14(%ebp)
40fd40:	75 20                	jne    0x40fd62
40fd42:	be 57 00 07 80       	mov    $0x80070057,%esi
40fd47:	56                   	push   %esi
40fd48:	68 f8 41 40 00       	push   $0x4041f8
40fd4d:	68 0d 01 00 00       	push   $0x10d
40fd52:	68 20 41 40 00       	push   $0x404120
40fd57:	51                   	push   %ecx
40fd58:	e8 75 12 00 00       	call   0x410fd2
40fd5d:	e9 cb 00 00 00       	jmp    0x40fe2d
40fd62:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fd65:	50                   	push   %eax
40fd66:	56                   	push   %esi
40fd67:	56                   	push   %esi
40fd68:	ff 75 10             	push   0x10(%ebp)
40fd6b:	ff 75 0c             	push   0xc(%ebp)
40fd6e:	ff 75 08             	push   0x8(%ebp)
40fd71:	ff 15 88 60 41 00    	call   *0x416088
40fd77:	85 c0                	test   %eax,%eax
40fd79:	75 22                	jne    0x40fd9d
40fd7b:	ff 15 68 61 41 00    	call   *0x416168
40fd81:	8b f0                	mov    %eax,%esi
40fd83:	85 f6                	test   %esi,%esi
40fd85:	7e 09                	jle    0x40fd90
40fd87:	0f b7 f6             	movzwl %si,%esi
40fd8a:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40fd90:	56                   	push   %esi
40fd91:	68 f8 41 40 00       	push   $0x4041f8
40fd96:	68 20 01 00 00       	push   $0x120
40fd9b:	eb b5                	jmp    0x40fd52
40fd9d:	ff 75 fc             	push   -0x4(%ebp)
40fda0:	ff 15 b8 62 41 00    	call   *0x4162b8
40fda6:	8b f8                	mov    %eax,%edi
40fda8:	59                   	pop    %ecx
40fda9:	85 ff                	test   %edi,%edi
40fdab:	75 12                	jne    0x40fdbf
40fdad:	be 0e 00 07 80       	mov    $0x8007000e,%esi
40fdb2:	56                   	push   %esi
40fdb3:	68 f8 41 40 00       	push   $0x4041f8
40fdb8:	68 27 01 00 00       	push   $0x127
40fdbd:	eb 93                	jmp    0x40fd52
40fdbf:	8d 45 fc             	lea    -0x4(%ebp),%eax
40fdc2:	50                   	push   %eax
40fdc3:	57                   	push   %edi
40fdc4:	56                   	push   %esi
40fdc5:	ff 75 10             	push   0x10(%ebp)
40fdc8:	ff 75 0c             	push   0xc(%ebp)
40fdcb:	ff 75 08             	push   0x8(%ebp)
40fdce:	ff 15 88 60 41 00    	call   *0x416088
40fdd4:	85 c0                	test   %eax,%eax
40fdd6:	75 22                	jne    0x40fdfa
40fdd8:	ff 15 68 61 41 00    	call   *0x416168
40fdde:	8b f0                	mov    %eax,%esi
40fde0:	85 f6                	test   %esi,%esi
40fde2:	7e 09                	jle    0x40fded
40fde4:	0f b7 f6             	movzwl %si,%esi
40fde7:	81 ce 00 00 07 80    	or     $0x80070000,%esi
40fded:	56                   	push   %esi
40fdee:	68 f8 41 40 00       	push   $0x4041f8
40fdf3:	68 36 01 00 00       	push   $0x136
40fdf8:	eb 20                	jmp    0x40fe1a
40fdfa:	ff 75 18             	push   0x18(%ebp)
40fdfd:	ff 75 14             	push   0x14(%ebp)
40fe00:	ff 75 fc             	push   -0x4(%ebp)
40fe03:	57                   	push   %edi
40fe04:	e8 2c 00 00 00       	call   0x40fe35
40fe09:	8b f0                	mov    %eax,%esi
40fe0b:	85 f6                	test   %esi,%esi
40fe0d:	79 16                	jns    0x40fe25
40fe0f:	56                   	push   %esi
40fe10:	68 f8 41 40 00       	push   $0x4041f8
40fe15:	68 3f 01 00 00       	push   $0x13f
40fe1a:	68 20 41 40 00       	push   $0x404120
40fe1f:	51                   	push   %ecx
40fe20:	e8 ad 11 00 00       	call   0x410fd2
40fe25:	57                   	push   %edi
40fe26:	ff 15 bc 62 41 00    	call   *0x4162bc
40fe2c:	59                   	pop    %ecx
40fe2d:	5f                   	pop    %edi
40fe2e:	8b c6                	mov    %esi,%eax
40fe30:	5e                   	pop    %esi
40fe31:	c9                   	leave
40fe32:	c2 14 00             	ret    $0x14
40fe35:	8b ff                	mov    %edi,%edi
40fe37:	55                   	push   %ebp
40fe38:	8b ec                	mov    %esp,%ebp
40fe3a:	51                   	push   %ecx
40fe3b:	53                   	push   %ebx
40fe3c:	56                   	push   %esi
40fe3d:	33 f6                	xor    %esi,%esi
40fe3f:	57                   	push   %edi
40fe40:	89 75 fc             	mov    %esi,-0x4(%ebp)
40fe43:	39 75 10             	cmp    %esi,0x10(%ebp)
40fe46:	75 20                	jne    0x40fe68
40fe48:	bf 57 00 07 80       	mov    $0x80070057,%edi
40fe4d:	57                   	push   %edi
40fe4e:	68 48 42 40 00       	push   $0x404248
40fe53:	68 6b 01 00 00       	push   $0x16b
40fe58:	68 20 41 40 00       	push   $0x404120
40fe5d:	51                   	push   %ecx
40fe5e:	e8 6f 11 00 00       	call   0x410fd2
40fe63:	e9 e0 00 00 00       	jmp    0x40ff48
40fe68:	8b 7d 14             	mov    0x14(%ebp),%edi
40fe6b:	57                   	push   %edi
40fe6c:	56                   	push   %esi
40fe6d:	6a 01                	push   $0x1
40fe6f:	ff 75 0c             	push   0xc(%ebp)
40fe72:	ff 75 08             	push   0x8(%ebp)
40fe75:	ff 15 ac 60 41 00    	call   *0x4160ac
40fe7b:	85 c0                	test   %eax,%eax
40fe7d:	75 22                	jne    0x40fea1
40fe7f:	ff 15 68 61 41 00    	call   *0x416168
40fe85:	8b f8                	mov    %eax,%edi
40fe87:	85 ff                	test   %edi,%edi
40fe89:	7e 09                	jle    0x40fe94
40fe8b:	0f b7 ff             	movzwl %di,%edi
40fe8e:	81 cf 00 00 07 80    	or     $0x80070000,%edi
40fe94:	57                   	push   %edi
40fe95:	68 48 42 40 00       	push   $0x404248
40fe9a:	68 79 01 00 00       	push   $0x179
40fe9f:	eb b7                	jmp    0x40fe58
40fea1:	8b 07                	mov    (%edi),%eax
40fea3:	03 c0                	add    %eax,%eax
40fea5:	50                   	push   %eax
40fea6:	ff 15 b8 62 41 00    	call   *0x4162b8
40feac:	8b d8                	mov    %eax,%ebx
40feae:	59                   	pop    %ecx
40feaf:	85 db                	test   %ebx,%ebx
40feb1:	75 12                	jne    0x40fec5
40feb3:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
40feb8:	57                   	push   %edi
40feb9:	68 48 42 40 00       	push   $0x404248
40febe:	68 7f 01 00 00       	push   $0x17f
40fec3:	eb 93                	jmp    0x40fe58
40fec5:	57                   	push   %edi
40fec6:	53                   	push   %ebx
40fec7:	6a 01                	push   $0x1
40fec9:	ff 75 0c             	push   0xc(%ebp)
40fecc:	ff 75 08             	push   0x8(%ebp)
40fecf:	ff 15 ac 60 41 00    	call   *0x4160ac
40fed5:	85 c0                	test   %eax,%eax
40fed7:	75 2d                	jne    0x40ff06
40fed9:	ff 15 68 61 41 00    	call   *0x416168
40fedf:	8b f8                	mov    %eax,%edi
40fee1:	85 ff                	test   %edi,%edi
40fee3:	7e 09                	jle    0x40feee
40fee5:	0f b7 ff             	movzwl %di,%edi
40fee8:	81 cf 00 00 07 80    	or     $0x80070000,%edi
40feee:	57                   	push   %edi
40feef:	68 48 42 40 00       	push   $0x404248
40fef4:	68 8d 01 00 00       	push   $0x18d
40fef9:	68 20 41 40 00       	push   $0x404120
40fefe:	51                   	push   %ecx
40feff:	e8 ce 10 00 00       	call   0x410fd2
40ff04:	eb 3a                	jmp    0x40ff40
40ff06:	8b cb                	mov    %ebx,%ecx
40ff08:	e8 a8 4c ff ff       	call   0x404bb5
40ff0d:	50                   	push   %eax
40ff0e:	53                   	push   %ebx
40ff0f:	8d 4d fc             	lea    -0x4(%ebp),%ecx
40ff12:	e8 00 0d 00 00       	call   0x410c17
40ff17:	8b f8                	mov    %eax,%edi
40ff19:	85 ff                	test   %edi,%edi
40ff1b:	79 1b                	jns    0x40ff38
40ff1d:	57                   	push   %edi
40ff1e:	68 48 42 40 00       	push   $0x404248
40ff23:	68 92 01 00 00       	push   $0x192
40ff28:	68 20 41 40 00       	push   $0x404120
40ff2d:	51                   	push   %ecx
40ff2e:	e8 9f 10 00 00       	call   0x410fd2
40ff33:	8b 75 fc             	mov    -0x4(%ebp),%esi
40ff36:	eb 08                	jmp    0x40ff40
40ff38:	8b 4d 10             	mov    0x10(%ebp),%ecx
40ff3b:	8b 45 fc             	mov    -0x4(%ebp),%eax