407d7e:	89 95 dc fd ff ff    	mov    %edx,-0x224(%ebp)
407d84:	33 c9                	xor    %ecx,%ecx
407d86:	83 7d 0c 03          	cmpl   $0x3,0xc(%ebp)
407d8a:	57                   	push   %edi
407d8b:	8b 7d 08             	mov    0x8(%ebp),%edi
407d8e:	8b d9                	mov    %ecx,%ebx
407d90:	89 bd d4 fd ff ff    	mov    %edi,-0x22c(%ebp)
407d96:	89 8d d8 fd ff ff    	mov    %ecx,-0x228(%ebp)
407d9c:	0f 8c ed 00 00 00    	jl     0x407e8f
407da2:	85 f6                	test   %esi,%esi
407da4:	0f 84 e5 00 00 00    	je     0x407e8f
407daa:	b8 04 01 00 00       	mov    $0x104,%eax
407daf:	89 4d e8             	mov    %ecx,-0x18(%ebp)
407db2:	50                   	push   %eax
407db3:	89 45 f0             	mov    %eax,-0x10(%ebp)
407db6:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
407dbc:	51                   	push   %ecx
407dbd:	50                   	push   %eax
407dbe:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
407dc2:	e8 f6 01 01 00       	call   0x417fbd
407dc7:	33 c0                	xor    %eax,%eax
407dc9:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
407dcf:	83 c4 0c             	add    $0xc,%esp
407dd2:	38 45 ec             	cmp    %al,-0x14(%ebp)
407dd5:	0f 94 c0             	sete   %al
407dd8:	48                   	dec    %eax
407dd9:	25 e3 7e 00 00       	and    $0x7ee3,%eax
407dde:	05 04 01 00 00       	add    $0x104,%eax
407de3:	50                   	push   %eax
407de4:	e8 07 66 00 00       	call   0x40e3f0
407de9:	85 c0                	test   %eax,%eax
407deb:	0f 88 1a 31 01 00    	js     0x41af0b
407df1:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407df4:	85 c9                	test   %ecx,%ecx
407df6:	0f 84 7f 30 01 00    	je     0x41ae7b
407dfc:	8b 55 f0             	mov    -0x10(%ebp),%edx
407dff:	33 c0                	xor    %eax,%eax
407e01:	50                   	push   %eax
407e02:	e8 97 10 00 00       	call   0x408e9e
407e07:	8b 45 e8             	mov    -0x18(%ebp),%eax
407e0a:	85 c0                	test   %eax,%eax
407e0c:	0f 84 74 30 01 00    	je     0x41ae86
407e12:	66 8b 00             	mov    (%eax),%ax
407e15:	6a 5c                	push   $0x5c
407e17:	5a                   	pop    %edx
407e18:	6a 3a                	push   $0x3a
407e1a:	59                   	pop    %ecx
407e1b:	66 89 07             	mov    %ax,(%edi)
407e1e:	66 39 4e 02          	cmp    %cx,0x2(%esi)
407e22:	75 12                	jne    0x407e36
407e24:	8d 46 04             	lea    0x4(%esi),%eax
407e27:	66 39 10             	cmp    %dx,(%eax)
407e2a:	75 0a                	jne    0x407e36
407e2c:	66 39 56 06          	cmp    %dx,0x6(%esi)
407e30:	0f 84 5b 30 01 00    	je     0x41ae91
407e36:	0f b7 06             	movzwl (%esi),%eax
407e39:	66 3b c2             	cmp    %dx,%ax
407e3c:	0f 84 68 30 01 00    	je     0x41aeaa
407e42:	66 85 c0             	test   %ax,%ax
407e45:	74 11                	je     0x407e58
407e47:	66 39 4e 02          	cmp    %cx,0x2(%esi)
407e4b:	75 0b                	jne    0x407e58
407e4d:	50                   	push   %eax
407e4e:	ff 15 18 a4 44 00    	call   *0x44a418
407e54:	59                   	pop    %ecx
407e55:	66 89 07             	mov    %ax,(%edi)
407e58:	6a 3a                	push   $0x3a
407e5a:	58                   	pop    %eax
407e5b:	66 89 47 02          	mov    %ax,0x2(%edi)
407e5f:	33 c0                	xor    %eax,%eax
407e61:	66 89 47 04          	mov    %ax,0x4(%edi)
407e65:	33 db                	xor    %ebx,%ebx
407e67:	43                   	inc    %ebx
407e68:	8b 4d e8             	mov    -0x18(%ebp),%ecx
407e6b:	33 c0                	xor    %eax,%eax
407e6d:	89 45 e8             	mov    %eax,-0x18(%ebp)
407e70:	85 c9                	test   %ecx,%ecx
407e72:	74 08                	je     0x407e7c
407e74:	51                   	push   %ecx
407e75:	ff 15 e0 a3 44 00    	call   *0x44a3e0
407e7b:	59                   	pop    %ecx
407e7c:	8a c3                	mov    %bl,%al
407e7e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407e81:	5f                   	pop    %edi
407e82:	5e                   	pop    %esi
407e83:	33 cd                	xor    %ebp,%ecx
407e85:	5b                   	pop    %ebx
407e86:	e8 a5 ec 00 00       	call   0x416b30
407e8b:	c9                   	leave
407e8c:	c2 08 00             	ret    $0x8
407e8f:	32 c0                	xor    %al,%al
407e91:	eb eb                	jmp    0x407e7e
407e93:	8b ff                	mov    %edi,%edi
407e95:	55                   	push   %ebp
407e96:	8b ec                	mov    %esp,%ebp
407e98:	83 ec 74             	sub    $0x74,%esp
407e9b:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
407ea0:	33 c5                	xor    %ebp,%eax
407ea2:	89 45 fc             	mov    %eax,-0x4(%ebp)
407ea5:	53                   	push   %ebx
407ea6:	8b 5d 0c             	mov    0xc(%ebp),%ebx
407ea9:	56                   	push   %esi
407eaa:	57                   	push   %edi
407eab:	8b f9                	mov    %ecx,%edi
407ead:	89 5d 98             	mov    %ebx,-0x68(%ebp)
407eb0:	33 f6                	xor    %esi,%esi
407eb2:	89 7d 94             	mov    %edi,-0x6c(%ebp)
407eb5:	81 ff 3d 01 00 00    	cmp    $0x13d,%edi
407ebb:	0f 84 01 31 01 00    	je     0x41afc2
407ec1:	56                   	push   %esi
407ec2:	68 00 20 00 00       	push   $0x2000
407ec7:	68 f0 0a 44 00       	push   $0x440af0
407ecc:	56                   	push   %esi
407ecd:	57                   	push   %edi
407ece:	56                   	push   %esi
407ecf:	68 00 1a 00 00       	push   $0x1a00
407ed4:	ff 15 88 a1 44 00    	call   *0x44a188
407eda:	85 c0                	test   %eax,%eax
407edc:	0f 84 e0 30 01 00    	je     0x41afc2
407ee2:	6a 25                	push   $0x25
407ee4:	b9 f0 0a 44 00       	mov    $0x440af0,%ecx
407ee9:	5b                   	pop    %ebx
407eea:	8b d3                	mov    %ebx,%edx
407eec:	e8 3e 27 00 00       	call   0x40a62f
407ef1:	8b c8                	mov    %eax,%ecx
407ef3:	85 c9                	test   %ecx,%ecx
407ef5:	75 3a                	jne    0x407f31
407ef7:	8b 5d 98             	mov    -0x68(%ebp),%ebx
407efa:	3b 75 08             	cmp    0x8(%ebp),%esi
407efd:	0f 87 44 30 01 00    	ja     0x41af47
407f03:	53                   	push   %ebx
407f04:	68 00 20 00 00       	push   $0x2000
407f09:	68 f0 0a 44 00       	push   $0x440af0
407f0e:	50                   	push   %eax
407f0f:	57                   	push   %edi
407f10:	50                   	push   %eax
407f11:	68 00 18 00 00       	push   $0x1800
407f16:	ff 15 88 a1 44 00    	call   *0x44a188
407f1c:	8b f0                	mov    %eax,%esi
407f1e:	8b c6                	mov    %esi,%eax
407f20:	8b 4d fc             	mov    -0x4(%ebp),%ecx
407f23:	5f                   	pop    %edi
407f24:	5e                   	pop    %esi
407f25:	33 cd                	xor    %ebp,%ecx
407f27:	5b                   	pop    %ebx
407f28:	e8 03 ec 00 00       	call   0x416b30
407f2d:	c9                   	leave
407f2e:	c2 08 00             	ret    $0x8
407f31:	83 c1 02             	add    $0x2,%ecx
407f34:	0f b7 11             	movzwl (%ecx),%edx
407f37:	8d 42 cf             	lea    -0x31(%edx),%eax
407f3a:	66 83 f8 08          	cmp    $0x8,%ax
407f3e:	0f 87 f2 2f 01 00    	ja     0x41af36
407f44:	46                   	inc    %esi
407f45:	eb a3                	jmp    0x407eea
407f47:	8b ff                	mov    %edi,%edi
407f49:	55                   	push   %ebp
407f4a:	8b ec                	mov    %esp,%ebp
407f4c:	81 ec 34 02 00 00    	sub    $0x234,%esp
407f52:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
407f57:	33 c5                	xor    %ebp,%eax
407f59:	89 45 fc             	mov    %eax,-0x4(%ebp)
407f5c:	53                   	push   %ebx
407f5d:	56                   	push   %esi
407f5e:	57                   	push   %edi
407f5f:	bf 04 01 00 00       	mov    $0x104,%edi
407f64:	c6 45 e4 01          	movb   $0x1,-0x1c(%ebp)
407f68:	33 db                	xor    %ebx,%ebx
407f6a:	89 7d e8             	mov    %edi,-0x18(%ebp)
407f6d:	57                   	push   %edi
407f6e:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
407f74:	89 5d e0             	mov    %ebx,-0x20(%ebp)
407f77:	53                   	push   %ebx
407f78:	50                   	push   %eax
407f79:	66 8b f1             	mov    %cx,%si
407f7c:	e8 3c 00 01 00       	call   0x417fbd
407f81:	33 c0                	xor    %eax,%eax
407f83:	8d 8d d8 fd ff ff    	lea    -0x228(%ebp),%ecx
407f89:	83 c4 0c             	add    $0xc,%esp
407f8c:	38 45 e4             	cmp    %al,-0x1c(%ebp)
407f8f:	0f 94 c0             	sete   %al
407f92:	48                   	dec    %eax
407f93:	25 e3 7e 00 00       	and    $0x7ee3,%eax
407f98:	03 c7                	add    %edi,%eax
407f9a:	50                   	push   %eax
407f9b:	e8 50 64 00 00       	call   0x40e3f0
407fa0:	85 c0                	test   %eax,%eax
407fa2:	78 5d                	js     0x408001
407fa4:	6a 3a                	push   $0x3a
407fa6:	58                   	pop    %eax
407fa7:	66 89 45 f2          	mov    %ax,-0xe(%ebp)
407fab:	6a 5c                	push   $0x5c
407fad:	58                   	pop    %eax
407fae:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
407fb2:	33 c0                	xor    %eax,%eax
407fb4:	66 89 45 f6          	mov    %ax,-0xa(%ebp)
407fb8:	8d 45 f0             	lea    -0x10(%ebp),%eax
407fbb:	50                   	push   %eax
407fbc:	66 89 75 f0          	mov    %si,-0x10(%ebp)
407fc0:	ff 15 f4 a0 44 00    	call   *0x44a0f4
407fc6:	83 f8 01             	cmp    $0x1,%eax
407fc9:	0f 86 64 30 01 00    	jbe    0x41b033
407fcf:	83 f8 02             	cmp    $0x2,%eax
407fd2:	74 2d                	je     0x408001
407fd4:	83 f8 05             	cmp    $0x5,%eax
407fd7:	74 28                	je     0x408001
407fd9:	8b 45 e0             	mov    -0x20(%ebp),%eax
407fdc:	85 c0                	test   %eax,%eax
407fde:	74 44                	je     0x408024
407fe0:	53                   	push   %ebx
407fe1:	53                   	push   %ebx
407fe2:	53                   	push   %ebx
407fe3:	53                   	push   %ebx
407fe4:	8d 8d d0 fd ff ff    	lea    -0x230(%ebp),%ecx
407fea:	51                   	push   %ecx
407feb:	ff 75 e8             	push   -0x18(%ebp)
407fee:	50                   	push   %eax
407fef:	8d 45 f0             	lea    -0x10(%ebp),%eax
407ff2:	50                   	push   %eax
407ff3:	ff 15 dc a0 44 00    	call   *0x44a0dc
407ff9:	85 c0                	test   %eax,%eax
407ffb:	0f 84 3f 30 01 00    	je     0x41b040
408001:	8b 45 e0             	mov    -0x20(%ebp),%eax
408004:	89 5d e0             	mov    %ebx,-0x20(%ebp)
408007:	85 c0                	test   %eax,%eax
408009:	74 08                	je     0x408013
40800b:	50                   	push   %eax
40800c:	ff 15 e0 a3 44 00    	call   *0x44a3e0
408012:	59                   	pop    %ecx
408013:	33 c0                	xor    %eax,%eax
408015:	8b 4d fc             	mov    -0x4(%ebp),%ecx
408018:	5f                   	pop    %edi
408019:	5e                   	pop    %esi
40801a:	33 cd                	xor    %ebp,%ecx
40801c:	5b                   	pop    %ebx
40801d:	e8 0e eb 00 00       	call   0x416b30
408022:	c9                   	leave
408023:	c3                   	ret
408024:	8d 85 d8 fd ff ff    	lea    -0x228(%ebp),%eax
40802a:	eb b4                	jmp    0x407fe0
40802c:	8b ff                	mov    %edi,%edi
40802e:	55                   	push   %ebp
40802f:	8b ec                	mov    %esp,%ebp
408031:	81 ec 2c 02 00 00    	sub    $0x22c,%esp
408037:	a1 b4 e0 42 00       	mov    0x42e0b4,%eax
40803c:	33 c5                	xor    %ebp,%eax
40803e:	89 45 fc             	mov    %eax,-0x4(%ebp)
408041:	53                   	push   %ebx
408042:	56                   	push   %esi
408043:	57                   	push   %edi
408044:	33 c0                	xor    %eax,%eax
408046:	c6 45 ec 01          	movb   $0x1,-0x14(%ebp)
40804a:	be 04 01 00 00       	mov    $0x104,%esi
40804f:	89 45 e8             	mov    %eax,-0x18(%ebp)
408052:	56                   	push   %esi
408053:	50                   	push   %eax
408054:	8d 85 e0 fd ff ff    	lea    -0x220(%ebp),%eax
40805a:	89 75 f0             	mov    %esi,-0x10(%ebp)
40805d:	50                   	push   %eax
40805e:	8b f9                	mov    %ecx,%edi
408060:	e8 58 ff 00 00       	call   0x417fbd
408065:	33 c0                	xor    %eax,%eax
408067:	8d 8d e0 fd ff ff    	lea    -0x220(%ebp),%ecx
40806d:	83 c4 0c             	add    $0xc,%esp
408070:	38 45 ec             	cmp    %al,-0x14(%ebp)
408073:	0f 94 c0             	sete   %al
408076:	48                   	dec    %eax
408077:	25 e3 7e 00 00       	and    $0x7ee3,%eax
40807c:	03 c6                	add    %esi,%eax
40807e:	50                   	push   %eax
40807f:	e8 6c 63 00 00       	call   0x40e3f0
408084:	85 c0                	test   %eax,%eax
408086:	0f 88 22 01 00 00    	js     0x4081ae
40808c:	6a 24                	push   $0x24
40808e:	59                   	pop    %ecx
40808f:	e8 3c 5c 00 00       	call   0x40dcd0
408094:	8b f0                	mov    %eax,%esi
408096:	85 f6                	test   %esi,%esi
408098:	0f 84 f4 2f 01 00    	je     0x41b092
40809e:	8b ce                	mov    %esi,%ecx
4080a0:	89 3e                	mov    %edi,(%esi)
4080a2:	e8 7a 0e 00 00       	call   0x408f21
4080a7:	8b 46 18             	mov    0x18(%esi),%eax
4080aa:	b9 ce ff 00 00       	mov    $0xffce,%ecx
4080af:	8b 1e                	mov    (%esi),%ebx
4080b1:	8b 7e 0c             	mov    0xc(%esi),%edi
4080b4:	89 85 d8 fd ff ff    	mov    %eax,-0x228(%ebp)
4080ba:	89 9d dc fd ff ff    	mov    %ebx,-0x224(%ebp)
4080c0:	e8 0b 5c 00 00       	call   0x40dcd0
4080c5:	85 c0                	test   %eax,%eax
4080c7:	0f 84 c5 2f 01 00    	je     0x41b092
4080cd:	6a 00                	push   $0x0
4080cf:	ba e7 7f 00 00       	mov    $0x7fe7,%edx
4080d4:	a3 a4 67 43 00       	mov    %eax,0x4367a4
4080d9:	8b c8                	mov    %eax,%ecx
4080db:	e8 be 0d 00 00       	call   0x408e9e
4080e0:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4080e3:	85 c9                	test   %ecx,%ecx
4080e5:	0f 84 7e 2f 01 00    	je     0x41b069
4080eb:	8b 55 f0             	mov    -0x10(%ebp),%edx
4080ee:	53                   	push   %ebx
4080ef:	e8 e1 9b 00 00       	call   0x411cd5
4080f4:	85 c0                	test   %eax,%eax
4080f6:	0f 85 b2 00 00 00    	jne    0x4081ae
4080fc:	8b 4d e8             	mov    -0x18(%ebp),%ecx
4080ff:	85 c9                	test   %ecx,%ecx
408101:	0f 84 6d 2f 01 00    	je     0x41b074
408107:	6a 5c                	push   $0x5c
408109:	58                   	pop    %eax
40810a:	8b d0                	mov    %eax,%edx
40810c:	e8 e4 80 00 00       	call   0x4101f5
408111:	33 c9                	xor    %ecx,%ecx
408113:	66 89 48 02          	mov    %cx,0x2(%eax)
408117:	8b 45 e8             	mov    -0x18(%ebp),%eax
40811a:	85 c0                	test   %eax,%eax
40811c:	0f 84 5d 2f 01 00    	je     0x41b07f
408122:	50                   	push   %eax
408123:	b9 f0 8b 44 00       	mov    $0x448bf0,%ecx
408128:	e8 14 25 00 00       	call   0x40a641
40812d:	85 ff                	test   %edi,%edi
40812f:	0f 84 a5 00 00 00    	je     0x4081da
408135:	0f b7 07             	movzwl (%edi),%eax
408138:	6a 3a                	push   $0x3a
40813a:	5a                   	pop    %edx
40813b:	66 3b c2             	cmp    %dx,%ax
40813e:	0f 84 96 00 00 00    	je     0x4081da
408144:	6a 5c                	push   $0x5c
408146:	59                   	pop    %ecx
408147:	66 3b c1             	cmp    %cx,%ax
40814a:	75 32                	jne    0x40817e
40814c:	3b fb                	cmp    %ebx,%edi
40814e:	0f 84 36 2f 01 00    	je     0x41b08a
408154:	8b c3                	mov    %ebx,%eax
408156:	33 c9                	xor    %ecx,%ecx
408158:	66 39 08             	cmp    %cx,(%eax)
40815b:	74 09                	je     0x408166
40815d:	8b c8                	mov    %eax,%ecx
40815f:	83 c0 02             	add    $0x2,%eax
408162:	3b c7                	cmp    %edi,%eax
408164:	75 f0                	jne    0x408156
408166:	0f b7 01             	movzwl (%ecx),%eax
408169:	66 3b c2             	cmp    %dx,%ax
40816c:	0f 84 18 2f 01 00    	je     0x41b08a
408172:	6a 5c                	push   $0x5c
408174:	59                   	pop    %ecx
408175:	66 3b c1             	cmp    %cx,%ax
408178:	0f 84 0c 2f 01 00    	je     0x41b08a
40817e:	0f b7 1f             	movzwl (%edi),%ebx
408181:	33 c0                	xor    %eax,%eax
408183:	ff b5 dc fd ff ff    	push   -0x224(%ebp)