408c54:	8b ff                	mov    %edi,%edi
408c56:	55                   	push   %ebp
408c57:	8b ec                	mov    %esp,%ebp
408c59:	51                   	push   %ecx
408c5a:	51                   	push   %ecx
408c5b:	8b 01                	mov    (%ecx),%eax
408c5d:	57                   	push   %edi
408c5e:	85 c0                	test   %eax,%eax
408c60:	75 09                	jne    0x408c6b
408c62:	39 45 08             	cmp    %eax,0x8(%ebp)
408c65:	75 7a                	jne    0x408ce1
408c67:	b0 01                	mov    $0x1,%al
408c69:	eb 78                	jmp    0x408ce3
408c6b:	8b 7d 08             	mov    0x8(%ebp),%edi
408c6e:	85 ff                	test   %edi,%edi
408c70:	74 6f                	je     0x408ce1
408c72:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
408c76:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408c79:	83 65 f8 00          	andl   $0x0,-0x8(%ebp)
408c7d:	53                   	push   %ebx
408c7e:	56                   	push   %esi
408c7f:	8b 30                	mov    (%eax),%esi
408c81:	bb 98 2b 40 00       	mov    $0x402b98,%ebx
408c86:	51                   	push   %ecx
408c87:	53                   	push   %ebx
408c88:	50                   	push   %eax
408c89:	8b 0e                	mov    (%esi),%ecx
408c8b:	ff 15 28 63 41 00    	call   *0x416328
408c91:	ff 16                	call   *(%esi)
408c93:	8b 37                	mov    (%edi),%esi
408c95:	8d 45 f8             	lea    -0x8(%ebp),%eax
408c98:	50                   	push   %eax
408c99:	53                   	push   %ebx
408c9a:	57                   	push   %edi
408c9b:	8b 0e                	mov    (%esi),%ecx
408c9d:	ff 15 28 63 41 00    	call   *0x416328
408ca3:	ff 16                	call   *(%esi)
408ca5:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408ca8:	8b 45 fc             	mov    -0x4(%ebp),%eax
408cab:	3b c1                	cmp    %ecx,%eax
408cad:	0f 94 c3             	sete   %bl
408cb0:	85 c9                	test   %ecx,%ecx
408cb2:	74 13                	je     0x408cc7
408cb4:	8b 01                	mov    (%ecx),%eax
408cb6:	51                   	push   %ecx
408cb7:	8b 70 08             	mov    0x8(%eax),%esi
408cba:	8b ce                	mov    %esi,%ecx
408cbc:	ff 15 28 63 41 00    	call   *0x416328
408cc2:	ff d6                	call   *%esi
408cc4:	8b 45 fc             	mov    -0x4(%ebp),%eax
408cc7:	85 c0                	test   %eax,%eax
408cc9:	74 10                	je     0x408cdb
408ccb:	8b 08                	mov    (%eax),%ecx
408ccd:	50                   	push   %eax
408cce:	8b 71 08             	mov    0x8(%ecx),%esi
408cd1:	8b ce                	mov    %esi,%ecx
408cd3:	ff 15 28 63 41 00    	call   *0x416328
408cd9:	ff d6                	call   *%esi
408cdb:	5e                   	pop    %esi
408cdc:	8a c3                	mov    %bl,%al
408cde:	5b                   	pop    %ebx
408cdf:	eb 02                	jmp    0x408ce3
408ce1:	32 c0                	xor    %al,%al
408ce3:	5f                   	pop    %edi
408ce4:	c9                   	leave
408ce5:	c2 04 00             	ret    $0x4
408ce8:	cc                   	int3
408ce9:	cc                   	int3
408cea:	cc                   	int3
408ceb:	cc                   	int3
408cec:	cc                   	int3
408ced:	cc                   	int3
408cee:	cc                   	int3
408cef:	cc                   	int3
408cf0:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408cf5:	e9 f6 f6 ff ff       	jmp    0x4083f0
408cfa:	cc                   	int3
408cfb:	cc                   	int3
408cfc:	cc                   	int3
408cfd:	cc                   	int3
408cfe:	cc                   	int3
408cff:	cc                   	int3
408d00:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d05:	e9 f6 fb ff ff       	jmp    0x408900
408d0a:	cc                   	int3
408d0b:	cc                   	int3
408d0c:	cc                   	int3
408d0d:	cc                   	int3
408d0e:	cc                   	int3
408d0f:	cc                   	int3
408d10:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d15:	e9 e6 f2 ff ff       	jmp    0x408000
408d1a:	cc                   	int3
408d1b:	cc                   	int3
408d1c:	cc                   	int3
408d1d:	cc                   	int3
408d1e:	cc                   	int3
408d1f:	cc                   	int3
408d20:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d25:	e9 a6 f2 ff ff       	jmp    0x407fd0
408d2a:	cc                   	int3
408d2b:	cc                   	int3
408d2c:	cc                   	int3
408d2d:	cc                   	int3
408d2e:	cc                   	int3
408d2f:	cc                   	int3
408d30:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d35:	e9 66 f2 ff ff       	jmp    0x407fa0
408d3a:	cc                   	int3
408d3b:	cc                   	int3
408d3c:	cc                   	int3
408d3d:	cc                   	int3
408d3e:	cc                   	int3
408d3f:	cc                   	int3
408d40:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d45:	e9 26 f2 ff ff       	jmp    0x407f70
408d4a:	cc                   	int3
408d4b:	cc                   	int3
408d4c:	cc                   	int3
408d4d:	cc                   	int3
408d4e:	cc                   	int3
408d4f:	cc                   	int3
408d50:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d55:	e9 c6 fb ff ff       	jmp    0x408920
408d5a:	cc                   	int3
408d5b:	cc                   	int3
408d5c:	cc                   	int3
408d5d:	cc                   	int3
408d5e:	cc                   	int3
408d5f:	cc                   	int3
408d60:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d65:	e9 c6 f8 ff ff       	jmp    0x408630
408d6a:	cc                   	int3
408d6b:	cc                   	int3
408d6c:	cc                   	int3
408d6d:	cc                   	int3
408d6e:	cc                   	int3
408d6f:	cc                   	int3
408d70:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d75:	e9 f6 f5 ff ff       	jmp    0x408370
408d7a:	cc                   	int3
408d7b:	cc                   	int3
408d7c:	cc                   	int3
408d7d:	cc                   	int3
408d7e:	cc                   	int3
408d7f:	cc                   	int3
408d80:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d85:	e9 26 f9 ff ff       	jmp    0x4086b0
408d8a:	cc                   	int3
408d8b:	cc                   	int3
408d8c:	cc                   	int3
408d8d:	cc                   	int3
408d8e:	cc                   	int3
408d8f:	cc                   	int3
408d90:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408d95:	e9 d6 f2 ff ff       	jmp    0x408070
408d9a:	cc                   	int3
408d9b:	cc                   	int3
408d9c:	cc                   	int3
408d9d:	cc                   	int3
408d9e:	cc                   	int3
408d9f:	cc                   	int3
408da0:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408da5:	e9 66 f8 ff ff       	jmp    0x408610
408daa:	cc                   	int3
408dab:	cc                   	int3
408dac:	cc                   	int3
408dad:	cc                   	int3
408dae:	cc                   	int3
408daf:	cc                   	int3
408db0:	83 6c 24 04 04       	subl   $0x4,0x4(%esp)
408db5:	e9 66 f2 ff ff       	jmp    0x408020
408dba:	8b ff                	mov    %edi,%edi
408dbc:	55                   	push   %ebp
408dbd:	8b ec                	mov    %esp,%ebp
408dbf:	53                   	push   %ebx
408dc0:	8b 5d 08             	mov    0x8(%ebp),%ebx
408dc3:	56                   	push   %esi
408dc4:	57                   	push   %edi
408dc5:	68 08 02 00 00       	push   $0x208
408dca:	33 ff                	xor    %edi,%edi
408dcc:	21 3b                	and    %edi,(%ebx)
408dce:	6a 08                	push   $0x8
408dd0:	ff 15 e0 60 41 00    	call   *0x4160e0
408dd6:	50                   	push   %eax
408dd7:	ff 15 dc 60 41 00    	call   *0x4160dc
408ddd:	8b f0                	mov    %eax,%esi
408ddf:	85 f6                	test   %esi,%esi
408de1:	75 1d                	jne    0x408e00
408de3:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
408de8:	57                   	push   %edi
408de9:	68 d8 2c 40 00       	push   $0x402cd8
408dee:	6a 34                	push   $0x34
408df0:	68 00 2d 40 00       	push   $0x402d00
408df5:	51                   	push   %ecx
408df6:	e8 d7 81 00 00       	call   0x410fd2
408dfb:	e9 83 00 00 00       	jmp    0x408e83
408e00:	68 04 01 00 00       	push   $0x104
408e05:	56                   	push   %esi
408e06:	68 2e 01 00 00       	push   $0x12e
408e0b:	6a 00                	push   $0x0
408e0d:	ff 15 cc 60 41 00    	call   *0x4160cc
408e13:	50                   	push   %eax
408e14:	ff 15 e0 61 41 00    	call   *0x4161e0
408e1a:	85 c0                	test   %eax,%eax
408e1c:	75 4d                	jne    0x408e6b
408e1e:	50                   	push   %eax
408e1f:	68 d8 2c 40 00       	push   $0x402cd8
408e24:	6a 3c                	push   $0x3c
408e26:	68 00 2d 40 00       	push   $0x402d00
408e2b:	51                   	push   %ecx
408e2c:	e8 a1 81 00 00       	call   0x410fd2
408e31:	bf 04 01 00 00       	mov    $0x104,%edi
408e36:	57                   	push   %edi
408e37:	6a 00                	push   $0x0
408e39:	56                   	push   %esi
408e3a:	e8 b2 9c 00 00       	call   0x412af1
408e3f:	83 c4 0c             	add    $0xc,%esp
408e42:	8b d7                	mov    %edi,%edx
408e44:	8b ce                	mov    %esi,%ecx
408e46:	68 9c 2e 40 00       	push   $0x402e9c
408e4b:	e8 70 0b 00 00       	call   0x4099c0
408e50:	8b f8                	mov    %eax,%edi
408e52:	85 ff                	test   %edi,%edi
408e54:	79 15                	jns    0x408e6b
408e56:	57                   	push   %edi
408e57:	68 d8 2c 40 00       	push   $0x402cd8
408e5c:	6a 41                	push   $0x41
408e5e:	68 00 2d 40 00       	push   $0x402d00
408e63:	51                   	push   %ecx
408e64:	e8 69 81 00 00       	call   0x410fd2
408e69:	eb 04                	jmp    0x408e6f
408e6b:	89 33                	mov    %esi,(%ebx)
408e6d:	33 f6                	xor    %esi,%esi
408e6f:	85 f6                	test   %esi,%esi
408e71:	74 10                	je     0x408e83
408e73:	56                   	push   %esi
408e74:	6a 00                	push   $0x0
408e76:	ff 15 e0 60 41 00    	call   *0x4160e0
408e7c:	50                   	push   %eax
408e7d:	ff 15 e4 60 41 00    	call   *0x4160e4
408e83:	8b c7                	mov    %edi,%eax
408e85:	5f                   	pop    %edi
408e86:	5e                   	pop    %esi
408e87:	5b                   	pop    %ebx
408e88:	5d                   	pop    %ebp
408e89:	c2 04 00             	ret    $0x4
408e8c:	8b ff                	mov    %edi,%edi
408e8e:	55                   	push   %ebp
408e8f:	8b ec                	mov    %esp,%ebp
408e91:	83 ec 20             	sub    $0x20,%esp
408e94:	53                   	push   %ebx
408e95:	56                   	push   %esi
408e96:	57                   	push   %edi
408e97:	89 4d f8             	mov    %ecx,-0x8(%ebp)
408e9a:	33 f6                	xor    %esi,%esi
408e9c:	21 75 fc             	and    %esi,-0x4(%ebp)
408e9f:	33 db                	xor    %ebx,%ebx
408ea1:	b9 e9 fd 00 00       	mov    $0xfde9,%ecx
408ea6:	89 55 ec             	mov    %edx,-0x14(%ebp)
408ea9:	33 ff                	xor    %edi,%edi
408eab:	8b c2                	mov    %edx,%eax
408ead:	3b d1                	cmp    %ecx,%edx
408eaf:	0f 94 c3             	sete   %bl
408eb2:	2b c1                	sub    %ecx,%eax
408eb4:	4b                   	dec    %ebx
408eb5:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408eb8:	81 e3 80 03 00 00    	and    $0x380,%ebx
408ebe:	83 eb 80             	sub    $0xffffff80,%ebx
408ec1:	f7 d8                	neg    %eax
408ec3:	1b c0                	sbb    %eax,%eax
408ec5:	23 c1                	and    %ecx,%eax
408ec7:	8b 4d f8             	mov    -0x8(%ebp),%ecx
408eca:	50                   	push   %eax
408ecb:	89 45 f4             	mov    %eax,-0xc(%ebp)
408ece:	33 c0                	xor    %eax,%eax
408ed0:	50                   	push   %eax
408ed1:	50                   	push   %eax
408ed2:	50                   	push   %eax
408ed3:	6a ff                	push   $0xffffffff
408ed5:	51                   	push   %ecx
408ed6:	53                   	push   %ebx
408ed7:	52                   	push   %edx
408ed8:	ff 15 e8 60 41 00    	call   *0x4160e8
408ede:	89 45 f0             	mov    %eax,-0x10(%ebp)
408ee1:	85 c0                	test   %eax,%eax
408ee3:	75 1c                	jne    0x408f01
408ee5:	50                   	push   %eax
408ee6:	68 50 2d 40 00       	push   $0x402d50
408eeb:	6a 71                	push   $0x71
408eed:	68 00 2d 40 00       	push   $0x402d00
408ef2:	51                   	push   %ecx
408ef3:	e8 da 80 00 00       	call   0x410fd2
408ef8:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
408eff:	eb 75                	jmp    0x408f76
408f01:	50                   	push   %eax
408f02:	6a 08                	push   $0x8
408f04:	ff 15 e0 60 41 00    	call   *0x4160e0
408f0a:	50                   	push   %eax
408f0b:	ff 15 dc 60 41 00    	call   *0x4160dc
408f11:	8b f0                	mov    %eax,%esi
408f13:	89 75 e8             	mov    %esi,-0x18(%ebp)
408f16:	85 f6                	test   %esi,%esi
408f18:	75 1a                	jne    0x408f34
408f1a:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
408f1f:	57                   	push   %edi
408f20:	68 50 2d 40 00       	push   $0x402d50
408f25:	6a 76                	push   $0x76
408f27:	68 00 2d 40 00       	push   $0x402d00
408f2c:	51                   	push   %ecx
408f2d:	e8 a0 80 00 00       	call   0x410fd2
408f32:	eb 67                	jmp    0x408f9b
408f34:	ff 75 f4             	push   -0xc(%ebp)
408f37:	6a 00                	push   $0x0
408f39:	ff 75 f0             	push   -0x10(%ebp)
408f3c:	56                   	push   %esi
408f3d:	6a ff                	push   $0xffffffff
408f3f:	ff 75 f8             	push   -0x8(%ebp)
408f42:	53                   	push   %ebx
408f43:	ff 75 ec             	push   -0x14(%ebp)
408f46:	ff 15 e8 60 41 00    	call   *0x4160e8
408f4c:	85 c0                	test   %eax,%eax
408f4e:	75 1e                	jne    0x408f6e
408f50:	50                   	push   %eax
408f51:	68 50 2d 40 00       	push   $0x402d50
408f56:	68 83 00 00 00       	push   $0x83
408f5b:	68 00 2d 40 00       	push   $0x402d00
408f60:	51                   	push   %ecx
408f61:	e8 6c 80 00 00       	call   0x410fd2
408f66:	33 c0                	xor    %eax,%eax
408f68:	40                   	inc    %eax
408f69:	89 45 fc             	mov    %eax,-0x4(%ebp)
408f6c:	eb 03                	jmp    0x408f71
408f6e:	8b 45 fc             	mov    -0x4(%ebp),%eax
408f71:	83 f8 01             	cmp    $0x1,%eax
408f74:	75 07                	jne    0x408f7d
408f76:	33 ff                	xor    %edi,%edi
408f78:	47                   	inc    %edi
408f79:	33 c0                	xor    %eax,%eax
408f7b:	eb 05                	jmp    0x408f82
408f7d:	8b 45 e8             	mov    -0x18(%ebp),%eax
408f80:	33 f6                	xor    %esi,%esi
408f82:	8b 4d 08             	mov    0x8(%ebp),%ecx
408f85:	89 01                	mov    %eax,(%ecx)
408f87:	85 f6                	test   %esi,%esi
408f89:	74 10                	je     0x408f9b
408f8b:	56                   	push   %esi
408f8c:	6a 00                	push   $0x0
408f8e:	ff 15 e0 60 41 00    	call   *0x4160e0
408f94:	50                   	push   %eax