40e98e:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40e995:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
40e999:	c7 45 f0 04 01 00 00 	movl   $0x104,-0x10(%ebp)
40e9a0:	e8 18 96 00 00       	call   0x417fbd
40e9a5:	83 c4 0c             	add    $0xc,%esp
40e9a8:	80 7d ec 00          	cmpb   $0x0,-0x14(%ebp)
40e9ac:	0f 84 3e f3 00 00    	je     0x41dcf0
40e9b2:	b8 e7 7f 00 00       	mov    $0x7fe7,%eax
40e9b7:	50                   	push   %eax
40e9b8:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
40e9be:	e8 2d fa ff ff       	call   0x40e3f0
40e9c3:	85 c0                	test   %eax,%eax
40e9c5:	0f 88 2f f3 00 00    	js     0x41dcfa
40e9cb:	33 ff                	xor    %edi,%edi
40e9cd:	8d 49 00             	lea    0x0(%ecx),%ecx
40e9d0:	81 ff e6 7f 00 00    	cmp    $0x7fe6,%edi
40e9d6:	73 65                	jae    0x40ea3d
40e9d8:	8b 46 38             	mov    0x38(%esi),%eax
40e9db:	0f b7 34 78          	movzwl (%eax,%edi,2),%esi
40e9df:	83 fe 22             	cmp    $0x22,%esi
40e9e2:	0f 84 cc 01 00 00    	je     0x40ebb4
40e9e8:	66 85 f6             	test   %si,%si
40e9eb:	74 50                	je     0x40ea3d
40e9ed:	80 bd df fd ff ff 00 	cmpb   $0x0,-0x221(%ebp)
40e9f4:	75 13                	jne    0x40ea09
40e9f6:	56                   	push   %esi
40e9f7:	68 5c 23 40 00       	push   $0x40235c
40e9fc:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40ea02:	83 c4 08             	add    $0x8,%esp
40ea05:	85 c0                	test   %eax,%eax
40ea07:	75 34                	jne    0x40ea3d
40ea09:	83 fb ff             	cmp    $0xffffffff,%ebx
40ea0c:	75 17                	jne    0x40ea25
40ea0e:	56                   	push   %esi
40ea0f:	68 74 23 40 00       	push   $0x402374
40ea14:	ff 15 b0 a3 44 00    	call   *0x44a3b0
40ea1a:	83 c4 08             	add    $0x8,%esp
40ea1d:	85 c0                	test   %eax,%eax
40ea1f:	0f 85 b0 01 00 00    	jne    0x40ebd5
40ea25:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ea28:	85 c0                	test   %eax,%eax
40ea2a:	0f 84 d4 f2 00 00    	je     0x41dd04
40ea30:	66 89 34 78          	mov    %si,(%eax,%edi,2)
40ea34:	47                   	inc    %edi
40ea35:	8b b5 d8 fd ff ff    	mov    -0x228(%ebp),%esi
40ea3b:	eb 93                	jmp    0x40e9d0
40ea3d:	89 bd d0 fd ff ff    	mov    %edi,-0x230(%ebp)
40ea43:	85 ff                	test   %edi,%edi
40ea45:	0f 84 c4 f2 00 00    	je     0x41dd0f
40ea4b:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ea4e:	85 c0                	test   %eax,%eax
40ea50:	0f 84 c1 f2 00 00    	je     0x41dd17
40ea56:	33 c9                	xor    %ecx,%ecx
40ea58:	66 89 0c 78          	mov    %cx,(%eax,%edi,2)
40ea5c:	83 fb ff             	cmp    $0xffffffff,%ebx
40ea5f:	0f 85 84 01 00 00    	jne    0x40ebe9
40ea65:	8b 5d e8             	mov    -0x18(%ebp),%ebx
40ea68:	85 db                	test   %ebx,%ebx
40ea6a:	0f 84 b2 f2 00 00    	je     0x41dd22
40ea70:	33 ff                	xor    %edi,%edi
40ea72:	be 88 16 40 00       	mov    $0x401688,%esi
40ea77:	8b 46 f8             	mov    -0x8(%esi),%eax
40ea7a:	85 c0                	test   %eax,%eax
40ea7c:	74 0f                	je     0x40ea8d
40ea7e:	50                   	push   %eax
40ea7f:	53                   	push   %ebx
40ea80:	ff 15 40 a4 44 00    	call   *0x44a440
40ea86:	83 c4 08             	add    $0x8,%esp
40ea89:	85 c0                	test   %eax,%eax
40ea8b:	74 17                	je     0x40eaa4
40ea8d:	83 c6 18             	add    $0x18,%esi
40ea90:	47                   	inc    %edi
40ea91:	81 fe 78 1a 40 00    	cmp    $0x401a78,%esi
40ea97:	7e de                	jle    0x40ea77
40ea99:	8b 8d d4 fd ff ff    	mov    -0x22c(%ebp),%ecx
40ea9f:	83 cf ff             	or     $0xffffffff,%edi
40eaa2:	eb 14                	jmp    0x40eab8
40eaa4:	0f b7 06             	movzwl (%esi),%eax
40eaa7:	a8 04                	test   $0x4,%al
40eaa9:	0f 85 7e f2 00 00    	jne    0x41dd2d
40eaaf:	8b 8d d4 fd ff ff    	mov    -0x22c(%ebp),%ecx
40eab5:	66 89 01             	mov    %ax,(%ecx)
40eab8:	89 3d d8 e0 42 00    	mov    %edi,0x42e0d8
40eabe:	83 ff ff             	cmp    $0xffffffff,%edi
40eac1:	74 68                	je     0x40eb2b
40eac3:	8b 8d d8 fd ff ff    	mov    -0x228(%ebp),%ecx
40eac9:	8b 9d d0 fd ff ff    	mov    -0x230(%ebp),%ebx
40eacf:	83 ff 14             	cmp    $0x14,%edi
40ead2:	74 4e                	je     0x40eb22
40ead4:	8b 49 38             	mov    0x38(%ecx),%ecx
40ead7:	8d 51 02             	lea    0x2(%ecx),%edx
40eada:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
40eae0:	66 8b 01             	mov    (%ecx),%ax
40eae3:	83 c1 02             	add    $0x2,%ecx
40eae6:	66 85 c0             	test   %ax,%ax
40eae9:	75 f5                	jne    0x40eae0
40eaeb:	2b ca                	sub    %edx,%ecx
40eaed:	d1 f9                	sar    $1,%ecx
40eaef:	3b d9                	cmp    %ecx,%ebx
40eaf1:	0f 85 5d f2 00 00    	jne    0x41dd54
40eaf7:	8b 45 e8             	mov    -0x18(%ebp),%eax
40eafa:	c7 45 e8 00 00 00 00 	movl   $0x0,-0x18(%ebp)
40eb01:	85 c0                	test   %eax,%eax
40eb03:	74 0a                	je     0x40eb0f
40eb05:	50                   	push   %eax
40eb06:	ff 15 e0 a3 44 00    	call   *0x44a3e0
40eb0c:	83 c4 04             	add    $0x4,%esp
40eb0f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40eb12:	8b c7                	mov    %edi,%eax
40eb14:	5f                   	pop    %edi
40eb15:	5e                   	pop    %esi
40eb16:	33 cd                	xor    %ebp,%ecx
40eb18:	5b                   	pop    %ebx
40eb19:	e8 12 80 00 00       	call   0x416b30
40eb1e:	8b e5                	mov    %ebp,%esp
40eb20:	5d                   	pop    %ebp
40eb21:	c3                   	ret
40eb22:	c7 41 40 01 00 00 00 	movl   $0x1,0x40(%ecx)
40eb29:	eb a9                	jmp    0x40ead4
40eb2b:	8b 55 e8             	mov    -0x18(%ebp),%edx
40eb2e:	85 d2                	test   %edx,%edx
40eb30:	0f 84 09 f2 00 00    	je     0x41dd3f
40eb36:	51                   	push   %ecx
40eb37:	b9 2d 00 00 00       	mov    $0x2d,%ecx
40eb3c:	e8 4f 02 00 00       	call   0x40ed90
40eb41:	83 f8 2d             	cmp    $0x2d,%eax
40eb44:	0f 84 00 f2 00 00    	je     0x41dd4a
40eb4a:	32 c9                	xor    %cl,%cl
40eb4c:	33 db                	xor    %ebx,%ebx
40eb4e:	88 8d df fd ff ff    	mov    %cl,-0x221(%ebp)
40eb54:	eb 0a                	jmp    0x40eb60
40eb56:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40eb5d:	8d 49 00             	lea    0x0(%ecx),%ecx
40eb60:	8b 85 d8 fd ff ff    	mov    -0x228(%ebp),%eax
40eb66:	8b 40 38             	mov    0x38(%eax),%eax
40eb69:	0f b7 34 58          	movzwl (%eax,%ebx,2),%esi
40eb6d:	66 85 f6             	test   %si,%si
40eb70:	74 37                	je     0x40eba9
40eb72:	83 fe 22             	cmp    $0x22,%esi
40eb75:	74 50                	je     0x40ebc7
40eb77:	84 c9                	test   %cl,%cl
40eb79:	74 03                	je     0x40eb7e
40eb7b:	43                   	inc    %ebx
40eb7c:	eb e2                	jmp    0x40eb60
40eb7e:	56                   	push   %esi
40eb7f:	ff 15 ac a3 44 00    	call   *0x44a3ac
40eb85:	83 c4 04             	add    $0x4,%esp
40eb88:	85 c0                	test   %eax,%eax
40eb8a:	75 1d                	jne    0x40eba9
40eb8c:	8b d6                	mov    %esi,%edx
40eb8e:	b9 d0 22 40 00       	mov    $0x4022d0,%ecx
40eb93:	e8 97 ba ff ff       	call   0x40a62f
40eb98:	85 c0                	test   %eax,%eax
40eb9a:	75 0d                	jne    0x40eba9
40eb9c:	83 fe 2f             	cmp    $0x2f,%esi
40eb9f:	74 08                	je     0x40eba9
40eba1:	8a 8d df fd ff ff    	mov    -0x221(%ebp),%cl
40eba7:	eb d2                	jmp    0x40eb7b
40eba9:	8b 8d d8 fd ff ff    	mov    -0x228(%ebp),%ecx
40ebaf:	e9 20 ff ff ff       	jmp    0x40ead4
40ebb4:	80 bd df fd ff ff 00 	cmpb   $0x0,-0x221(%ebp)
40ebbb:	0f 94 85 df fd ff ff 	sete   -0x221(%ebp)
40ebc2:	e9 42 fe ff ff       	jmp    0x40ea09
40ebc7:	84 c9                	test   %cl,%cl
40ebc9:	0f 94 c1             	sete   %cl
40ebcc:	43                   	inc    %ebx
40ebcd:	88 8d df fd ff ff    	mov    %cl,-0x221(%ebp)
40ebd3:	eb 8b                	jmp    0x40eb60
40ebd5:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40ebdc:	0f 84 5b fe ff ff    	je     0x40ea3d
40ebe2:	8b df                	mov    %edi,%ebx
40ebe4:	e9 3c fe ff ff       	jmp    0x40ea25
40ebe9:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ebec:	85 c0                	test   %eax,%eax
40ebee:	74 2e                	je     0x40ec1e
40ebf0:	50                   	push   %eax
40ebf1:	ff 15 98 a0 44 00    	call   *0x44a098
40ebf7:	83 f8 ff             	cmp    $0xffffffff,%eax
40ebfa:	75 18                	jne    0x40ec14
40ebfc:	8b 45 e8             	mov    -0x18(%ebp),%eax
40ebff:	89 9d d0 fd ff ff    	mov    %ebx,-0x230(%ebp)
40ec05:	85 c0                	test   %eax,%eax
40ec07:	74 1d                	je     0x40ec26
40ec09:	33 c9                	xor    %ecx,%ecx
40ec0b:	66 89 0c 58          	mov    %cx,(%eax,%ebx,2)
40ec0f:	e9 51 fe ff ff       	jmp    0x40ea65
40ec14:	a8 10                	test   $0x10,%al
40ec16:	0f 84 49 fe ff ff    	je     0x40ea65
40ec1c:	eb de                	jmp    0x40ebfc
40ec1e:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
40ec24:	eb ca                	jmp    0x40ebf0
40ec26:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
40ec2c:	eb db                	jmp    0x40ec09
40ec2e:	8b ff                	mov    %edi,%edi
40ec30:	55                   	push   %ebp
40ec31:	8b ec                	mov    %esp,%ebp
40ec33:	83 e4 f8             	and    $0xfffffff8,%esp
40ec36:	51                   	push   %ecx
40ec37:	53                   	push   %ebx
40ec38:	56                   	push   %esi
40ec39:	57                   	push   %edi
40ec3a:	bb 00 20 00 00       	mov    $0x2000,%ebx
40ec3f:	bf 90 e5 42 00       	mov    $0x42e590,%edi
40ec44:	53                   	push   %ebx
40ec45:	8b f1                	mov    %ecx,%esi
40ec47:	33 c0                	xor    %eax,%eax
40ec49:	57                   	push   %edi
40ec4a:	56                   	push   %esi
40ec4b:	66 a3 90 e5 42 00    	mov    %ax,0x42e590
40ec51:	ff 15 d0 a1 44 00    	call   *0x44a1d0
40ec57:	85 c0                	test   %eax,%eax
40ec59:	74 09                	je     0x40ec64
40ec5b:	8b c7                	mov    %edi,%eax
40ec5d:	5f                   	pop    %edi
40ec5e:	5e                   	pop    %esi
40ec5f:	5b                   	pop    %ebx
40ec60:	8b e5                	mov    %ebp,%esp
40ec62:	5d                   	pop    %ebp
40ec63:	c3                   	ret
40ec64:	80 3d 55 67 43 00 00 	cmpb   $0x0,0x436755
40ec6b:	0f 84 ac 00 00 00    	je     0x40ed1d
40ec71:	68 94 23 40 00       	push   $0x402394
40ec76:	56                   	push   %esi
40ec77:	ff 15 40 a4 44 00    	call   *0x44a440
40ec7d:	59                   	pop    %ecx
40ec7e:	59                   	pop    %ecx
40ec7f:	85 c0                	test   %eax,%eax
40ec81:	0f 84 da 00 00 00    	je     0x40ed61
40ec87:	68 9c 23 40 00       	push   $0x40239c
40ec8c:	56                   	push   %esi
40ec8d:	ff 15 40 a4 44 00    	call   *0x44a440
40ec93:	59                   	pop    %ecx
40ec94:	59                   	pop    %ecx
40ec95:	85 c0                	test   %eax,%eax
40ec97:	0f 84 aa 00 00 00    	je     0x40ed47
40ec9d:	68 d8 23 40 00       	push   $0x4023d8
40eca2:	56                   	push   %esi
40eca3:	ff 15 40 a4 44 00    	call   *0x44a440
40eca9:	59                   	pop    %ecx
40ecaa:	59                   	pop    %ecx
40ecab:	85 c0                	test   %eax,%eax
40ecad:	0f 84 cc 00 00 00    	je     0x40ed7f
40ecb3:	68 c0 23 40 00       	push   $0x4023c0
40ecb8:	56                   	push   %esi
40ecb9:	ff 15 40 a4 44 00    	call   *0x44a440
40ecbf:	59                   	pop    %ecx
40ecc0:	59                   	pop    %ecx
40ecc1:	85 c0                	test   %eax,%eax
40ecc3:	0f 84 26 f1 00 00    	je     0x41ddef
40ecc9:	68 b4 23 40 00       	push   $0x4023b4
40ecce:	56                   	push   %esi
40eccf:	ff 15 40 a4 44 00    	call   *0x44a440
40ecd5:	59                   	pop    %ecx
40ecd6:	59                   	pop    %ecx
40ecd7:	85 c0                	test   %eax,%eax
40ecd9:	0f 84 92 00 00 00    	je     0x40ed71
40ecdf:	68 f4 23 40 00       	push   $0x4023f4
40ece4:	56                   	push   %esi
40ece5:	ff 15 40 a4 44 00    	call   *0x44a440
40eceb:	59                   	pop    %ecx
40ecec:	59                   	pop    %ecx
40eced:	85 c0                	test   %eax,%eax
40ecef:	74 33                	je     0x40ed24
40ecf1:	68 ac 24 40 00       	push   $0x4024ac
40ecf6:	56                   	push   %esi
40ecf7:	ff 15 40 a4 44 00    	call   *0x44a440
40ecfd:	59                   	pop    %ecx
40ecfe:	59                   	pop    %ecx
40ecff:	85 c0                	test   %eax,%eax
40ed01:	0f 84 f3 f0 00 00    	je     0x41ddfa
40ed07:	68 80 24 40 00       	push   $0x402480
40ed0c:	56                   	push   %esi
40ed0d:	ff 15 40 a4 44 00    	call   *0x44a440
40ed13:	59                   	pop    %ecx
40ed14:	59                   	pop    %ecx
40ed15:	85 c0                	test   %eax,%eax
40ed17:	0f 84 e9 f0 00 00    	je     0x41de06
40ed1d:	33 c0                	xor    %eax,%eax
40ed1f:	e9 39 ff ff ff       	jmp    0x40ec5d
40ed24:	53                   	push   %ebx
40ed25:	33 d2                	xor    %edx,%edx
40ed27:	33 c9                	xor    %ecx,%ecx
40ed29:	57                   	push   %edi
40ed2a:	42                   	inc    %edx
40ed2b:	e8 e0 a5 ff ff       	call   0x409310
40ed30:	03 c0                	add    %eax,%eax
40ed32:	3d 00 40 00 00       	cmp    $0x4000,%eax
40ed37:	73 4a                	jae    0x40ed83
40ed39:	33 c9                	xor    %ecx,%ecx
40ed3b:	66 89 88 90 e5 42 00 	mov    %cx,0x42e590(%eax)
40ed42:	e9 14 ff ff ff       	jmp    0x40ec5b
40ed47:	ff 35 dc 65 43 00    	push   0x4365dc
40ed4d:	68 50 20 40 00       	push   $0x402050
40ed52:	53                   	push   %ebx
40ed53:	57                   	push   %edi
40ed54:	e8 66 ad ff ff       	call   0x409abf
40ed59:	83 c4 10             	add    $0x10,%esp
40ed5c:	e9 fa fe ff ff       	jmp    0x40ec5b
40ed61:	6a 00                	push   $0x0
40ed63:	8b d3                	mov    %ebx,%edx
40ed65:	8b cf                	mov    %edi,%ecx
40ed67:	e8 32 a1 ff ff       	call   0x408e9e
40ed6c:	e9 ea fe ff ff       	jmp    0x40ec5b
40ed71:	53                   	push   %ebx
40ed72:	33 d2                	xor    %edx,%edx
40ed74:	33 c9                	xor    %ecx,%ecx
40ed76:	57                   	push   %edi
40ed77:	42                   	inc    %edx
40ed78:	e8 d7 7a ff ff       	call   0x406854
40ed7d:	eb b1                	jmp    0x40ed30
40ed7f:	6a 02                	push   $0x2
40ed81:	eb ca                	jmp    0x40ed4d
40ed83:	e8 f0 7e 00 00       	call   0x416c78
40ed88:	cc                   	int3
40ed89:	cc                   	int3
40ed8a:	cc                   	int3
40ed8b:	cc                   	int3
40ed8c:	cc                   	int3
40ed8d:	cc                   	int3
40ed8e:	cc                   	int3
40ed8f:	cc                   	int3
40ed90:	8b ff                	mov    %edi,%edi
40ed92:	55                   	push   %ebp
40ed93:	8b ec                	mov    %esp,%ebp
40ed95:	51                   	push   %ecx
40ed96:	53                   	push   %ebx
40ed97:	56                   	push   %esi
40ed98:	8b d9                	mov    %ecx,%ebx
40ed9a:	89 55 fc             	mov    %edx,-0x4(%ebp)
40ed9d:	33 f6                	xor    %esi,%esi
40ed9f:	57                   	push   %edi
40eda0:	85 db                	test   %ebx,%ebx
40eda2:	78 2d                	js     0x40edd1
40eda4:	bf 88 16 40 00       	mov    $0x401688,%edi
40eda9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
40edb0:	8b 47 f8             	mov    -0x8(%edi),%eax
40edb3:	85 c0                	test   %eax,%eax
40edb5:	74 12                	je     0x40edc9
40edb7:	50                   	push   %eax
40edb8:	52                   	push   %edx
40edb9:	ff 15 40 a4 44 00    	call   *0x44a440
40edbf:	83 c4 08             	add    $0x8,%esp
40edc2:	85 c0                	test   %eax,%eax
40edc4:	74 1a                	je     0x40ede0
40edc6:	8b 55 fc             	mov    -0x4(%ebp),%edx
40edc9:	46                   	inc    %esi
40edca:	83 c7 18             	add    $0x18,%edi
40edcd:	3b f3                	cmp    %ebx,%esi
40edcf:	7e df                	jle    0x40edb0
40edd1:	c7 05 d8 e0 42 00 ff 	movl   $0xffffffff,0x42e0d8