407d38:	e8 38 34 00 00       	call   0x40b175
407d3d:	83 c4 1c             	add    $0x1c,%esp
407d40:	85 c0                	test   %eax,%eax
407d42:	75 02                	jne    0x407d46
407d44:	c9                   	leave
407d45:	c3                   	ret
407d46:	0f b7 45 0a          	movzwl 0xa(%ebp),%eax
407d4a:	23 45 0c             	and    0xc(%ebp),%eax
407d4d:	c9                   	leave
407d4e:	c3                   	ret
407d4f:	cc                   	int3
407d50:	8b 44 24 08          	mov    0x8(%esp),%eax
407d54:	8b 4c 24 10          	mov    0x10(%esp),%ecx
407d58:	0b c8                	or     %eax,%ecx
407d5a:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
407d5e:	75 09                	jne    0x407d69
407d60:	8b 44 24 04          	mov    0x4(%esp),%eax
407d64:	f7 e1                	mul    %ecx
407d66:	c2 10 00             	ret    $0x10
407d69:	53                   	push   %ebx
407d6a:	f7 e1                	mul    %ecx
407d6c:	8b d8                	mov    %eax,%ebx
407d6e:	8b 44 24 08          	mov    0x8(%esp),%eax
407d72:	f7 64 24 14          	mull   0x14(%esp)
407d76:	03 d8                	add    %eax,%ebx
407d78:	8b 44 24 08          	mov    0x8(%esp),%eax
407d7c:	f7 e1                	mul    %ecx
407d7e:	03 d3                	add    %ebx,%edx
407d80:	5b                   	pop    %ebx
407d81:	c2 10 00             	ret    $0x10
407d84:	55                   	push   %ebp
407d85:	8b ec                	mov    %esp,%ebp
407d87:	53                   	push   %ebx
407d88:	56                   	push   %esi
407d89:	8b 75 0c             	mov    0xc(%ebp),%esi
407d8c:	8b 46 0c             	mov    0xc(%esi),%eax
407d8f:	8b 5e 10             	mov    0x10(%esi),%ebx
407d92:	a8 82                	test   $0x82,%al
407d94:	0f 84 f6 00 00 00    	je     0x407e90
407d9a:	a8 40                	test   $0x40,%al
407d9c:	0f 85 ee 00 00 00    	jne    0x407e90
407da2:	a8 01                	test   $0x1,%al
407da4:	74 16                	je     0x407dbc
407da6:	83 66 04 00          	andl   $0x0,0x4(%esi)
407daa:	a8 10                	test   $0x10,%al
407dac:	0f 84 de 00 00 00    	je     0x407e90
407db2:	8b 4e 08             	mov    0x8(%esi),%ecx
407db5:	24 fe                	and    $0xfe,%al
407db7:	89 0e                	mov    %ecx,(%esi)
407db9:	89 46 0c             	mov    %eax,0xc(%esi)
407dbc:	8b 46 0c             	mov    0xc(%esi),%eax
407dbf:	83 66 04 00          	andl   $0x0,0x4(%esi)
407dc3:	83 65 0c 00          	andl   $0x0,0xc(%ebp)
407dc7:	24 ef                	and    $0xef,%al
407dc9:	0c 02                	or     $0x2,%al
407dcb:	66 a9 0c 01          	test   $0x10c,%ax
407dcf:	89 46 0c             	mov    %eax,0xc(%esi)
407dd2:	75 22                	jne    0x407df6
407dd4:	81 fe a0 05 41 00    	cmp    $0x4105a0,%esi
407dda:	74 08                	je     0x407de4
407ddc:	81 fe c0 05 41 00    	cmp    $0x4105c0,%esi
407de2:	75 0b                	jne    0x407def
407de4:	53                   	push   %ebx
407de5:	e8 7b 32 00 00       	call   0x40b065
407dea:	85 c0                	test   %eax,%eax
407dec:	59                   	pop    %ecx
407ded:	75 07                	jne    0x407df6
407def:	56                   	push   %esi
407df0:	e8 8e 18 00 00       	call   0x409683
407df5:	59                   	pop    %ecx
407df6:	66 f7 46 0c 08 01    	testw  $0x108,0xc(%esi)
407dfc:	57                   	push   %edi
407dfd:	74 67                	je     0x407e66
407dff:	8b 46 08             	mov    0x8(%esi),%eax
407e02:	8b 3e                	mov    (%esi),%edi
407e04:	2b f8                	sub    %eax,%edi
407e06:	8d 48 01             	lea    0x1(%eax),%ecx
407e09:	89 0e                	mov    %ecx,(%esi)
407e0b:	8b 4e 18             	mov    0x18(%esi),%ecx
407e0e:	49                   	dec    %ecx
407e0f:	85 ff                	test   %edi,%edi
407e11:	89 4e 04             	mov    %ecx,0x4(%esi)
407e14:	7e 10                	jle    0x407e26
407e16:	57                   	push   %edi
407e17:	50                   	push   %eax
407e18:	53                   	push   %ebx
407e19:	e8 75 16 00 00       	call   0x409493
407e1e:	83 c4 0c             	add    $0xc,%esp
407e21:	89 45 0c             	mov    %eax,0xc(%ebp)
407e24:	eb 36                	jmp    0x407e5c
407e26:	83 fb ff             	cmp    $0xffffffff,%ebx
407e29:	74 19                	je     0x407e44
407e2b:	8b cb                	mov    %ebx,%ecx
407e2d:	8b c3                	mov    %ebx,%eax
407e2f:	c1 f9 05             	sar    $0x5,%ecx
407e32:	83 e0 1f             	and    $0x1f,%eax
407e35:	8b 0c 8d c0 1d 41 00 	mov    0x411dc0(,%ecx,4),%ecx
407e3c:	8d 04 c0             	lea    (%eax,%eax,8),%eax
407e3f:	8d 04 81             	lea    (%ecx,%eax,4),%eax
407e42:	eb 05                	jmp    0x407e49
407e44:	b8 08 0e 41 00       	mov    $0x410e08,%eax
407e49:	f6 40 04 20          	testb  $0x20,0x4(%eax)
407e4d:	74 0d                	je     0x407e5c
407e4f:	6a 02                	push   $0x2
407e51:	6a 00                	push   $0x0
407e53:	53                   	push   %ebx
407e54:	e8 02 1b 00 00       	call   0x40995b
407e59:	83 c4 0c             	add    $0xc,%esp
407e5c:	8b 46 08             	mov    0x8(%esi),%eax
407e5f:	8a 4d 08             	mov    0x8(%ebp),%cl
407e62:	88 08                	mov    %cl,(%eax)
407e64:	eb 14                	jmp    0x407e7a
407e66:	6a 01                	push   $0x1
407e68:	8d 45 08             	lea    0x8(%ebp),%eax
407e6b:	5f                   	pop    %edi
407e6c:	57                   	push   %edi
407e6d:	50                   	push   %eax
407e6e:	53                   	push   %ebx
407e6f:	e8 1f 16 00 00       	call   0x409493
407e74:	83 c4 0c             	add    $0xc,%esp
407e77:	89 45 0c             	mov    %eax,0xc(%ebp)
407e7a:	39 7d 0c             	cmp    %edi,0xc(%ebp)
407e7d:	5f                   	pop    %edi
407e7e:	74 06                	je     0x407e86
407e80:	83 4e 0c 20          	orl    $0x20,0xc(%esi)
407e84:	eb 0f                	jmp    0x407e95
407e86:	8b 45 08             	mov    0x8(%ebp),%eax
407e89:	25 ff 00 00 00       	and    $0xff,%eax
407e8e:	eb 08                	jmp    0x407e98
407e90:	0c 20                	or     $0x20,%al
407e92:	89 46 0c             	mov    %eax,0xc(%esi)
407e95:	83 c8 ff             	or     $0xffffffff,%eax
407e98:	5e                   	pop    %esi
407e99:	5b                   	pop    %ebx
407e9a:	5d                   	pop    %ebp
407e9b:	c3                   	ret
407e9c:	55                   	push   %ebp
407e9d:	8b ec                	mov    %esp,%ebp
407e9f:	51                   	push   %ecx
407ea0:	53                   	push   %ebx
407ea1:	56                   	push   %esi
407ea2:	e8 20 08 00 00       	call   0x4086c7
407ea7:	8b f0                	mov    %eax,%esi
407ea9:	ff 76 50             	push   0x50(%esi)
407eac:	ff 75 08             	push   0x8(%ebp)
407eaf:	e8 26 01 00 00       	call   0x407fda
407eb4:	59                   	pop    %ecx
407eb5:	85 c0                	test   %eax,%eax
407eb7:	59                   	pop    %ecx
407eb8:	0f 84 0f 01 00 00    	je     0x407fcd
407ebe:	8b 58 08             	mov    0x8(%eax),%ebx
407ec1:	85 db                	test   %ebx,%ebx
407ec3:	89 5d 08             	mov    %ebx,0x8(%ebp)
407ec6:	0f 84 01 01 00 00    	je     0x407fcd
407ecc:	83 fb 05             	cmp    $0x5,%ebx
407ecf:	75 0c                	jne    0x407edd
407ed1:	83 60 08 00          	andl   $0x0,0x8(%eax)
407ed5:	6a 01                	push   $0x1
407ed7:	58                   	pop    %eax
407ed8:	e9 f9 00 00 00       	jmp    0x407fd6
407edd:	83 fb 01             	cmp    $0x1,%ebx
407ee0:	0f 84 e2 00 00 00    	je     0x407fc8
407ee6:	8b 4e 54             	mov    0x54(%esi),%ecx
407ee9:	89 4d fc             	mov    %ecx,-0x4(%ebp)
407eec:	8b 4d 0c             	mov    0xc(%ebp),%ecx
407eef:	89 4e 54             	mov    %ecx,0x54(%esi)
407ef2:	8b 48 04             	mov    0x4(%eax),%ecx
407ef5:	83 f9 08             	cmp    $0x8,%ecx
407ef8:	0f 85 bc 00 00 00    	jne    0x407fba
407efe:	8b 15 f8 0d 41 00    	mov    0x410df8,%edx
407f04:	8b 0d fc 0d 41 00    	mov    0x410dfc,%ecx
407f0a:	03 ca                	add    %edx,%ecx
407f0c:	57                   	push   %edi
407f0d:	3b d1                	cmp    %ecx,%edx
407f0f:	7d 27                	jge    0x407f38
407f11:	8d 0c 52             	lea    (%edx,%edx,2),%ecx
407f14:	c1 e1 02             	shl    $0x2,%ecx
407f17:	8b 7e 50             	mov    0x50(%esi),%edi
407f1a:	83 c1 0c             	add    $0xc,%ecx
407f1d:	83 64 39 fc 00       	andl   $0x0,-0x4(%ecx,%edi,1)
407f22:	8b 3d f8 0d 41 00    	mov    0x410df8,%edi
407f28:	8b 1d fc 0d 41 00    	mov    0x410dfc,%ebx
407f2e:	42                   	inc    %edx
407f2f:	03 df                	add    %edi,%ebx
407f31:	3b d3                	cmp    %ebx,%edx
407f33:	7c e2                	jl     0x407f17
407f35:	8b 5d 08             	mov    0x8(%ebp),%ebx
407f38:	8b 00                	mov    (%eax),%eax
407f3a:	8b 7e 58             	mov    0x58(%esi),%edi
407f3d:	3d 8e 00 00 c0       	cmp    $0xc000008e,%eax
407f42:	75 09                	jne    0x407f4d
407f44:	c7 46 58 83 00 00 00 	movl   $0x83,0x58(%esi)
407f4b:	eb 5e                	jmp    0x407fab
407f4d:	3d 90 00 00 c0       	cmp    $0xc0000090,%eax
407f52:	75 09                	jne    0x407f5d
407f54:	c7 46 58 81 00 00 00 	movl   $0x81,0x58(%esi)
407f5b:	eb 4e                	jmp    0x407fab
407f5d:	3d 91 00 00 c0       	cmp    $0xc0000091,%eax
407f62:	75 09                	jne    0x407f6d
407f64:	c7 46 58 84 00 00 00 	movl   $0x84,0x58(%esi)
407f6b:	eb 3e                	jmp    0x407fab
407f6d:	3d 93 00 00 c0       	cmp    $0xc0000093,%eax
407f72:	75 09                	jne    0x407f7d
407f74:	c7 46 58 85 00 00 00 	movl   $0x85,0x58(%esi)
407f7b:	eb 2e                	jmp    0x407fab
407f7d:	3d 8d 00 00 c0       	cmp    $0xc000008d,%eax
407f82:	75 09                	jne    0x407f8d
407f84:	c7 46 58 82 00 00 00 	movl   $0x82,0x58(%esi)
407f8b:	eb 1e                	jmp    0x407fab
407f8d:	3d 8f 00 00 c0       	cmp    $0xc000008f,%eax
407f92:	75 09                	jne    0x407f9d
407f94:	c7 46 58 86 00 00 00 	movl   $0x86,0x58(%esi)
407f9b:	eb 0e                	jmp    0x407fab
407f9d:	3d 92 00 00 c0       	cmp    $0xc0000092,%eax
407fa2:	75 07                	jne    0x407fab
407fa4:	c7 46 58 8a 00 00 00 	movl   $0x8a,0x58(%esi)
407fab:	ff 76 58             	push   0x58(%esi)
407fae:	6a 08                	push   $0x8
407fb0:	ff d3                	call   *%ebx
407fb2:	59                   	pop    %ecx
407fb3:	89 7e 58             	mov    %edi,0x58(%esi)
407fb6:	59                   	pop    %ecx
407fb7:	5f                   	pop    %edi
407fb8:	eb 08                	jmp    0x407fc2
407fba:	83 60 08 00          	andl   $0x0,0x8(%eax)
407fbe:	51                   	push   %ecx
407fbf:	ff d3                	call   *%ebx
407fc1:	59                   	pop    %ecx
407fc2:	8b 45 fc             	mov    -0x4(%ebp),%eax
407fc5:	89 46 54             	mov    %eax,0x54(%esi)
407fc8:	83 c8 ff             	or     $0xffffffff,%eax
407fcb:	eb 09                	jmp    0x407fd6
407fcd:	ff 75 0c             	push   0xc(%ebp)
407fd0:	ff 15 08 d1 40 00    	call   *0x40d108
407fd6:	5e                   	pop    %esi
407fd7:	5b                   	pop    %ebx
407fd8:	c9                   	leave
407fd9:	c3                   	ret
407fda:	8b 54 24 08          	mov    0x8(%esp),%edx
407fde:	8b 0d 04 0e 41 00    	mov    0x410e04,%ecx
407fe4:	56                   	push   %esi
407fe5:	8b 74 24 08          	mov    0x8(%esp),%esi
407fe9:	39 32                	cmp    %esi,(%edx)
407feb:	57                   	push   %edi
407fec:	8b c2                	mov    %edx,%eax
407fee:	74 11                	je     0x408001
407ff0:	8d 3c 49             	lea    (%ecx,%ecx,2),%edi
407ff3:	8d 3c ba             	lea    (%edx,%edi,4),%edi
407ff6:	83 c0 0c             	add    $0xc,%eax
407ff9:	3b c7                	cmp    %edi,%eax
407ffb:	73 04                	jae    0x408001
407ffd:	39 30                	cmp    %esi,(%eax)
407fff:	75 f5                	jne    0x407ff6
408001:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
408004:	8d 0c 8a             	lea    (%edx,%ecx,4),%ecx
408007:	3b c1                	cmp    %ecx,%eax
408009:	73 04                	jae    0x40800f
40800b:	39 30                	cmp    %esi,(%eax)
40800d:	74 02                	je     0x408011
40800f:	33 c0                	xor    %eax,%eax
408011:	5f                   	pop    %edi
408012:	5e                   	pop    %esi
408013:	c3                   	ret
408014:	83 3d c8 1e 41 00 00 	cmpl   $0x0,0x411ec8
40801b:	75 05                	jne    0x408022
40801d:	e8 b6 36 00 00       	call   0x40b6d8
408022:	56                   	push   %esi
408023:	8b 35 04 2f 41 00    	mov    0x412f04,%esi
408029:	8a 06                	mov    (%esi),%al
40802b:	3c 22                	cmp    $0x22,%al
40802d:	75 25                	jne    0x408054
40802f:	8a 46 01             	mov    0x1(%esi),%al
408032:	46                   	inc    %esi
408033:	3c 22                	cmp    $0x22,%al
408035:	74 15                	je     0x40804c
408037:	84 c0                	test   %al,%al
408039:	74 11                	je     0x40804c
40803b:	0f b6 c0             	movzbl %al,%eax
40803e:	50                   	push   %eax
40803f:	e8 7a 32 00 00       	call   0x40b2be
408044:	85 c0                	test   %eax,%eax
408046:	59                   	pop    %ecx
408047:	74 e6                	je     0x40802f
408049:	46                   	inc    %esi
40804a:	eb e3                	jmp    0x40802f
40804c:	80 3e 22             	cmpb   $0x22,(%esi)
40804f:	75 0d                	jne    0x40805e
408051:	46                   	inc    %esi
408052:	eb 0a                	jmp    0x40805e
408054:	3c 20                	cmp    $0x20,%al
408056:	76 06                	jbe    0x40805e
408058:	46                   	inc    %esi
408059:	80 3e 20             	cmpb   $0x20,(%esi)
40805c:	77 fa                	ja     0x408058
40805e:	8a 06                	mov    (%esi),%al
408060:	84 c0                	test   %al,%al
408062:	74 04                	je     0x408068
408064:	3c 20                	cmp    $0x20,%al
408066:	76 e9                	jbe    0x408051
408068:	8b c6                	mov    %esi,%eax
40806a:	5e                   	pop    %esi
40806b:	c3                   	ret
40806c:	53                   	push   %ebx
40806d:	33 db                	xor    %ebx,%ebx
40806f:	39 1d c8 1e 41 00    	cmp    %ebx,0x411ec8
408075:	56                   	push   %esi
408076:	57                   	push   %edi
408077:	75 05                	jne    0x40807e
408079:	e8 5a 36 00 00       	call   0x40b6d8
40807e:	8b 35 e4 17 41 00    	mov    0x4117e4,%esi
408084:	33 ff                	xor    %edi,%edi
408086:	8a 06                	mov    (%esi),%al
408088:	3a c3                	cmp    %bl,%al
40808a:	74 12                	je     0x40809e
40808c:	3c 3d                	cmp    $0x3d,%al
40808e:	74 01                	je     0x408091
408090:	47                   	inc    %edi
408091:	56                   	push   %esi
408092:	e8 69 e9 ff ff       	call   0x406a00
408097:	59                   	pop    %ecx
408098:	8d 74 06 01          	lea    0x1(%esi,%eax,1),%esi
40809c:	eb e8                	jmp    0x408086
40809e:	8d 04 bd 04 00 00 00 	lea    0x4(,%edi,4),%eax
4080a5:	50                   	push   %eax
4080a6:	e8 e2 f2 ff ff       	call   0x40738d
4080ab:	8b f0                	mov    %eax,%esi
4080ad:	59                   	pop    %ecx
4080ae:	3b f3                	cmp    %ebx,%esi
4080b0:	89 35 a4 18 41 00    	mov    %esi,0x4118a4
4080b6:	75 08                	jne    0x4080c0
4080b8:	6a 09                	push   $0x9
4080ba:	e8 bd d6 ff ff       	call   0x40577c
4080bf:	59                   	pop    %ecx
4080c0:	8b 3d e4 17 41 00    	mov    0x4117e4,%edi
4080c6:	38 1f                	cmp    %bl,(%edi)
4080c8:	74 39                	je     0x408103
4080ca:	55                   	push   %ebp
4080cb:	57                   	push   %edi
4080cc:	e8 2f e9 ff ff       	call   0x406a00
4080d1:	8b e8                	mov    %eax,%ebp
4080d3:	59                   	pop    %ecx
4080d4:	45                   	inc    %ebp
4080d5:	80 3f 3d             	cmpb   $0x3d,(%edi)
4080d8:	74 22                	je     0x4080fc
4080da:	55                   	push   %ebp
4080db:	e8 ad f2 ff ff       	call   0x40738d
4080e0:	3b c3                	cmp    %ebx,%eax
4080e2:	59                   	pop    %ecx
4080e3:	89 06                	mov    %eax,(%esi)
4080e5:	75 08                	jne    0x4080ef