406aec:	5e                   	pop    %esi
406aed:	5d                   	pop    %ebp
406aee:	c2 08 00             	ret    $0x8
406af1:	cc                   	int3
406af2:	cc                   	int3
406af3:	cc                   	int3
406af4:	cc                   	int3
406af5:	cc                   	int3
406af6:	cc                   	int3
406af7:	cc                   	int3
406af8:	cc                   	int3
406af9:	cc                   	int3
406afa:	cc                   	int3
406afb:	cc                   	int3
406afc:	cc                   	int3
406afd:	cc                   	int3
406afe:	cc                   	int3
406aff:	cc                   	int3
406b00:	83 21 00             	andl   $0x0,(%ecx)
406b03:	8b c1                	mov    %ecx,%eax
406b05:	83 61 04 00          	andl   $0x0,0x4(%ecx)
406b09:	83 49 08 ff          	orl    $0xffffffff,0x8(%ecx)
406b0d:	c3                   	ret
406b0e:	8b ff                	mov    %edi,%edi
406b10:	55                   	push   %ebp
406b11:	8b ec                	mov    %esp,%ebp
406b13:	56                   	push   %esi
406b14:	57                   	push   %edi
406b15:	8b 7d 0c             	mov    0xc(%ebp),%edi
406b18:	8b f1                	mov    %ecx,%esi
406b1a:	85 ff                	test   %edi,%edi
406b1c:	75 07                	jne    0x406b25
406b1e:	b8 03 40 00 80       	mov    $0x80004003,%eax
406b23:	eb 31                	jmp    0x406b56
406b25:	8b 4e 0c             	mov    0xc(%esi),%ecx
406b28:	33 c0                	xor    %eax,%eax
406b2a:	85 c9                	test   %ecx,%ecx
406b2c:	75 0d                	jne    0x406b3b
406b2e:	ff 75 08             	push   0x8(%ebp)
406b31:	8b ce                	mov    %esi,%ecx
406b33:	e8 67 03 00 00       	call   0x406e9f
406b38:	8b 4e 0c             	mov    0xc(%esi),%ecx
406b3b:	89 0f                	mov    %ecx,(%edi)
406b3d:	8b 4e 0c             	mov    0xc(%esi),%ecx
406b40:	85 c9                	test   %ecx,%ecx
406b42:	74 12                	je     0x406b56
406b44:	8b 01                	mov    (%ecx),%eax
406b46:	51                   	push   %ecx
406b47:	8b 70 04             	mov    0x4(%eax),%esi
406b4a:	8b ce                	mov    %esi,%ecx
406b4c:	ff 15 28 63 41 00    	call   *0x416328
406b52:	ff d6                	call   *%esi
406b54:	33 c0                	xor    %eax,%eax
406b56:	5f                   	pop    %edi
406b57:	5e                   	pop    %esi
406b58:	5d                   	pop    %ebp
406b59:	c2 08 00             	ret    $0x8
406b5c:	8b ff                	mov    %edi,%edi
406b5e:	55                   	push   %ebp
406b5f:	8b ec                	mov    %esp,%ebp
406b61:	83 ec 0c             	sub    $0xc,%esp
406b64:	33 c0                	xor    %eax,%eax
406b66:	56                   	push   %esi
406b67:	8b f1                	mov    %ecx,%esi
406b69:	57                   	push   %edi
406b6a:	8b 7e 0c             	mov    0xc(%esi),%edi
406b6d:	85 ff                	test   %edi,%edi
406b6f:	74 07                	je     0x406b78
406b71:	8b cf                	mov    %edi,%ecx
406b73:	39 46 14             	cmp    %eax,0x14(%esi)
406b76:	75 0f                	jne    0x406b87
406b78:	ff 75 14             	push   0x14(%ebp)
406b7b:	8b ce                	mov    %esi,%ecx
406b7d:	e8 1d 03 00 00       	call   0x406e9f
406b82:	8b 7e 0c             	mov    0xc(%esi),%edi
406b85:	8b cf                	mov    %edi,%ecx
406b87:	85 c9                	test   %ecx,%ecx
406b89:	74 72                	je     0x406bfd
406b8b:	8b 46 14             	mov    0x14(%esi),%eax
406b8e:	89 45 fc             	mov    %eax,-0x4(%ebp)
406b91:	53                   	push   %ebx
406b92:	85 c0                	test   %eax,%eax
406b94:	74 4e                	je     0x406be4
406b96:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
406b9a:	75 48                	jne    0x406be4
406b9c:	8b 45 0c             	mov    0xc(%ebp),%eax
406b9f:	8b 00                	mov    (%eax),%eax
406ba1:	8b c8                	mov    %eax,%ecx
406ba3:	89 45 f8             	mov    %eax,-0x8(%ebp)
406ba6:	e8 0a e0 ff ff       	call   0x404bb5
406bab:	8b 76 18             	mov    0x18(%esi),%esi
406bae:	8b c8                	mov    %eax,%ecx
406bb0:	83 ee 01             	sub    $0x1,%esi
406bb3:	89 4d f4             	mov    %ecx,-0xc(%ebp)
406bb6:	78 2c                	js     0x406be4
406bb8:	6b de 0c             	imul   $0xc,%esi,%ebx
406bbb:	03 5d fc             	add    -0x4(%ebp),%ebx
406bbe:	8b 43 04             	mov    0x4(%ebx),%eax
406bc1:	3b c8                	cmp    %eax,%ecx
406bc3:	75 17                	jne    0x406bdc
406bc5:	03 c0                	add    %eax,%eax
406bc7:	50                   	push   %eax
406bc8:	ff 75 f8             	push   -0x8(%ebp)
406bcb:	ff 33                	push   (%ebx)
406bcd:	e8 19 bf 00 00       	call   0x412aeb
406bd2:	83 c4 0c             	add    $0xc,%esp
406bd5:	85 c0                	test   %eax,%eax
406bd7:	74 2a                	je     0x406c03
406bd9:	8b 4d f4             	mov    -0xc(%ebp),%ecx
406bdc:	83 eb 0c             	sub    $0xc,%ebx
406bdf:	83 ee 01             	sub    $0x1,%esi
406be2:	79 da                	jns    0x406bbe
406be4:	ff 75 18             	push   0x18(%ebp)
406be7:	8b 37                	mov    (%edi),%esi
406be9:	ff 75 10             	push   0x10(%ebp)
406bec:	ff 75 0c             	push   0xc(%ebp)
406bef:	8b 4e 28             	mov    0x28(%esi),%ecx
406bf2:	57                   	push   %edi
406bf3:	ff 15 28 63 41 00    	call   *0x416328
406bf9:	ff 56 28             	call   *0x28(%esi)
406bfc:	5b                   	pop    %ebx
406bfd:	5f                   	pop    %edi
406bfe:	5e                   	pop    %esi
406bff:	c9                   	leave
406c00:	c2 14 00             	ret    $0x14
406c03:	8b 4d fc             	mov    -0x4(%ebp),%ecx
406c06:	6b c6 0c             	imul   $0xc,%esi,%eax
406c09:	8b 4c 08 08          	mov    0x8(%eax,%ecx,1),%ecx
406c0d:	8b 45 18             	mov    0x18(%ebp),%eax
406c10:	89 08                	mov    %ecx,(%eax)
406c12:	33 c0                	xor    %eax,%eax
406c14:	eb e6                	jmp    0x406bfc
406c16:	8b ff                	mov    %edi,%edi
406c18:	55                   	push   %ebp
406c19:	8b ec                	mov    %esp,%ebp
406c1b:	56                   	push   %esi
406c1c:	8b f1                	mov    %ecx,%esi
406c1e:	33 d2                	xor    %edx,%edx
406c20:	8b 46 0c             	mov    0xc(%esi),%eax
406c23:	85 c0                	test   %eax,%eax
406c25:	74 05                	je     0x406c2c
406c27:	39 56 14             	cmp    %edx,0x14(%esi)
406c2a:	75 0d                	jne    0x406c39
406c2c:	ff 75 14             	push   0x14(%ebp)
406c2f:	e8 6b 02 00 00       	call   0x406e9f
406c34:	8b d0                	mov    %eax,%edx
406c36:	8b 46 0c             	mov    0xc(%esi),%eax
406c39:	85 c0                	test   %eax,%eax
406c3b:	74 26                	je     0x406c63
406c3d:	ff 75 28             	push   0x28(%ebp)
406c40:	8b 30                	mov    (%eax),%esi
406c42:	ff 75 24             	push   0x24(%ebp)
406c45:	ff 75 20             	push   0x20(%ebp)
406c48:	8b 4e 2c             	mov    0x2c(%esi),%ecx
406c4b:	ff 75 1c             	push   0x1c(%ebp)
406c4e:	ff 75 18             	push   0x18(%ebp)
406c51:	ff 75 0c             	push   0xc(%ebp)
406c54:	ff 75 08             	push   0x8(%ebp)
406c57:	50                   	push   %eax
406c58:	ff 15 28 63 41 00    	call   *0x416328
406c5e:	ff 56 2c             	call   *0x2c(%esi)
406c61:	8b d0                	mov    %eax,%edx
406c63:	8b c2                	mov    %edx,%eax
406c65:	5e                   	pop    %esi
406c66:	5d                   	pop    %ebp
406c67:	c2 24 00             	ret    $0x24
406c6a:	6a 24                	push   $0x24
406c6c:	b8 7d 2c 41 00       	mov    $0x412c7d,%eax
406c71:	e8 51 b9 00 00       	call   0x4125c7
406c76:	89 4d e4             	mov    %ecx,-0x1c(%ebp)
406c79:	8b 5d 08             	mov    0x8(%ebp),%ebx
406c7c:	8d 4d d8             	lea    -0x28(%ebp),%ecx
406c7f:	51                   	push   %ecx
406c80:	53                   	push   %ebx
406c81:	8b 03                	mov    (%ebx),%eax
406c83:	8b 70 0c             	mov    0xc(%eax),%esi
406c86:	8b ce                	mov    %esi,%ecx
406c88:	ff 15 28 63 41 00    	call   *0x416328
406c8e:	ff d6                	call   *%esi
406c90:	85 c0                	test   %eax,%eax
406c92:	0f 88 9c 01 00 00    	js     0x406e34
406c98:	8b 45 d8             	mov    -0x28(%ebp),%eax
406c9b:	33 ff                	xor    %edi,%edi
406c9d:	8b f7                	mov    %edi,%esi
406c9f:	89 75 e8             	mov    %esi,-0x18(%ebp)
406ca2:	0f b7 50 2c          	movzwl 0x2c(%eax),%edx
406ca6:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406ca9:	89 55 d4             	mov    %edx,-0x2c(%ebp)
406cac:	89 50 18             	mov    %edx,0x18(%eax)
406caf:	89 78 14             	mov    %edi,0x14(%eax)
406cb2:	85 d2                	test   %edx,%edx
406cb4:	0f 84 94 00 00 00    	je     0x406d4e
406cba:	33 c9                	xor    %ecx,%ecx
406cbc:	89 7d fc             	mov    %edi,-0x4(%ebp)
406cbf:	8b c2                	mov    %edx,%eax
406cc1:	6a 0c                	push   $0xc
406cc3:	5a                   	pop    %edx
406cc4:	f7 e2                	mul    %edx
406cc6:	0f 90 c1             	seto   %cl
406cc9:	f7 d9                	neg    %ecx
406ccb:	0b c8                	or     %eax,%ecx
406ccd:	33 c0                	xor    %eax,%eax
406ccf:	83 c1 04             	add    $0x4,%ecx
406cd2:	0f 92 c0             	setb   %al
406cd5:	f7 d8                	neg    %eax
406cd7:	0b c1                	or     %ecx,%eax
406cd9:	50                   	push   %eax
406cda:	e8 f2 a7 00 00       	call   0x4114d1
406cdf:	59                   	pop    %ecx
406ce0:	89 45 d0             	mov    %eax,-0x30(%ebp)
406ce3:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
406ce7:	85 c0                	test   %eax,%eax
406ce9:	74 20                	je     0x406d0b
406ceb:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
406cee:	8d 70 04             	lea    0x4(%eax),%esi
406cf1:	68 c0 4c 40 00       	push   $0x404cc0
406cf6:	68 00 6b 40 00       	push   $0x406b00
406cfb:	51                   	push   %ecx
406cfc:	6a 0c                	push   $0xc
406cfe:	56                   	push   %esi
406cff:	89 08                	mov    %ecx,(%eax)
406d01:	89 75 e8             	mov    %esi,-0x18(%ebp)
406d04:	e8 07 b7 00 00       	call   0x412410
406d09:	eb 05                	jmp    0x406d10
406d0b:	8b f7                	mov    %edi,%esi
406d0d:	89 7d e8             	mov    %edi,-0x18(%ebp)
406d10:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406d14:	eb 14                	jmp    0x406d2a
406d16:	b8 1c 6d 40 00       	mov    $0x406d1c,%eax
406d1b:	c3                   	ret
406d1c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406d20:	33 ff                	xor    %edi,%edi
406d22:	8b 5d 08             	mov    0x8(%ebp),%ebx
406d25:	8b f7                	mov    %edi,%esi
406d27:	89 75 e8             	mov    %esi,-0x18(%ebp)
406d2a:	85 f6                	test   %esi,%esi
406d2c:	75 1d                	jne    0x406d4b
406d2e:	8b 03                	mov    (%ebx),%eax
406d30:	ff 75 d8             	push   -0x28(%ebp)
406d33:	53                   	push   %ebx
406d34:	8b 70 4c             	mov    0x4c(%eax),%esi
406d37:	8b ce                	mov    %esi,%ecx
406d39:	ff 15 28 63 41 00    	call   *0x416328
406d3f:	ff d6                	call   *%esi
406d41:	b8 0e 00 07 80       	mov    $0x8007000e,%eax
406d46:	e9 eb 00 00 00       	jmp    0x406e36
406d4b:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406d4e:	8b d7                	mov    %edi,%edx
406d50:	89 55 d4             	mov    %edx,-0x2c(%ebp)
406d53:	39 78 18             	cmp    %edi,0x18(%eax)
406d56:	0f 8e bc 00 00 00    	jle    0x406e18
406d5c:	8d 4e 08             	lea    0x8(%esi),%ecx
406d5f:	89 4d dc             	mov    %ecx,-0x24(%ebp)
406d62:	89 79 fc             	mov    %edi,-0x4(%ecx)
406d65:	8d 45 e0             	lea    -0x20(%ebp),%eax
406d68:	89 39                	mov    %edi,(%ecx)
406d6a:	8b 33                	mov    (%ebx),%esi
406d6c:	50                   	push   %eax
406d6d:	52                   	push   %edx
406d6e:	53                   	push   %ebx
406d6f:	8b 4e 14             	mov    0x14(%esi),%ecx
406d72:	ff 15 28 63 41 00    	call   *0x416328
406d78:	ff 56 14             	call   *0x14(%esi)
406d7b:	85 c0                	test   %eax,%eax
406d7d:	78 7d                	js     0x406dfc
406d7f:	89 7d ec             	mov    %edi,-0x14(%ebp)
406d82:	57                   	push   %edi
406d83:	57                   	push   %edi
406d84:	57                   	push   %edi
406d85:	c7 45 fc 03 00 00 00 	movl   $0x3,-0x4(%ebp)
406d8c:	8d 45 ec             	lea    -0x14(%ebp),%eax
406d8f:	8b 33                	mov    (%ebx),%esi
406d91:	50                   	push   %eax
406d92:	8b 45 e0             	mov    -0x20(%ebp),%eax
406d95:	8b 4e 30             	mov    0x30(%esi),%ecx
406d98:	ff 30                	push   (%eax)
406d9a:	53                   	push   %ebx
406d9b:	ff 15 28 63 41 00    	call   *0x416328
406da1:	ff 56 30             	call   *0x30(%esi)
406da4:	85 c0                	test   %eax,%eax
406da6:	78 33                	js     0x406ddb
406da8:	8b 75 dc             	mov    -0x24(%ebp),%esi
406dab:	8b 4d ec             	mov    -0x14(%ebp),%ecx
406dae:	89 4d d0             	mov    %ecx,-0x30(%ebp)
406db1:	89 7d ec             	mov    %edi,-0x14(%ebp)
406db4:	8b 46 f8             	mov    -0x8(%esi),%eax
406db7:	3b c1                	cmp    %ecx,%eax
406db9:	74 0d                	je     0x406dc8
406dbb:	50                   	push   %eax
406dbc:	ff 15 b8 61 41 00    	call   *0x4161b8
406dc2:	8b 45 d0             	mov    -0x30(%ebp),%eax
406dc5:	89 46 f8             	mov    %eax,-0x8(%esi)
406dc8:	50                   	push   %eax
406dc9:	ff 15 7c 61 41 00    	call   *0x41617c
406dcf:	8b 4d e0             	mov    -0x20(%ebp),%ecx
406dd2:	89 46 fc             	mov    %eax,-0x4(%esi)
406dd5:	8b 01                	mov    (%ecx),%eax
406dd7:	89 06                	mov    %eax,(%esi)
406dd9:	eb 03                	jmp    0x406dde
406ddb:	8b 4d e0             	mov    -0x20(%ebp),%ecx
406dde:	8b 03                	mov    (%ebx),%eax
406de0:	51                   	push   %ecx
406de1:	53                   	push   %ebx
406de2:	8b 70 50             	mov    0x50(%eax),%esi
406de5:	8b ce                	mov    %esi,%ecx
406de7:	ff 15 28 63 41 00    	call   *0x416328
406ded:	ff d6                	call   *%esi
406def:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
406df3:	ff 75 ec             	push   -0x14(%ebp)
406df6:	ff 15 b8 61 41 00    	call   *0x4161b8
406dfc:	8b 55 d4             	mov    -0x2c(%ebp),%edx
406dff:	8b 45 e4             	mov    -0x1c(%ebp),%eax
406e02:	42                   	inc    %edx
406e03:	8b 4d dc             	mov    -0x24(%ebp),%ecx
406e06:	83 c1 0c             	add    $0xc,%ecx
406e09:	89 55 d4             	mov    %edx,-0x2c(%ebp)
406e0c:	89 4d dc             	mov    %ecx,-0x24(%ebp)
406e0f:	3b 50 18             	cmp    0x18(%eax),%edx
406e12:	0f 8c 4a ff ff ff    	jl     0x406d62
406e18:	8b 4d e4             	mov    -0x1c(%ebp),%ecx
406e1b:	8b 45 e8             	mov    -0x18(%ebp),%eax
406e1e:	ff 75 d8             	push   -0x28(%ebp)
406e21:	89 41 14             	mov    %eax,0x14(%ecx)
406e24:	8b 03                	mov    (%ebx),%eax
406e26:	53                   	push   %ebx
406e27:	8b 70 4c             	mov    0x4c(%eax),%esi
406e2a:	8b ce                	mov    %esi,%ecx
406e2c:	ff 15 28 63 41 00    	call   *0x416328
406e32:	ff d6                	call   *%esi
406e34:	33 c0                	xor    %eax,%eax
406e36:	e8 f1 b6 00 00       	call   0x41252c
406e3b:	c2 04 00             	ret    $0x4
406e3e:	cc                   	int3
406e3f:	cc                   	int3
406e40:	6a 00                	push   $0x0
406e42:	b8 98 2c 41 00       	mov    $0x412c98,%eax
406e47:	e8 12 b7 00 00       	call   0x41255e
406e4c:	8b 7d 08             	mov    0x8(%ebp),%edi
406e4f:	85 ff                	test   %edi,%edi
406e51:	74 44                	je     0x406e97
406e53:	8b 4f 0c             	mov    0xc(%edi),%ecx
406e56:	85 c9                	test   %ecx,%ecx
406e58:	74 10                	je     0x406e6a
406e5a:	8b 01                	mov    (%ecx),%eax
406e5c:	51                   	push   %ecx
406e5d:	8b 70 08             	mov    0x8(%eax),%esi
406e60:	8b ce                	mov    %esi,%ecx
406e62:	ff 15 28 63 41 00    	call   *0x416328
406e68:	ff d6                	call   *%esi
406e6a:	83 67 0c 00          	andl   $0x0,0xc(%edi)